TIL

[TIL] 20210819

lado 2021. 8. 20. 00:44

๐ŸŽฏ ํ™”์ˆ˜๋ชฉ์— ๊ณต๋ถ€ํ•œ ๊ฒƒ

  • [JavaScript] ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ vs ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹
  • [JavaScript] ๋ฐ”๋‹๋ผ JS๋กœ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌํ˜„
  • [JavaScript] Client Side์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ -> cookie, local storage, session storage
  • [JavaScript] Module
  • [Node.js] ๊ฒŒ์‹œํŒ CRUD ๊ตฌํ˜„, ์‹œํ€„๋ผ์ด์ฆˆ์—์„œ ๊ด€๊ณ„์„ฑ ์ •์˜

๐Ÿ“š ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ

  • ๋น„๋™๊ธฐ, promise, async, await
  • this, ํด๋กœ์ €
  • yield* [์ฐธ๊ณ ๋ฌธ์„œ]
  • XSS ์–ดํƒ, CSRF ์–ดํƒ ๋Œ€์‘ ๋ฐฉ๋ฒ•
  • CommonJS์™€ ES Modules [์ฐธ๊ณ ๋ฌธ์„œ]
  • ECMAscript 2022 ์‹คํ–‰ ์ปจํ…์ŠคํŠธ [docs] -> ์ด๊ฑฐ ์ง„์งœ ๊ฐ€๋…์„ฑ์ด ์••๋„์ ์œผ๋กœ ๋‚˜์˜๋‹ค

๐Ÿ“ฎ Q-box

  • Contract Testing
  • Abstract Factory Pattern
  • Builder Pattern
  • Visitor Pattern
  • Command Pattern

