๐Ÿš€ Intro

๋จผ์ € ์ง€๋‚œ MIL ๋งˆ์ง€๋ง‰์— ์ž‘์„ฑํ•œ ์ด๋ฒˆ ๋‹จ์œ„ ๊ธฐ๊ฐ„ ๋ชฉํ‘œ๋“ค์ด๋‹ค.

๐ŸŽฏ 2์ฐจํŒ€ ๊ธฐ๊ฐ„ ๋™์•ˆ์˜ ๋ชฉํ‘œ

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

๋ชฉํ‘œ ๋‹ฌ์„ฑ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•ด๋ณด์ž๋ฉด

  • TypeScript ์Šคํƒ€๋”” ์™„๋ฃŒ ํ›„ ๊ธฐ์กด JS๋กœ ์ž‘์„ฑํ•œ ๊ณผ์ œ๋‚˜ ํ”„๋กœ์ ํŠธ TS๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
    TypeScript ์Šคํ„ฐ๋””๋Š” ์ด๋ก  ๊ณต๋ถ€๋Š” ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌํ–ˆ๊ณ  3์ฃผ์ฐจ ๊ณผ์ œ์ธ Todo List ๋ณด๊ฐ• ๊ณผ์ œ๋ฅผ TS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•ด๋ณด์•˜๋‹ค. ๊ธฐ์กด์— JS์—์„œ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค๋ณด๋‹ˆ this ๋ฐ”์ธ๋”ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.
    ์„ ํƒ์ง€๋Š” class ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋˜์ง€ this๋ฅผ anyํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•ด์„œ ํ•ดํ‚น ์†”๋ฃจ์…˜์„ ์ œ์‹œํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋‚˜๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์–ด ํ›„์ž๋ฅผ ์„ ํƒํ–ˆ๋Š”๋ฐ ์—ญ์‹œ๋‚˜ any๋Š” TS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์„ ํ•ดํ•˜๋Š” ์œ„๋ฐฐ ํ–‰์œ„์™€ ๊ฐ™์•„์„œ ์Šคํ„ฐ๋”” ํŒ€์›๋“ค์—๊ฒŒ ์‹ ๋ž„ํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋‹นํ–ˆ๋‹ค.
    ์„ธ์ธ๋‹˜๊ป˜์„œ๋Š” ์ผ์ผํžˆ this ๊ฐ์ฒด์— ๋Œ€ํ•œ ํƒ€์ž…์„ ์ง€์ •ํ•˜์‹œ๋ ค๊ณ  ์—„์ฒญ ๊ณ ์ƒํ•˜์…จ๋Š”๋ฐ ๋‚˜๋„ ๊ทธ์™€ ๊ฐ™์ด ์ž‘์—…์„ ํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋Š”๋ฐ React ๊ฐ•์˜ ๋ฐ ๊ณผ์ œ๋„ ๋ฒ…์ฐจ ์ œ๋Œ€๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜์ง€ ๋ชปํ–ˆ๋‹ค...

  • Vue ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ธฐ์ดˆ์ ์ธ ํ† ์ด ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ
    ๊ธฐ์ดˆ์ ์ธ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด๋ณด๋Š”๊ฒŒ ์›๋ž˜ ๋ชฉ์ ์ด์—ˆ์ง€๋งŒ Vue ๊ณผ์ œ ์ž์ฒด๊ฐ€ ๋‚œ์ด๋„๊ฐ€ ์žˆ๋Š” ์˜๋ฌธ ์˜ํ™” ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์–ด์„œ ๊ณผ์ œ ์ˆ˜ํ–‰๊ณผ ์ด๊ฒƒ์„ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค.
    ํ™”๋ฉด ์ „ํ™˜์„ ์œ„ํ•œ ๋ผ์šฐํŒ… ์ ์šฉ์‹œ lazy ๋กœ๋”ฉ, storeRefs๋ฅผ ํ†ตํ•ด pinia ์ƒํƒœ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ™”ํ•˜๋Š” ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ๋‹ค.

  • React + TS ๋กœ ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
    React ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ๊ณต๋ถ€ํ•˜๋Š”๋ฐ์—๋„ ๋ฒ…์ฐผ๋‹ค. ์„ ํ˜• ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜๊ฐ€ ์—„์ฒญ ํ•จ์ถ•์ ์ด๊ณ  ๋ฒ„์ „์ด ์ข€ ๋งž์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋„ ์žˆ์–ด ์‹ค์Šตํ•  ๋•Œ ์—๋Ÿฌ๋‚˜๋Š” ๋ถ€๋ถ„๋“ค์„ ํ•ด๊ฒฐํ•˜๋‹ค๊ฐ€๋ณด๋ฉด ์˜ˆ์ƒํ–ˆ๋˜ ํ•™์Šต ์‹œ๊ฐ„์„ ํ›Œ์ฉ ๋„˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด์—ˆ๋‹ค.
    ๊ทธ๋ฆฌํ•˜์—ฌ ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ 2์ฐจ ํŒ€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์œผ๋กœ ํ•ด๋ณด๊ธฐ๋กœ ํ•˜๊ณ  React ์ˆ™์ง€์— ์ „๋…ํ–ˆ๋‹ค.(๊ทธ๋งˆ์ €๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค ใ… ใ… )

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



