๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    [ํ•จ๊ป˜์ž๋ผ๊ธฐ] action point

    ํ•จ๊ป˜ ์ž๋ผ๊ธฐ ์• ์ž์ผ๋กœ ๊ฐ€๋Š” ๊ธธ(๊น€์ฐฝ์ค€)1. ์ž๋ผ๊ธฐ๋ฉ˜ํ†  ํ˜น์€ ์‚ฌ์ˆ˜๊ฐ€ ์„œ๋กœ ์ƒ๋ฐ˜๋œ ์˜๊ฒฌ์„ ์ค€๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ์ƒ๋ฐ˜๋œ ์˜๊ฒฌ๊ณผ ์ •๋ณด ์†์—์„œ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋Š” ํ›ˆ๋ จ์„ ํ•ด์•ผ ํ•œ๋‹ค.1๋งŒ ์‹œ๊ฐ„์˜ ๋ฒ•์น™์—์„œ 1๋งŒ ์‹œ๊ฐ„์€ ‘์ž์‹ ์˜ ๊ธฐ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๋ชฉ์ ์œผ๋กœ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•˜๋Š” ์ˆ˜๋ จ’์„ ํ•œ ์‹œ๊ฐ„์ด๋‹ค.์• ์ž์ผ ์ฒ ํ•™์„ ํ™œ์šฉํ•˜์—ฌ ์ผํ•˜๋Š” ๋„์ค‘์—๋„ ์˜๋„์  ์ˆ˜๋ จ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.์ž๊ธฐ๊ฐ€ ์Šต๋“ํ•œ ์ง€์‹์ด๋‚˜ ๋Šฅ๋ ฅ์€ ๋ณต๋ฆฌ๋กœ ์ด์ž๊ฐ€ ๋ถ™๋Š”๋‹ค -> ์ž๊ธฐ๊ณ„๋ฐœ์ด ์ค‘์š”ํ•˜๋‹ค.์–ด๋–ป๊ฒŒํ•˜๋ฉด ๋”ํ•˜๊ธฐ๋ณด๋‹ค ๊ณฑํ•˜๊ธฐ๋ฅผ ๋” ๋งŽ์ด ํ•  ์ˆ˜ ์žˆ์„๊นŒ?(๊ฐ€์šฉ์‹œ๊ฐ„์„ ๋Š˜๋ฆฌ๊ณ  ์“ธ๋ฐ์—†์ด ๋‚ญ๋น„๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ์ž ์ž๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์€ ๋”ํ•˜๊ธฐ์  ์‚ฌ๊ณ ์ด๋ฉฐ, ์ง‘๋‹จ์˜ ์ง€๋Šฅ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ๊ณฑํ•˜๊ธฐ์  ์‚ฌ๊ณ ์ด๋‹ค) (39-40p)1. ์ž์‹ ์ด ์ด๋ฏธ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์ž˜ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์œ ์ž…์‹œํ‚ค๋Š” ๋ฐ์—๋งŒ ์ง‘..

    [๋ฆฌํŒฉํ† ๋ง 2ํŒ] action point(ch3)

    Ch3. ์ฝ”๋“œ์—์„œ ๋‚˜๋Š” ์•…์ทจ๋ฆฌํŒฉํ„ฐ๋ง์ด ํ•„์š”ํ•œ, ๋•Œ๋กœ๋Š” ์•„์ฃผ ์ ˆ์‹คํ•œ ์ฝ”๋“œ๋“ค์— ์ผ์ •ํ•œ ํŒจํ„ด์ด ์žˆ๋‹ค1. ๊ธฐ์ดํ•œ ์ด๋ฆ„(Mysterious Name)- ๋งˆ๋•…ํ•œ ์ด๋ฆ„์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์œผ๋ฉด ์„ค๊ณ„์— ๋” ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์ˆจ์–ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค2. ์ค‘๋ณต ์ฝ”๋“œ(Duplicated Code)3. ๊ธด ํ•จ์ˆ˜(Long Function)- ๊ฐ„์ ‘ ํ˜ธ์ถœ์˜ ํšจ๊ณผ, ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๊ณต์œ ํ•˜๊ณ , ์„ ํƒํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค๋Š” ์žฅ์ ์€ ํ•จ์ˆ˜๋ฅผ ์งง๊ฒŒ ๊ตฌ์„ฑํ•  ๋•Œ ๋‚˜์˜จ๋‹ค- ์ฃผ์„์„ ๋‹ฌ์•„์•ผ ํ•  ๋งŒํ•œ ๋ถ€๋ถ„์€ ๋ฌด์กฐ๊ฑด ํ•จ์ˆ˜๋กœ ๋งŒ๋“ ๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„์€ ๋™์ž‘ ๋ฐฉ์‹์ด ์•„๋‹Œ ์˜๋„๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ์ง“๋Š”๋‹ค- ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ๋„ ์ถ”์ถœ ๋Œ€์ƒ์˜ ์‹ค๋งˆ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค4. ๊ธด ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก(Long Parameter List)5. ์ „์—ญ ๋ฐ์ดํ„ฐ(Global Data)- ์ „์—ญ ๋ฐ์ดํ„ฐ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค ์–ด๋””์—์„œ๋“  ๊ฑด๋“œ๋ฆด..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] action point(ch2)

    ๋ฆฌํŒฉํ„ฐ๋ง ์ •์˜๋ช…์‚ฌ : ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฒ‰๋ณด๊ธฐ ๋™์ž‘์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„, ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋ฒ•๋™์‚ฌ : ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฒ‰๋ณด๊ธฐ ๋™์ž‘์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฆฌํŒฉํ„ฐ๋ง ๊ธฐ๋ฒ•์„ ์ ์šฉํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋‹ค.1. ๋ฆฌํŒฉํ„ฐ๋ง ํ•˜๋Š” ๋™์•ˆ์—๋Š” ์ฝ”๋“œ๊ฐ€ ํ•ญ์ƒ ์ •์ƒ ์ž‘๋™ํ•ด์•ผํ•œ๋‹ค -> ์ „์ฒด ์ž‘์—…์ด ๋๋‚˜์ง€ ์•Š์•˜๋”๋ผ๋„ ์–ธ์ œ๋“  ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋‹ค์ด ๋ถ€๋ถ„์„ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฆฌํŒฉํ„ฐ๋ง ๋‹จ๊ณ„๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐœ๊ณ  ํ•ญ์ƒ ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋งค๋ฒˆ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋ณด์žฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง๊ณผ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. Ch1์—์„œ๋„ ๊ฐ•์กฐํ•œ ๋ถ€๋ถ„์ด์ง€๋งŒ ๊ทธ๋ž˜์„œ ์ž˜์งœ์—ฌ์ง„ ํ…Œ์ŠคํŠธ๊ฐ€ ๋Œ€๋‹จํžˆ ์ค‘์š”ํ•˜๋‹ค.2. ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ๋ฆฌํŒฉํ„ฐ๋ง๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž์ฃผ ๋ฒˆ๊ฐˆ์•„ ์ž‘์—…ํ•˜๋”๋ผ๋„ ๋‘ ๊ฐœ์˜ ๋ชจ์ž ์ค‘ ํ•˜๋‚˜์˜ ๋ชจ์ž๋ฅผ ์จ์•ผ ํ•œ๋‹ค. ํ•ญ์ƒ ๋‚ด๊ฐ€ ์“ฐ๊ณ  ์žˆ๋Š” ๋ชจ..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] action point(ch1)

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

    [Next.js] reactStrictMode

    https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictModeGood to know: Since Next.js 13.5.1, Strict Mode is true by default with app router, so the above configuration is only necessary for pages. You can still disable Strict Mode by setting reactStrictMode: false.์ถœ์ฒ˜ | https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictModeNext.js์—์„œ๋Š” next.config.js์— ..

    ํ”„๋ก ํŠธ์—”๋“œ ๋ฉด์ ‘ ๋ชจ์•„๋ณด๊ธฐ1

    1. Sync, Async์˜ ์ฐจ์ด์ (๋™๊ธฐ, ๋น„๋™๊ธฐ์˜ ์ฐจ์ด์ )์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.Sync๋Š” ์ž‘์—… ์š”์ฒญ์ด ์ด๋ค„์ง€๊ณ , ์š”์ฒญ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Async๋Š” ํŠน์ •ํ•œ ์š”์ฒญ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ๋œ ์ž‘์—…์„ ํ•˜๋‚˜์”ฉ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ setTimeout์ด๋‚˜ fetch๊ณผ ๊ฐ™์€ Web API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์ž‘ ์›๋ฆฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š”๋ฐ์š”, ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ตฌ๊ธ€์˜ V8์—”์ง„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋ฉ”๋ชจ๋ฆฌํž™๊ณผ ์ฝœ์Šคํƒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํž™์€ ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์ฝœ์Šคํƒ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝ..

    ํ”„๋ก ํŠธ์—”๋“œ ๋ฉด์ ‘(๋ฐฐ์—ด)

    1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฐ์—ด์€ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ•˜๋‚˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์€ ๋™์  ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด ๋†“์ง€ ์•Š์•„๋„ ๋˜๋ฉฐ, ์š”์†Œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ž๋™์œผ๋กœ ์กฐ์ ˆ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฐ์—ด์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด, ๋ฐฐ์—ด ์š”์†Œ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์—ฐ์†์ ์ด์ง€ ์•Š์•„๋„ ๋˜๊ณ , ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚ด์žฅ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด reduce, map ๋“ฑ์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.์ •๋ฆฌํ•˜..

    ํ”„๋ก ํŠธ์—”๋“œ ๋ฉด์ ‘(์˜์กด์„ฑ๋ฐฐ์—ด)

    1. useEffect ์‚ฌ์šฉ ์‹œ ์˜์กด์„ฑ ๋ฐฐ์—ด์— ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ๋Š” ๊ฒƒ์„ ์ง€์–‘ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?useEffect๋Š” ์˜์กด์„ฑ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌํ•œ ๊ฐ’์˜ ๋ณ€๊ฒฝ์— ์˜ํ•ด ์‹คํ–‰๋˜์•ผ ํ•˜๋Š” ํ›…์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜์กด์„ฑ ๋ฐฐ์—ด์— ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์ตœ์ดˆ ๋ Œ๋”๋ง ๋•Œ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค๋ฉด ์ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์‹ค์ œ๋กœ ๊ด€์ฐฐํ•ด์„œ ์‹คํ–‰๋ผ์•ผ ํ•˜๋Š” ๊ฐ’๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ๋Š” ๊ฒƒ์€ useEffect ํ›…์˜ ์ทจ์ง€์™€ ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ๋ฉด์ ‘(heap, CI/CD)

    1. ํž™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.ํž™์€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์— ์‚ฌ์šฉ๋˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ํž™์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ด ๋๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.2. CI/CD์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”."์ง€์†์ ์ธ ํ†ตํ•ฉ/์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต ๋˜๋Š” ๋ฐฐํฌ CI(Continuous Integration)/CD(Continuous Delivery, Continuous Deployment)"์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค.`์ง€์†์ ์ธ ํ†ตํ•ฉ(CI)`์€ ์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ •๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ๊ณต์œ  ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ˜‘์—…์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” conflict๋ฅผ ์ˆ˜์‹œ๋กœ ํ™•์ธํ•˜๊ณ  ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ์˜ ํ…Œ์ŠคํŠธ์™€ ์ถœ์‹œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.`์ง€์†์ ์ธ ..