Daily/Today I Learned

210111_TIL (node.js, git์— ์ต์ˆ™ํ•ด์ง€๊ธฐ)

joooing 2021. 1. 12. 04:06
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


 

โœ”๏ธ node.js, nvm ์„ค์น˜
์ง€๊ธˆ๊นŒ์ง€๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ๋งŒ Javascript๋ฅผ ๋™์ž‘์‹œ์ผฐ๋Š”๋ฐ, ์ด์ œ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์ธ node.js์—์„œ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ณด๋‹ค ์‰ฌ์šด node.js ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด NVM(Node Version Manager)๋„ ์„ค์น˜ํ•˜๊ณ , use ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ ๋‹ค๋ฅธ node ๋ฒ„์ „๋“ค์„ ๋ฒˆ๊ฐˆ์•„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋ฐฐ์› ๋‹ค.

โœ”๏ธ Git Workflow ์ตํžˆ๊ธฐ
ํŽ˜์–ด๋ถ„๊ณผ ๊ฐ™์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํŒŒ์ผ, ๊ฐ™์€ ๋ถ€๋ถ„์— ๋‹ค๋ฅธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋™์‹œ์— pushํ•ด๋ณด๋ฉฐ ์ถฉ๋Œ ์ƒํ™ฉ์„ ๋งŒ๋“ค์–ด๋ณด๊ณ , ์–ด๋–ค ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๊ฐ€๋ฉฐ ์—ฐ์Šตํ•ด๋ดค๋‹ค. ์ถ”๊ฐ€๋กœ fetch ์—๋Ÿฌ์™€ pull ์—๋Ÿฌ์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋œจ๋Š”๊ฑธ ๋ณด๋ฉด์„œ, fetch์™€ pull์˜ ์ฐจ์ด๊ฐ€ ๋ญ”์ง€ ๊ถ๊ธˆํ•ด์ ธ์„œ ProGit์„ ๋ณด๋ฉฐ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด์•˜๋‹ค.

โœ”๏ธ Javascript์˜ this ์•Œ์•„๋ณด๊ธฐ
Javascript์˜ this๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ, ๋‹ค์‹œ๋งํ•ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ฒฐ์ •๋œ๋‹ค. ๋‹ค์‹œ๋งํ•ด ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์ง€์— ๋”ฐ๋ผ์„œ this๋„ ๊ณ„์†ํ•ด์„œ ๋ฐ”๋€Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ƒํ™ฉ๋ณ„์ด๋ผ๋Š” ๋ง์ด ํ—ท๊ฐˆ๋ ค์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋ก€๋“ค์„ ์ฐพ์•„๋ณด๋ฉฐ ๊ณต๋ถ€ํ–ˆ๋‹ค. ์ „์—ญ๋ณ€์ˆ˜์ผ ๋•Œ, ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ๋•Œ, ๋ฉ”์„œ๋“œ๋กœ ํ˜ธ์ถœํ•  ๋•Œ, ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ๋•Œ, ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ์„ ๋•Œ ๋“ฑ ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ this๊ฐ€ ๋ญ˜ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์œ ์™€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ, ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. this๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜์™€ ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ๋„ ์—ฐ๊ด€์ง€์–ด ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๊ทธ๋ƒฅ ๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ ์“ฐ๋Š” ์šฉ๋„์ธ ์ค„๋งŒ ์•Œ์•˜๋Š”๋ฐ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ–‰์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ this๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ณผ์ •์ด ์ƒ๋žต๋œ๋‹ค๋Š” ๋†€๋ผ์šด,,์‚ฌ์‹ค๋„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


โœ”๏ธ node.js ๊ด€๋ จ๋„๊ตฌ
NVM(Node Version Manager) : ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ node๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๋‹ค์–‘ํ•œ node ๋ฒ„์ „์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ
NPM(Node Package Manager) : ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š”, ๋ชจ๋“ˆ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๋ชจ๋“ˆ ์Šคํ† ์–ด

โœ”๏ธ git pull, git fetch
git pull = git fetch(๊ฐ€์ ธ์˜ค๊ธฐ) + git merge(๋น„๊ตํ•˜๊ธฐ) !

โœ”๏ธ ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด์˜ ์กฐ๊ฑด
1) key๊ฐ€ 0์ด์ƒ์ธ ์ •์ˆ˜ property ์กด์žฌ
2) length property๊ฐ€ 0์ด์ƒ์ผ ๊ฒƒ
๋‘ ๊ฐ€์ง€๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ตฌ์กฐ๋งŒ ๋ฐฐ์—ด์ธ ๊ฐ์ฒด!
(ex. arguments๊ฐ์ฒด, NodeList(querySelectorAll, getElementsByClassName..))

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ call, apply, bind ๋ฉ”์„œ๋“œ
โœ”๏ธ ProGit์—์„œ ๊ธฐ์–ตํ• ๋งŒํ•œ ๋ถ€๋ถ„๋“ค ์ •๋ฆฌํ•ด๋‘๊ธฐ
๋ฐ˜์‘ํ˜•