๐Ÿ“˜ Vue ๊ณต์‹๋ฌธ์„œ๋ฅผ view ํ•˜๋ฉฐ ๊ณตviewํ•˜๊ธฐ

JS์˜ ํ”„๋ ˆ์ž„์›Œํฌ Vue์— ๋Œ€ํ•ด ๋จผ์ € ํ•™์Šตํ–ˆ๋‹ค.
๊ฐœ์ธ๋งˆ๋‹ค Vue์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๋น„์ค‘์ด ๋‹ฌ๋ผ ๊ทธ๋ƒฅ ๋„˜๊ธฐ๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๋งŽ์•˜๋˜ ๊ฑฐ ๊ฐ™๋‹ค.

๋‚˜๋Š” ์ฒ˜์Œ ์›น ๊ฐœ๋ฐœ์„ ์ ‘ํ–ˆ๋˜ ๊ฒŒ python ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ด€๋ จ ์„œ๋น„์Šค ๊ต์œก์„ ๋“ค์œผ๋ฉฐ django๋กœ MTV ํŒจํ„ด์„ ๋‹ค๋ฃจ์–ด๋ณด์•˜๋˜ ๊ฒฝํ—˜์ด ์žˆ์–ด Vue ํ…œํ”Œ๋ฆฟ ๋ฌธ๋ฒ•์ด ๋‚˜๋ฆ„ ์ต์ˆ™ํ•˜๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํŠธ๋ Œ๋“œ๊ฐ€ ๋Œ๋ŒReact์ด๊ธฐ ํ•˜์ง€๋งŒ ์„ธํฌ ๋ฉ˜ํ† ๋‹˜๋„ Vue์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ๊ณผ ํฌ์†Œ์„ฑ ๊ฐ€์น˜์— ๋Œ€ํ•ด์„œ ๊ฐ•์กฐํ•˜์…จ๊ณ  ๋‚˜๋„ ๋ชจ๋“  ์ง€์‹์€ ์—ฐ๊ฒฐ๋˜์–ด์ง„๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ์— Vue๋„ ์—ด์‹ฌํžˆ ์ตํ˜”๋‹ค.

์ด์ „์—๋„ Javasscript์™€ TypeScript๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ๋„ ๊ทธ๋žฌ์ง€๋งŒ Vue ํ”„๋ ˆ์ž„์›Œํฌ ํ•™์Šต ๋•Œ๋ถ€ํ„ฐ๋Š” ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ–ˆ๋‹ค.

Vue ๊ณต์‹๋ฌธ์„œ๊ฐ€ ์—„์ฒญ ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ๊ธฐ๋„ ํ–ˆ๊ณ  Vue2์—์„œ Vue3๋กœ ๋„˜์–ด๊ฐ€๋ฉด์„œ ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„๋“ค(Composition API, Pinia ๋“ฑ )์ด ๋งŽ์•˜๊ธฐ์— ๋”๋”์šฑ ๊ณต์‹๋ฌธ์„œ์— ๊ทธ ๋ณ€ํ™”์— ์œ ์˜ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ๋‹จ์ˆœ ์ฃผ๋จน๊ตฌ๊ตฌ์‹ ๊ณต๋ถ€๊ฐ€ ์•„๋‹Œ ์™œ ๊ทธ๋ ‡๊ฒŒ ๊ตฌํ˜„ ๋ฐฉ์‹์ด ๋ณ€ํ™”ํ–ˆ๊ณ  ์ตœ์ ํ™”ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ๊ณผ ํ•จ๊ป˜ Vue๋ฅผ ๋‹ค๋ฃจ๋‹ค๋ณด๋‹ˆ ํ›จ์”ฌ ์ดํ•ด๊ฐ€ ๋นจ๋ž๋‹ค.

