๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

201216_TIL

by joooing 2020. 12. 17.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ


โœ”๏ธ Command Line Interface(CLI), ๋ช…๋ น์–ด
์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ , GUI๋ฅผ ์ด์šฉํ•˜๋Š” ๋Œ€์‹  CLI๋งŒ์„ ์ด์šฉํ•ด ์œ„์น˜๋ฅผ ์ด๋™ํ•ด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ํŽธ์ง‘ํ•ด๋ดค๋‹ค. .code ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด VSCode ์—๋””ํ„ฐ๋ฅผ ํ†ตํ•ด ํŽธ์ง‘ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ์•„์ง ์™„์ „ํžˆ ์ต์ˆ™ํ•ด์ง€์ง€ ์•Š์•„์„œ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ๋นจ๋ฆฌ ์ต์ˆ™ํ•ด์ง€๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ํ•œ GUI ๋Œ€์‹  CLI๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.

์˜ˆ์ „์— ๋ญ”๊ฐ€๋ฅผ ์„ค์น˜ํ•˜๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ๊ฒ€์ƒ‰ํ•ด๋ณด๊ณ  ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ ๋•Œ sudo ๋ช…๋ น์–ด๋ฅผ ์ผ๋˜ ๊ธฐ์–ต์ด ๋‚œ๋‹ค. ๊ทธ ๋•Œ๋Š” ๋ญ”์ง€๋„ ๋ชจ๋ฅด๊ณ  ๋”ฐ๋ผ ์น˜๊ธฐ๋งŒ ํ–ˆ์—ˆ๋Š”๋ฐ, sudo์˜ su๊ฐ€ super user์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ๊ฒƒ, ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉ์„ ์ง€์–‘ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค,,

โœ”๏ธGit Workflow
๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Version Control System) ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ธ Git์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋‹ค์‹œํ•œ๋ฒˆ ๋ฐฐ์šฐ๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค. ํŠนํžˆ commit์„ ํ•˜๊ธฐ ์ „์— add๋ฅผ ํ•˜๋Š” ๊ณผ์ •์ด ์™œ ํ•„์š”ํ•œ์ง€, Staging Area๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์•Œ๊ฒŒ๋˜์–ด์„œ ์ด์ œ๋Š” git ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๋‚ด๊ฐ€ ์ง€๊ธˆ ๋ญ˜ ํ•˜๊ณ  ์žˆ๊ณ , ๋‚ด ํŒŒ์ผ์ด ์–ด๋””์— ์œ„์น˜ํ•ด์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค ๐Ÿ™ƒ

โœ”๏ธํ•จ์ˆ˜ ์„ ์–ธ์‹, ํ•จ์ˆ˜ ํ‘œํ˜„์‹์˜ ์ฐจ์ด์ 
ํ•จ์ˆ˜ ์„ ์–ธ์‹๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ 'ํ˜ธ์ด์ŠคํŒ… ๊ฐ€๋Šฅ ์—ฌ๋ถ€'๋ผ๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ์ „์— ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ์˜€๋‚˜..? ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰์‹๋ณด๋‹ค๋„ ์•„๋ž˜์— ์„ ์–ธ๋˜์—ˆ๋Š”๋ฐ๋„ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธธ๋ž˜ '์„ ์–ธ์„ ๋‚˜์ค‘์— ํ•ด๋„ ์•Œ์•„์„œ ์ฐพ๊ณ  ์ž‘๋™์‹œํ‚ค๋Š”๊ตฌ๋‚˜'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ ์„ ์–ธ์‹์„ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” Hoisting(ํ˜ธ์ด์ŠคํŒ…) ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๋” ๋‚˜์•„๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€๋„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

 

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


โœ”๏ธ ๋ฐฐ์—ด(Array)  = ์ˆœ์„œ O (์ˆœ์ฐจ์ ‘๊ทผ ๊ฐ€๋Šฅ -> length ์‚ฌ์šฉ๊ฐ€๋Šฅ)
      ๊ฐ์ฒด(Object) = ์ˆœ์„œ X (์ˆœ์ฐจ์ ‘๊ทผ ๋ถˆ๊ฐ€ -> length ์‚ฌ์šฉ๋ถˆ๊ฐ€(undefined),  for...in ์ด์šฉํ•ด ์ˆœ์ฐจ์ ‘๊ทผ ๊ฐ€๋Šฅ)

โœ”๏ธ arguments
argument = arrayํ˜•ํƒœ์˜ object (์ˆœ์„œ์žˆ๋Š” '์ฒ™'ํ•˜๋Š” ๊ฐ์ฒด)
index๊ฐ’(0,1,2...)์„ key๋กœ ๊ฐ–๊ณ , ๊ฐ’์„ value๋กœ ๊ฐ–๋Š”๋‹ค!

โœ”๏ธ ๊ฐ์ฒด์˜ ๊ธธ์ด ๊ตฌํ•˜๊ธฐ
๊ฐ์ฒด๋Š” ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด๋ฅผ ๊ตฌํ•  ๋•Œ ๊ฐ์ฒด์— ์ง์ ‘ length๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ์ฒด์˜ ๊ธธ์ด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๋ฐ”๋กœ Object.keys()๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ชจ๋“  key๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋ ‡๊ฒŒ ๊ตฌํ•œ ๋ฐฐ์—ด์— length๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค. ์ฆ‰, Object.keys(obj).length๋ฅผ ์ด์šฉํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ๊ฐ์ฒด์˜ ์š”์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

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


โœ”๏ธ Google style guide ์ฝ์–ด๋ณด๊ธฐ
const, let ์‚ฌ์šฉ ๊ด€๋ จ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์‹œ๊ฐ„๋‚  ๋•Œ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ์ฝ์–ด๋ณด๊ธฐ!

โœ”๏ธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection), ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
ํ•จ์ˆ˜์„ ์–ธ์‹๊ณผ ํ•จ์ˆ˜ํ‘œํ˜„์‹์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๋ฉด์„œ ์„ ์–ธ๊ณผ ํ• ๋‹น์— ๋Œ€ํ•ด์„œ๋„ ์ข€ ๋” ๊นŠ์ด ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์–ด๋–ค ์ˆœ์„œ์™€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™๋˜๋Š” ๊ฑด์ง€์— ๋Œ€ํ•ด์„œ๋„ ์ฐพ์•„๋ณด๋‹ค๋ณด๋‹ˆ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋‚˜ '๊ฐ€๋น„์ง€ ์ปฌ๋ Œ์…˜' ๊ฐœ๋…์ด ์ž์ฃผ ๋“ฑ์žฅํ•ด์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋„ ์ข€ ๋” ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

โœ”๏ธ Javascript ํŠน์ดํ•œ ์—ฐ์‚ฐ ์˜ˆ์ œ ์ฐพ์•„๋ณด๊ธฐ
123-'1' = 122, '1'+true = '1true' ์ฒ˜๋Ÿผ ์ž˜ ์“ฐ์ง€๋Š” ์•Š์ง€๋งŒ(?) ํŠน์ดํ•œ ์—ฐ์‚ฐ ์˜ˆ์ œ๋“ค์„ ์ข€ ๋” ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.

 

 

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

๋ฐ˜์‘ํ˜•

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

201218_TIL  (2) 2020.12.19
201217_TIL  (0) 2020.12.18
201215_TIL  (0) 2020.12.16
201214_TIL  (0) 2020.12.15
201212_TIL  (0) 2020.12.13

๋Œ“๊ธ€