๐ŸŽ‡ Reflection

  • ๋ฐ”๋‹๋ผ JS๋กœ ์ปดํฌ๋„ŒํŠธ ์‹œ์Šคํ…œ ๊ตฌํ˜„ํ•˜๋Š” ์ˆ˜์—…์„ ๋“ฃ๋Š” ์ค‘์ธ๋ฐ ์ „๋ถ€ํ„ฐ ์ •๋ง ๋„ˆ๋ฌด ๊ถ๊ธˆํ–ˆ๋˜ ๋‚ด์šฉ์ด๋ผ ์žฌ๋ฐŒ๊ฒŒ ๋“ฃ๊ณ  ์žˆ๋Š” ์ค‘์ด๋‹ค. ๋Œ€์‹  this๋ž‘ ํด๋กœ์ €๋ž‘ module์ด๋ž‘ ๋น„๋™๊ธฐ๋ž‘ ๋„ˆ๋ฌด๋„ ์ต์ˆ™ํ•˜์ง€๋งŒ ๋Š˜ ๋’ค๋กœ ๋ฏธ๋ฃจ๊ธฐ๋งŒ ํ•ด์„œ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•œ ์  ์—†๋Š” ์ฃผ์ œ๋“ค์ด ๋ด‡๋ฌผ์ฒ˜๋Ÿผ ์Ÿ์•„์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ ์ฃผ์—๋Š” ๊ผญ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค.
  • ํ™”์š”์ผ์— ๋” ๋‚˜์€ ๊ณต๋ถ€๋ฅผ ์œ„ํ•œ ๋” ๋‚˜์€ ๋งˆ์Œ๊ฐ€์ง์„ ์ฃผ์ œ๋กœ ํŠน๊ฐ•์ด ์žˆ์—ˆ๊ณ  ๋กœํ†  ๊ฐ•์‚ฌ๋‹˜์˜ ๋ฌด์—‡์ด๋“  ๋ฌผ์–ด๋ณด์„ธ์š” ์„ธ์…˜์ด ์žˆ์—ˆ๋‹ค. ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ผฝ์ž๋ฉด, ๊ธฐ๋ถ„์— ๋งž์ถฐ ๊ณต๋ถ€ํ–ˆ๋‹ค๊ฐ€ ์•ˆํ–ˆ๋‹ค๊ฐ€ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ. ๊ฐœ๋ฐœ ์™ธ์˜ ์ทจ๋ฏธ ํ™œ๋™์„ ํ•˜๋Š” ๊ฒŒ ๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค๋Š” ๊ฒƒ.
  • ํ™”์š”์ผ์—๋Š” ๊ฑฐ์˜ ํ•˜๋ฃจ ์ข…์ผ 2์ฃผ์ฐจ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ์ œ์— ๋Œ€ํ•œ ๋‹ต์ง€ ๋ถ„์„์„ ํ–ˆ๋‹ค. ํ•˜๋‚˜ ํ•˜๋‚˜ ๋””๋ฒ„๊น… ์ฐ์–ด๊ฐ€๋ฉด์„œ ๋ณด๋‹ˆ๊นŒ ๊ทธ๋ž˜๋„ ์กฐ๊ธˆ์”ฉ ์ดํ•ด๊ฐ€ ๋๋‹ค. ์•„์ง๋„ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด์™€ ์ดํ„ฐ๋ ˆ์ดํ„ฐ์˜ ์ฐจ์ด, ์ดํ„ฐ๋Ÿฌ๋ธ”์€ ๋ชจ๋‘ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋กœ ์ „๊ฐœํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋Ÿฐ ๊ฒƒ๋“ค์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋‚จ์•„์žˆ๋Š”๋ฐ ์–ธ์  ๊ฐ€ ํ•œ๋ฒˆ ์•„ํ‹ฐํด๋กœ ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค. ์ง€๊ธˆ์€ ๋„ˆ๋ฌด ์ฝ”๋“œ ํ•œ ์ค„ ํ•œ ์ค„ ์ดํ•ดํ•˜๋А๋ผ ๊ธ‰๊ธ‰ํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ถ„๋“ค PR ์˜ฌ๋ฆฐ ๊ฑฐ ๋ณด๋ฉด์„œ ๋กœ์ง์„ ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๋‚˜๋„ ํ•จ์ˆ˜ํ˜• ์ดํ•ดํ•˜๊ณ  ์‹ถ๋‹ค....!
  • ์ˆ˜์š”์ผ์—๋Š” ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ํ–ˆ๋‹ค. ๊ฒŒ์‹œํŒ CRUD ์ž‘์—…์ธ๋ฐ ์‚ฌ์‹ค์ƒ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ฑฐ์˜ ๋‹ค ํ•ด๋’€์–ด์„œ ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜๋‹ค. (์ด๋ฏธ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ฒ„๋ ธ์ง€๋งŒ) ์ง„์งœ ์ง„์ž‘ ํ•  ๊ฑธ... ์™œ ๊ทธ๋ ‡๊ฒŒ ๋ถ™์žก๊ณ  ๋Š˜์–ด์ง€๊ณ  ์žˆ์—ˆ์„๊นŒ... ์‹œ๊ฐ„์ด ์ง€๋‚˜์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋” ๋ณด๋‹ˆ๊นŒ ์ฝ”๋“œ๊ฐ€ ๋” ๋ˆˆ์— ์ž˜ ๋“ค์–ด์˜ค๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ ... ์ด์ œ ํฌ์ŠคํŠธ๋งจ ์“ฐ๋Š” ๊ฑด ๋˜๊ฒŒ ์ต์ˆ™ํ•ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ œ ์—ญ ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์š”์ฒญ์— ํƒœ์›Œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ ๋ฏผํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋žญํฌ ๋งค๊ฒจ์„œ ์ถ”์ฒœ ๊ฒ€์ƒ‰์–ด์ฒ˜๋Ÿผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ๊ณ ๋ฏผํ•ด๋ด์•ผํ•  ๊ฒƒ ๊ฐ™๊ณ ... ์‹œ๊ฐ„์ด ๋˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒ€์ƒ‰์–ด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฐจํŠธ๋กœ ์ค‘์ฒฉํ•ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋„ ์ฐพ์•„๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๊ณ ... ๋กœ๊ทธ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋„ ์ข€ ์†๋Œ€๊ณ  ์‹ถ๊ณ ... ์‹œ๊ฐ„ ๋˜๋ฉด ์ž๋™ ๋กœ๊ทธ์•„์›ƒ๋„ ๊ตฌํ˜„ํ•˜๊ณ ... ์‚ฌ์ง„ ์—…๋กœ๋“œ๋„ ๊ตฌํ˜„ํ•˜๊ณ ... ํ•  ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์ง€๋งŒ ํฌ๊ธฐํ•  ๊ฒƒ์€ ํฌ๊ธฐํ•˜๋ฉด์„œ ์ด๋ฒˆ ์ฃผ ์•ˆ์— ๊ผญ ๋๋‚ผ ๊ฒƒ์ด๋‹ค. node.js๋Š” ์ด์ œ ๋Œ€์ถฉ ์–ด๋–ป๊ฒŒ ๊ตด๋Ÿฌ๊ฐ€๋Š”์ง€ ์•Œ๊ฒ ๋Š”๋ฐ ์˜คํžˆ๋ ค ๋ฆฌ์•กํŠธ๋ฅผ ์ •๋ง ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์ด๋ฒˆ์— ๋ฐ”๋‹๋ผ JS๋กœ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌํ˜„ํ•˜๋Š” ์ˆ˜์—… ์ž˜ ๋ณต๊ธฐํ•˜๋ฉด์„œ ์›๋ฆฌ๋ฅผ ์ž˜ ์ดํ•ดํ•ด๋ด์•ผ๊ฒ ๋‹ค.
  • ๊ทธ๋ž˜๋„ CRUD๊นŒ์ง€๋Š” ๊ตฌํ˜„ํ•ด์„œ ๊ทธ๋‚˜๋งˆ ํ•œ๊ฒฐ ๋งˆ์Œ์ด ํŽธํ•ด์กŒ๋‹ค...
  • ์ˆ˜์š”์ผ ์ €๋…์—๋Š” ๋ฉ˜ํ† ๋ง๊ณผ ์ƒˆ๋กœ ํ•ฉ๋ฅ˜ํ•˜๊ฒŒ ๋œ ํŒ€์›๋“ค์˜ ๋ฌด์—‡์ด๋“  ๋ฌผ์–ด๋ณด์„ธ์š” ์„ธ์…˜์ด ์žˆ์—ˆ๋‹ค. ๋‹ค ํ•ฉ์ณ์„œ ํ•œ 3์‹œ๊ฐ„? ์ˆ˜๋‹ค ๋–ค ๊ฒƒ ๊ฐ™๋‹ค. ์žฌ๋ฐŒ์—ˆ์–ด์„œ ๋ง‰ ๋‹ค์Œ๋‚ ์—๋„ ์ƒ๊ฐ๋‚˜๊ณ  ๊ทธ๋žฌ๋‹ค. ์˜ค๋Š˜์€ ์žก๋‹ดํ•  ๊ป€๋•์ง€๊ฐ€ ์—†์–ด์„œ ๋˜๊ฒŒ ์‹ฌ์‹ฌํ•˜๊ณ  ์˜คํžˆ๋ ค ์ง‘์ค‘๋„ ์•ˆ๋˜๊ณ  ๊ทธ๋žฌ๋‹ค. ํšŒ์‚ฌ ๋™๋ฃŒ๋“ค๋ผ๋ฆฌ ์ปคํ”ผ์ฑ—์„ ์™œ ํ•˜๋Š”์ง€ ์•Œ๊ฒ ๋‹ค.
  • ํ”„๋กœ์ ํŠธํ•˜๋ฉด์„œ CommonJS์™€ ES Modules์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด๊ฒŒ ๋๋‹ค. ์™œ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ๋‘˜์„ ๊ฐ™์ด ์“ธ ์ˆ˜ ์—†์„๊นŒ?
  • ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•ด์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ๊ฒƒ๋“ค์€ ์ฃผ๋ง์— ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋ณด๋ฅ˜ํ•ด๋‘๋‹ˆ ์ฃผ๋ง์— ํ•  ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์•„์กŒ๋‹ค. ๊ทธ๋ž˜๋„ ๋‚˜๋ฆ„ ์ž˜ ๊ฐ€๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํž˜๋‚ด์ž.

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] 20210826  (2) 2021.08.27
[WIL] 20210820 3์ฃผ์ฐจ ํšŒ๊ณ   (8) 2021.08.20
[TIL] 20210816  (0) 2021.08.16
[WIL] 20210815 2์ฃผ์ฐจ ํšŒ๊ณ   (0) 2021.08.15
[TIL] 20210814  (0) 2021.08.14