์ด์ „์— ๋™์˜ ๋ฉ˜ํ† ๋‹˜์ด ์ƒˆ๋ฒฝ ์ฝ”๋”ฉ ๋“ฑ๋Œ€ํ•  ๋•Œ ๋“ค์–ด์˜ค์…”์„œ ๊ธฐ์ˆ ์˜ ์—ญํ• ์— ๋Œ€ํ•œ ๋ณธ์งˆ์„ ๊ณ ๋ฏผํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๋งŽ์ด ๊ฐ€์ ธ๋ณด๋ผ๊ณ  ํ•˜์…จ์—ˆ๋Š”๋ฐ ๊ทธ ๋ง์ด ์ด์ œ์„œ์•ผ ์™€๋‹ฟ์•˜๋‹ค.

ํƒ„ํƒ„ํ•œ ์˜์›… ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜์™€ ๋”๋ถˆ์–ด ๊ณต์‹๋ฌธ์„œ๋กœ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ Vue๋ฅผ ์ตํžŒ ๋•๋ถ„์— Vue ๊ณผ์ œ๋Š” ๋ฌด๋‚œํ•˜๊ฒŒ ์ž˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๋Š” ๋ฒ•์„ ํ„ฐ๋“ํ•œ ๊ฒƒ ๊ฐ™์•„ ๋‚ด ์ž์‹ ์—๊ฒŒ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.

https://iks-movie.vercel.app/



๐Ÿ˜… ๋Œ๋ŒReact ํ•˜์ง€๋งŒ ์‰ฝ์ง€ ์•Š๋‹ค

ํ˜„์žฌ ์›น ๊ฐœ๋ฐœ์˜ ํŠธ๋ Œ๋“œ์ด์ž ๊ฐ€์žฅ ํ•ซํ•œ ๊ธฐ์ˆ  ์Šคํƒ์€ ๋‹จ์—ฐ์ฝ” React์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ฐ๋จนํ–ˆ๋˜ ๊ณผ๊ฑฐ๋ฅผ ๋’ค๋กœํ•˜๊ณ  ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด๋ณด๋‹ˆ ์—ญ์‹œ ๋งŽ์ด ์“ฐ๊ณ  ํ•ซํ•˜๋‹ค๊ณ  ์‰ฌ์šด ๊ฒƒ์€ ์•„๋‹ˆ์—ˆ๋‹ค.

์„ ํ˜‘ ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜๋Š” ๋ญ”๊ฐ€ ์—„์ฒญ ํ•จ์ถ•์ ์ด๋‹ค. ์˜์›… ๊ฐ•์‚ฌ๋‹˜ ๊ฐ•์˜์™€๋Š” ์ •๋ฐ˜๋Œ€๋ผ๊ณ  ๋А๋‚„ ์ •๋„๋กœ A-Z๊ฐ€ ์•„๋‹Œ A+๋กœ ์„ค๋ช…์ด ๋๋‚˜๋Š” ๋А๋‚Œ์ด๋‹ค. ๋˜ํ•œ ์‚ฌ๊ณ ์˜ ํ๋ฆ„์ด ์›Œ๋‚™ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์œผ์…”์„œ ์ดˆ์‹ฌ์ž์ธ ๋‚ด๊ฐ€ ๋”ฐ๋ผ๊ฐ€๊ธฐ์— ์กฐ๊ธˆ ๋ฒ…์ฐผ๋‹ค.

๋”ฐ๋ผ์„œ React๋„ ๊ณต์‹๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค. ๋งˆ์นจ ๋…์Šคํด๋Ÿฝ์—๋„ ๊ฐ€์ž…ํ•ด์„œ ๊ณต์‹๋ฌธ์„œ ์ฝ๋Š” ๋™์•„๋ฆฌ ํ™œ๋™๋„ ๊ฒธํ–ˆ๊ธฐ์— ๋”๋”์šฑ ์ข‹์€ ๊ธฐํšŒ์˜€๋‹ค.

ํ•˜์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์ž์œ ๋„๊ฐ€ ๋†’์€ React ์„ฑ๊ฒฉ ์ƒ Component ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ฐ Props ์‚ฌ์šฉ๋ฒ•์„ ์ •ํ™•ํ•˜๊ฒŒ ์ตํžˆ๋Š” ๋ฐ์—๋„ ํƒ€๊ณ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์ง€์‹์ด ๋„ˆ๋ฌด ๋ฐฉ๋Œ€ํ–ˆ๋‹ค.
์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋‚ด์žฅ Hook(useState, useCallback..)์ด๋‚˜ ์ปค์Šคํ…€ ํ›…, ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(context api, redux)๋กœ ๋‚ด์šฉ์ด ์–ด๋ ต๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๊ทธ ์ •๋„๋Š” ์‹ฌํ–ˆ๋‹ค.

