Community

๐Ÿ“š ์•Œ์•„๋‘๋ฉด ์ข‹์€ โ€˜์˜์–ด ๊ฐœ๋ฐœ ์šฉ์–ดโ€™ 11๊ฐœ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŠน์ • ๋‹จ์–ด๋Š” ์˜์–ด์˜ ์‚ฌ์ „์  ์˜๋ฏธ์™€๋Š” ๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์˜๋ฏธ๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‹œ์ž‘ํ•˜์‹ ์ง€ ์–ผ๋งˆ ์•ˆ๋˜์—ˆ๋‹ค๋ฉด ์ด๋Ÿฐ ๋‹จ์–ด๋“ค์„ ์ฒ˜์Œ ๋ดค์„ ๋•Œ ์‚ฌ์ „์  ์˜๋ฏธ ๊ทธ๋Œ€๋กœ ํ•ด์„ํ•˜์—ฌ ํ˜ผ๋ž€์Šค๋Ÿฌ์šฐ์‹ค ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฐœ๋ฐœ ์˜์–ด ์šฉ์–ด 11๊ฐœ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค :) --- "์•Œ์•„๋‘๋ฉด ์ข‹์€ ์˜์–ด ๊ฐœ๋ฐœ ์šฉ์–ด" 1. Agnostic (์‚ฌ์ „์  ์˜๋ฏธ: ๋ถˆ๊ฐ€์ง€๋ก ์˜) โ€˜๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ๊ฒƒโ€™์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋Œ€์ฒด๋กœ ์–ด๋–ค ๊ฒƒ์— ๊ตญํ•œ๋˜์ง€ ์•Š๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๊ธฐ์ˆ ์„ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. `Nestjs is platform-agnostic framework` ์ด๋ผ๊ณ  ํ•˜๋ฉด nestjs๋Š” express, fastify ๋“ฑ ํŠน์ • Nodejs ํ”Œ๋žซํผ์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 2. Buffer (์‚ฌ์ „์  ์˜๋ฏธ: ์™„์ถฉ๊ธฐ) โ€˜์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„โ€™์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์†๋„๋ณด๋‹ค ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋А๋ฆฌ๊ฑฐ๋‚˜, ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ฒ˜๋ฆฌ๋˜๋Š” ์†๋„๋ณด๋‹ค ๋” ์žฆ๊ฒŒ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฒ„ํผ๋ผ๋Š” ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•ด๋‘๊ณ  ์ „์†กํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 3. Throttle(์‚ฌ์ „์  ์˜๋ฏธ: ๋ชฉ์„ ์กฐ๋ฅด๋‹ค) ๋ชฉ์„ ์กธ๋ผ์„œ ๊ฐ•์ œ๋กœ ์ˆจ ์‰ฌ๋Š” ์–‘์„ ์กฐ์ ˆํ•˜๋“ฏ์ด โ€˜์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ฐ˜์‘์˜ ํšŸ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํ–‰์œ„โ€™๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์— ๋ชจ๋‘ ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋Œ€ํ•ด ๋งค๋ฒˆ ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ณ  ๋œ ๋ฐ˜์‘ํ•˜๊ณ , ์„œ๋ฒ„์—์„œ๋Š” ๋‹จ๊ธฐ๊ฐ„์˜ ๋งŽ์€ ์š”์ฒญ์—๋„ ์ •ํ•ด๋†“์€ ์ตœ์†Œ ์ฃผ๊ธฐ์— ๋งž๊ฒŒ ๋ฐ˜์‘ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 10์ดˆ ๋™์•ˆ ์—ฌ๋Ÿฌ ๋ฒˆ API ์š”์ฒญ์„ ํ•˜๊ฑฐ๋‚˜ ํ™”๋ฉด์—์„œ ๋ฒ„ํŠผ์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ˆŒ๋Ÿฌ๋„ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰ํ•˜์—ฌ ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ๋†’์€ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. 4. Debounce(์‚ฌ์ „์  ์˜๋ฏธ: bounce์˜ ๋ฐ˜๋Œ€, ํŠ•๊ธฐ์ง€ ์•Š๋Š”) โ€˜๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ๋งŒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒโ€™์„ ๋งํ•ฉ๋‹ˆ๋‹ค. throttle๊ณผ ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ์š”? throttle์˜ ์ผ๋ฐ˜์  ์˜๋ฏธ์ธ โ€˜๋ชฉ์„ ์กฐ๋ฅด๋‹คโ€™๋ฅผ ๋– ์˜ฌ๋ฆฌ๋ฉด ๋˜๋Š”๋ฐ, ์ˆจ์€ ๊ผญ ํ•œ๋ฒˆ ์”ฉ ๋“ค์ด๋งˆ์…”์•ผ ์‚ด๊ธฐ ๋•Œ๋ฌธ์— throttle์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•œ๋ฒˆ ์”ฉ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•œํŽธ debounce๋Š” ์‹คํ–‰๋œ ์ดํ›„ ํŠน์ • ์‹œ๊ฐ„ ์•ˆ์— ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์€ ๋ชจ๋‘ ๋ฌด์‹œํ•˜๊ณ , ๊ทธ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„์—์•ผ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ๋งŒ ๋”ฑ ํ•œ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 5. Orchestration(์‚ฌ์ „์  ์˜๋ฏธ: ์ง€ํœ˜, ์—ฌ๋Ÿฌ ์š”์†Œ์— ๋Œ€ํ•œ ํ†ต์ œ๋‚˜ ๊ด€๋ฆฌ) ๋ฐ๋ธŒ์˜ต์Šค ์šฉ์–ด๋กœ, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์กฐ์ •ํ•˜๋Š” ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Orchestration์„ ์ด์šฉํ•˜๋ฉด ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ์ž๋™์œผ๋กœ ์ตœ์ ํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ ํ˜น์€ CPU ๋ถ€ํ•˜๋Ÿ‰์ด ์ฆ๊ฐ€ํ•  ๋•Œ, ์„œ๋ฒ„ ํ˜น์€ ์ธ์Šคํ„ด์Šค๋‚˜ ์ด๋ฏธ์ง€๋ฅผ ์ฆ์„ค(์Šค์ผ€์ผ ์•„์›ƒ)ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 6. Idempotent (์‚ฌ์ „์  ์˜๋ฏธ: ๋ฉฑ๋“ฑ์„ฑ ๅ†ช็ญ‰ๆ€ง ) ๋ฉฑ๋“ฑ์„ฑ์€ '์—ฌ๋Ÿฌ ๋ฒˆ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜์—ฌ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š” ์„ฑ์งˆ'์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋‚˜ API๋Š” **๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜์—ฌ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ**๊ฐ€ ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋‚˜ API๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉฑ๋“ฑ์„ฑ์„ ์ง€ํ‚ค๋Š” ๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. 7. Lazy (์‚ฌ์ „์  ์˜๋ฏธ: ๊ฒŒ์œผ๋ฅธ, ํƒœ๋งŒํ•œ) 'ํ•„์š”ํ•œ ์ˆœ๊ฐ„์ด ์˜ฌ ๋•Œ๊นŒ์ง€ ์‹คํ–‰์„ ๋ฏธ๋ฃฌ๋‹ค'๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. Lazyํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ผญ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์— ์‹คํ–‰ํ•จ์œผ๋กœ์จ ์ปดํ“จํ„ฐ ์ž์›์„ ์ ˆ์•ฝํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. 8. Dispatch (์‚ฌ์ „์  ์˜๋ฏธ: ๋ณด๋‚ด๋‹ค, ์‹ ์†ํžˆ ํ•ด์น˜์šฐ๋‹ค) โ€˜์–ด๋”˜๊ฐ€์— ๋ฌด์—‡์„ ๋ณด๋‚ด๋Š” ํ–‰์œ„โ€™ ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด โ€˜์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ๊ทธ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •โ€™์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋ฉ”์‹œ์ง€๋Š” ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ํŠน์ • ๋ฐ์ดํ„ฐ(์ธ์ž)์™€ ํ•จ๊ป˜ ํŠน์ • ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค). ๋ฉ”์‹œ์ง€๊ฐ€ ์™”์„ ๋•Œ ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ฑฐ๋‚˜(method dispatch), redux์—์„œ๋Š” dispatch(action)์„ ํ†ตํ•ด ํŠน์ • reducer๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. 9. Hydrate (์‚ฌ์ „์  ์˜๋ฏธ: ์ˆ˜๋ถ„์„ ๋ณด์ถฉํ•˜๋‹ค) ๊ฐ์ฒด๋ฅผ Hydrate ํ•œ๋‹ค๋Š” ๊ฒƒ์€ย ์•„์ง ํŠน์ • ๋ฐ์ดํ„ฐ๋„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜จ ํ›„, ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฑ„์šฐ๋Š” ํ–‰์œ„(Populate)๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ์„ฑ๋Šฅ์ƒ์˜ ์ด์ ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ โ€˜์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒโ€™์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•„์š”. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์„œ๋ฒ„์‚ฌ์ด๋“œ๋ Œ๋”๋ง ์‹œ, ์ด๋ฏธ ์„œ๋ฒ„๊ฐ€ HTML์„ ๋งŒ๋“ค์–ด ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ๋ Œ๋”๋ง์„ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •์ ์ธ ํŽ˜์ด์ง€๋กœ๋งŒ ๊ทธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ๋™์ ์ธ ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ Store, State ๋“ฑ์„ ์ฑ„์›Œ์ฃผ์–ด์•ผ(Populate) ํ•˜๋Š”๋ฐ ์ด๋Ÿฐ ๊ณผ์ •์„ Hydrate๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 10. Immutable (์‚ฌ์ „์  ์˜๋ฏธ: ๋ถˆ๋ณ€ํ•˜๋Š”) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” โ€˜์ƒ์„ฑ ํ›„ ๊ทธ ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๊ฐ์ฒดโ€™๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. immutable์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ๊ฐ•์กฐํ•˜๋Š” ์†์„ฑ์ธ๋ฐ์š”. ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํŠน์ • ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ถˆ๋ณ€์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€ํ‚ค๋ ค๋ฉด ์ˆœ์ˆ˜ํ•จ์ˆ˜(๊ฐ™์€ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ๊ฐ™์€ ์ถœ๋ ฅ์„ ๋‚ด๊ณ , ๋ถˆ๋ณ€์„ฑ์„ ๊นจ๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜)๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 11. Literal (์‚ฌ์ „์  ์˜๋ฏธ: ๋ง ๊ทธ๋Œ€๋กœ์˜) โ€˜๊ณ ์ •๋œ ๊ฐ’โ€™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” integer, float, string, boolean๊ณผ ๊ฐ™์€ ์ž๋ฃŒํ˜•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ์ž๋ฃŒํ˜•์˜ ๊ณ ์ •๋œ ๊ฐ’์„ ๋ฆฌํ„ฐ๋Ÿด์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€˜hjsongโ€™, โ€˜tossโ€™ ๋“ฑ์€ ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•์˜ ๊ฐ’์ด๋ฉฐ ์ด ๊ฐ’ ์ž์ฒด๋Š” ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ๊ณ ์ •์ ์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต `const a = 1` ๊ณผ ๊ฐ™์ด ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. --- "์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ์ž๋ฃŒ๋“ค" 1. meotitda/Dictionary ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ (https://github.com/meotitda/DICTIONARY) `moonsupport`๋ผ๋Š” ๋ถ„์ด ๋งŒ๋“  ๊ฐœ๋ฐœ ์šฉ์–ด ์‚ฌ์ „ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. DICTIONARY๋Š” ์•„๋ž˜์˜ ํ’๋ถ€ํ•œ ์–ดํœ˜๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ชฉ์ ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์–ด์š”. 1. ๊ฐœ๋ฐœ ๋ฌธ์„œ ๋ฐ ์ฝ”๋“œ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ฒŒ ๋˜๊ณ  2. ์ ์ ˆํ•œ ํ•จ์ˆ˜๋ช…์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ 3. ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋Œ€ํ™”๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํฌ๋กฌ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์–ด์„œ ๋ชจ๋ฅด๋Š” ์šฉ์–ด๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ๋Š” ์šฉ์–ด๋ฅผ ๋ฐ”๋กœ ๊ฒ€์ƒ‰ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๊ณ , ์ง์ ‘ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์—๋””ํ„ฐ๋ฅผ ํ†ตํ•ด ํฌ๋งท์— ๋งž๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”! ๋งŒ์•ฝ ๊ถ๊ธˆํ•œ ์šฉ์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๊นƒํ—™์— ์ด์Šˆ๋กœ ๋‚จ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚ 2. ktword (http://www.ktword.co.kr/) ํ•œ๊ตญ ์ปดํ“จํ„ฐ ์šฉ์–ด ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. 6์ฒœ ๊ฐœ์˜ ํ•ด์„ค๋“ค์ด ์žˆ์–ด์š”. dictionary์ฒ˜๋Ÿผ ์˜ˆ์ œ๋‚˜ ์นœ์ ˆํ•œ ์„ค๋ช…๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ ์šฉ์–ด ํ•ด์„ค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์šฉ์–ด์™€ ๊ด€๋ จ๋œ ์ง€์‹๊นŒ์ง€ ์•Œ๋ ค์ค˜์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™์•„์š”. 3. hackterms (https://www.hackterms.com/) ์˜์–ด๋กœ ๋œ ์‚ฌ์ดํŠธ๋กœ๋Š” hackterms ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. --- "references" - https://evan-moon.github.io/2020/01/05/what-is-immutable/ - https://oop.jiny.dev/class/message - https://webclub.tistory.com/607 - https://velog.io/@keinn51/React-Dom์ด๋ž€-hydrate๋ฅผ-์จ์•ผ-ํ•˜๋Š”-์ด์œ #3-hydrate-ํ•จ์ˆ˜๋ž€

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค