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

210102_TIL (๋ณต์Šต, ํŠธ์œ„ํ‹€๋Ÿฌ ๋ฆฌํŒฉํ† ๋ง)

by joooing 2021. 1. 3.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ๊ฒƒ


โœ”๏ธ Coplit ๋‹ค์‹œํ’€๊ธฐ(๋ณ€์ˆ˜~๊ฐ์ฒด)
๋†“์นœ ๋ถ€๋ถ„์ด ์žˆ๋‚˜ ์‹ถ์–ด์„œ Lesson๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋ฉฐ ๋ณต์Šตํ–ˆ๋‹ค. Coplit๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ’€์–ด๋ณด๋‹ˆ ๋‚˜์ค‘์— ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ ์šฉํ•ด์„œ ๋” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด ์žˆ์–ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ์„ ํ•ด๋ณด๊ธฐ๋„ ํ–ˆ๋‹ค. ํŠนํžˆ ์ผ์ผ์ด ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ์ฃผ์˜์‚ฌํ•ญ์ด ๋‹ฌ๋ฆฐ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฐฐ์—ด, ๊ฐ์ฒด, ์žฌ๊ท€๋ฅผ ์“ฐ๋ฉด ๊ธˆ๋ฐฉ ๋๋‚ ํ…๋ฐ..ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค๋ฉด์„œ ์–ด๋–ค ๋ฉด์—์„œ ํšจ์œจ์ ์ธ์ง€ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

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

โœ”๏ธ twittler ๋ฆฌํŒฉํ† ๋ง
๋Œ“๊ธ€ ์‚ฝ์ž… ๋ถ€๋ถ„์—์„œ innerHTML์„ ์ผ์—ˆ๋Š”๋ฐ (๊ท€์ฐฎ๋‹ค๊ณ  ๋ฏธ๋ฃจ๊ณ  ์žˆ์—ˆ๋˜.. appendChild๋กœ ๊ณ ์น˜๊ธฐ๋ฅผ ๋“œ๋””์–ด ํ–ˆ๋‹ค. ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•ด์„œ์ธ์ง€ ์ฝ”๋“œ๊ฐ€ ๊ธ‰๊ฒฉํžˆ ๊ธธ์–ด์กŒ์ง€๋งŒ ๋ฟŒ๋“ฏํ•˜๋‹ค. localStorage๋„ ๊ธฐ์กด์— ์—†์„ ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋„๋ก ์กฐ๊ฑด๋ฌธ์„ ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์—๋Š” ์ฒ˜์Œ์— ๋งŒ๋“  ์ดํ›„๋กœ ๊ณ„์† ์žˆ์—ˆ์–ด์„œ ์—†์„ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋‹ค ํฐ์ผ๋‚ ๋ป”..

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

 

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


โœ”๏ธ mutable, immutable ๋ฉ”์„œ๋“œ
์˜ค๋žœ๋งŒ์— ๋ฌธ์ž์—ด, ๋ฐฐ์—ด ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ '๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜(์ƒˆ๋กœ์šด ์ฃผ์†Œ๊ฐ’ ๋ฐ˜ํ™˜), ๊ธฐ์กด ๋ฐฐ์—ด ๋ฐ˜ํ™˜' ๊ฐ™์€ ๋ง์ด ์ž์ฃผ ๋‚˜์™€์„œ mutable, immutable ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์ •๋ฆฌํ•˜๊ณ  ๊ธฐ์–ตํ•ด ๋‘˜ ํ•„์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค.

immutable : String.slice(), String.replace(), String.split(), Array.concat()
mutable : Array.splice(), Array.unshift(), Array.shift(), Array.push(), Array.pop()

โœ”๏ธ Symbol
๋ฐ˜๋ณต๋ฌธ์—์„œ for ...of, for ...in์— ๋Œ€ํ•œ MDN๋ฌธ์„œ๋ฅผ ๋ณด๋‹ค๊ฐ€ Symbol์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์–ด์„œ ์•Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ฒˆ ์ฝ์–ด๋ดค์ง€๋งŒ ํ•œ๋ฒˆ์— ๋‹ค ์ดํ•ดํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์šด ๊ฐœ๋…์ธ ๊ฒƒ ๊ฐ™๋‹ค๐Ÿ’ง ์šฐ์„  ์ดํ•ดํ•œ ์ฃผ์š” ํŠน์ง• ๋ช‡๊ฐœ๋งŒ ์ •๋ฆฌํ•ด๋‘์—ˆ๋‹ค.

1) Primitive Type (๊ณ ์œ , ๋ถˆ๋ณ€)
2) ๋น„๊ณต๊ฐœ ๋ฉค๋ฒ„(private)์— ๋Œ€ํ•œ ํ•„์š”, ์ด๋ฆ„ ์ถฉ๋Œ ์—†์ด ์ถ”๊ฐ€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ์ƒ๊ฒจ๋‚จ
3) for, for ...in ๋“ฑ์˜ ์—ด๊ฑฐ ๋Œ€์ƒ์—์„œ ์ œ์™ธ๋จ !!!
4) ํ˜• ๋ณ€ํ™˜ ๋ถˆ๊ฐ€๋Šฅ

โœ”๏ธ delete ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ
1) delete์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด ์ผ๋ถ€๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, index๋‚˜ length๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ญ์ œ๋œ ์ž๋ฆฌ์— undefined๋ฅผ ๋ผ์›Œ๋„ฃ๊ธฐ๋งŒ ํ•  ๋ฟ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ํ™•์‹คํ•œ ์‚ญ์ œ(?)๋ฅผ ์›ํ•œ๋‹ค๋ฉด splice๋ฅผ ์“ฐ์ž!
2) delete ์—ฐ์‚ฐ์ž๋Š” ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ์•„๋‹Œ '์ฐธ์กฐ'๋งŒ ์‚ญ์ œํ•œ๋‹ค. ์ฐธ์กฐ๊ฐ€ ์‚ญ์ œ๋˜์–ด ์ฐธ์กฐํ•  ๋ฐฉ๋ฒ•์ด ์‚ฌ๋ผ์ง„ ๊ฐ์ฒด๋ฅผ garbage collector๊ฐ€ ์ˆ˜๊ฑฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค.

 

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


โœ”๏ธ ๊ผฌ๋ฆฌ ์žฌ๊ท€
โœ”๏ธ ํ•˜๋…ธ์ด์˜ ํƒ‘ Javascript๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ 
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€