๋‚š์‹œ๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๊ณ ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„ ์–ด๋–ค ๋ฌผ๊ณ ๊ธฐ๋ถ€ํ„ฐ ์žก์•„์•ผ ํ• ์ง€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค.

React ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ๋„ ์•„์ง JS๋กœ React ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„์ด๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ดํ•ด๋„ ์ •ํ™•ํ•˜๊ฒŒ ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ TS๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์ž…๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋‹ค๋ณด๋‹ˆ ๊ทธ์•ผ๋ง๋กœ ์ค‘๊ตฌ๋‚œ๋ฐฉ์ด์—ˆ๋‹ค.

์–ด์ฐŒ์ €์ฐŒ ํ•ด์„œ ๊ณผ์ œ๋Š” ์™„๋ฃŒํ•˜์˜€์œผ๋‚˜(api ๊ณต๊ฐœ๊ถŒํ•œ ๋ฌธ์ œ๋กœ ๊ณผ์ œ ์ƒ์„ธ ๋‚ด์šฉ์€ ์œ ์ถœ ๊ธˆ์ง€์ด๋‹ค) ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๋ฉด์„œ styled Component ๋‚ด์—์„œ props ๋ฐ ํƒ€์ž… ์ง€์ •์ด๋ผ๋˜์ง€ context api ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ์กฐ์ฐจ ํ•˜์ง€ ์•Š๊ณ  ๋ชธ์†Œ props drilling์„ ๋А๊ปด๋ณด๋‹ˆ React์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ ˆ๋ฐ˜๋„ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค.

์‚ฌ์‹ค ์ด์ œ ๊ณง 2์ฐจ ํŒ€ํ”„๋กœ์ ํŠธ๊ฐ€ ํ˜„์‹ค๋กœ ๋‹ค๊ฐ€์™”๋Š”๋ฐ React์— ๋Œ€ํ•œ ์ˆ™์ง€๋ฅผ ๋‹ค์‹œ ๋ชจ๋ฅด๋Š” ๊ฑด ํ™•์‹คํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ๊ฒ ๋‹ค๋Š” ํ•„์ˆ˜ ๋ถˆ๊ฐ€๊ฒฐํ•œ ๋ชฉํ‘œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

๊ณต์‹๋ฌธ์„œ๋ฅผ ๋‹ฌ๊ณ  ๋‹ค๋‹ˆ๋ฉด์„œ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ •๋…ํ•˜๋ฉด์„œ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์„ ํ•˜๋ฃจ ํ•œ์‹œ๊ฐ„์ด๋ผ๋„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค.



๐ŸŒ„ ์–ด์ฐŒ๋˜์—ˆ๋“  ํŒ€ํ”Œ ๋‚ฎ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์€ ๊ธฐ๋‹ค๋ ค์ฃผ์ง€ ์•Š๋Š”๋‹ค.
๊ธ€์„ ์“ฐ๋Š” ์ง€๊ธˆ ๋ฒŒ์จ ํŒ€ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„์ด ์‹œ์ž‘๋œ์ง€ 3์ผ์ด ์ง€๋‚ฌ๋‹ค.

ํŒ€ ํ”„๋กœ์ ํŠธ ํ…Œ๋งˆ ๋ฐ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ์ˆ  ์Šคํƒ, ์ฝ”๋“œ/์ปค๋ฐ‹ ์ปจ๋ฒค์…˜, ๊ธฐ์ˆ  ๋ช…์„ธ์„œ ๋“ฑ ํ”„๋กœ์ ํŠธ task ๊ด€๋ฆฌ ๋ฐ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์ •ํ•˜๋Š” ๋ฐ์— ๋“  ์‹œ๊ฐ„๋งŒ 3์ผ์ด๋‹ค.(๊ธฐ์ˆ  ๋ช…์„ธ์„œ๋‚˜ ํ™”๋ฉด ๋ช…์„ธ์„œ๋„ ์•„์ง ๋ฏธ์™„์„ฑ์ด๋‹ค)

์†”์งํžˆ ๋งํ•ด์„œ ์ข€ ๋” ํƒ€์ดํŠธํ•˜๊ฒŒ ์™„๋ฃŒํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์ฃผ๋ง๋„ ๊ปด์žˆ๊ณ  ์—ฐ๋ง์ด๋ผ ๋‹ค๋“ค ๋ชจ์—ฌ์„œ ํšŒ์˜ ๋ฐ ๊ณ ๋ฏผํ•  ์‹œ๊ฐ„์ด ์ ˆ๋Œ€์ ์œผ๋กœ ๋ถ€์กฑํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚จ์€ ๊ธฐ๊ฐ„๋„ ์ด์   17์ผ ๋‚จ์ง“์ด๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๊ธฐ๊ฐ„ ๋‚ด์— ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฑธ ์žŠ๊ณ  ์žˆ์—ˆ๋‹ค.

๋‚ด์ผ๋ถ€ํ„ฐ๋Š” ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ๊ธฐ์ˆ ์  ๊ธฐํš์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ์— ๋Œ์ž…ํ•˜์ž๊ณ  ํŒ€์›๋“ค์—๊ฒŒ ์ถ”์ง„ํ•ด๋ณผ ๊ณ„ํš์ด๋‹ค.

์™„๋ฒฝํ•œ ๊ณ„ํš์€ ์—†๋‹ค.



๐ŸŽฏ 4์ฐจ ๋‹จ์œ„๊ธฐ๊ฐ„ ๋ชฉํ‘œ

  • 2์ฐจ ํŒ€ ํ”„๋กœ์ ํŠธ ๊ธฐํ•œ ๋‚ด ๊ธฐ๋ณธ ๋ฐ ๋ณด๋„ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ๊ตฌํ˜„ ์™„๋ฃŒํ•˜๊ธฐ
    ์ด๊ฑด ๋ฌด์กฐ๊ฑด ํ•ด๋‚ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…์„ ํ•ด๋„ ์ฃฝ๋Š” ํ•œ์ด ์žˆ๋”๋ผ๋„ ์ด๋ฃจ์–ด๋‚ด๋Š” ๊ฒƒ์„ ์Šต๊ด€ํ™”ํ•ด์•ผ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

  • ์ฒ˜์Œ์ด์ž ๋งˆ์ง€๋ง‰์ธ ๋”ฅ ๋‹ค์ด๋ธŒ ๋ฌด์‚ฌํžˆ ์™„๋ฃŒํ•˜๊ธฐ
    ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ๋‚ด ์ƒ๊ฐ๊ณผ ๋ฐ์ผ ์นด๋„ค๊ธฐ์˜ ์ธ๊ฐ„๊ด€๊ณ„๋ก  ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๋”ฅ ๋‹ค์ด๋ธŒ๋ฅผ ์งˆ๋ €๋‹ค. ์ธํ˜๋‹˜์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ํ”„๋กฑ์ด๋ถ„๋“ค์ด ์ด๊ฒŒ ์ข‹์€ ์ฃผ์ œ๋ผ๊ณ  ํ•ด์ฃผ์—ˆ๋‹ค. ๊ณ ๋งˆ์›Œ์š”... ์—ด์‹ฌํžˆ ํ•ด๋ณผ๊ป˜์š”

  • ๊ฑด๊ฐ• ์ฑ™๊ธฐ์ž
    ๋…๊ฐ์— ๊ฑธ๋ฆฌ๊ณ  12์›” ์ดˆ๋ถ€ํ„ฐ ๊ณจ๊ณจ๋Œ€๊ณ  ์žˆ๋‹ค. ์ •๋ง ์ด๋ ‡๊ฒŒ ์˜ค๋ž˜ ์•„ํ”„๊ณ  ํšŒ๋ณต์ด ๋”๋”˜ ๊ฑด ์ธ์ƒ์—์„œ ์ฒ˜์Œ์ด๋‹ค. ๋‚˜์ด๋„ ๋“  ๊ฒƒ๋„ ์žˆ์ง€๋งŒ ์ตœ์šฐ์„ ์ ์œผ๋กœ ์ˆ˜๋ฉด๊ณผ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ์ฑ™๊ธฐ์ง€ ๋ชปํ•ด์„œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฑด๊ฐ•์—๋Š” ์žฅ์‚ฌ ์—†๋‹ค. ์‹ ๋…„๋ถ€ํ„ฐ๋Š” ๊ฑด๊ฐ•ํ•˜๊ฒŒ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๊ธธ...!
profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ค€๋น„์ค‘...

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 12์›” 25์ผ

๊ฑด๊ฐ•!!!!!!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ
comment-user-thumbnail
2023๋…„ 12์›” 25์ผ

์„ธํฌํŒ€ ๊ธฐ๋‘ฅ.... ์•„ํ”„๋ฉด ์•ˆ๋ผ์š”๐Ÿฅน

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