Skip to content
This repository has been archived by the owner on Apr 13, 2020. It is now read-only.

Latest commit

ย 

History

History
39 lines (20 loc) ยท 9.24 KB

File metadata and controls

39 lines (20 loc) ยท 9.24 KB

๋งˆ์น˜๋Š” ๊ธ€

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

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

๊ธฐ๋ณธ์ ์ธ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ์— ์ต์ˆ™ํ•ด์กŒ๋‹ค๋ฉด, ์•„๋ž˜ ์ฃผ์ œ๋กœ ์‹ฌํ™” ํ•™์Šต์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒํƒœ ๊ด€๋ฆฌ ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” this.setState()์™€ this.state๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ์ปฌ ์ปดํฌ๋„ŒํŠธ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ดœ์ฐฎ์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ ์ƒํƒœ๋งŒ์œผ๋กœ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— Redux ๋˜๋Š” MobX์™€ ๊ฐ™์€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ €์ž์˜ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ ์‚ฌ์ดํŠธ React to React์—์„œ "๋ฆฌ์•กํŠธ ์ƒํƒœ ๋‹ค๋ฃจ๊ธฐ(Taming the State in React)"๊ฐ•์ขŒ ์ˆ˜๊ฐ•์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์ขŒ์—์„œ ๋ฆฌ์•กํŠธ state, Redux, Mobx๋ฅผ ๋‹ค๋ฃจ๋ฉฐ ์ „์ž์ฑ…์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ ์‹ค์Šต๊ณผ ํ™”์ƒ ์ฑ„ํŒ…๋„ ๋งˆ๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์ธ์ฆ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๊ฒฐ๊ตญ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ ํ›„์—๋„ ์œ ์ง€๋˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด ์‚ฌ์šฉ์ž ๊ฐ„ ๊ณต์œ ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค(Firebase)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ธ์ฆ ์™„๋ฒฝ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ๋ฆฌ์•กํŠธ์™€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํšŒ์›๊ฐ€์ž…-๋กœ๊ทธ์ธ-๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์—๋„ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž ๊ธฐ๋ก์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๋” ๋งŽ์€ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒ ๊ฐ์ž์˜ ํŒ๋‹จ์— ๋งก๊ธฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์›นํŒฉ(Webpack)๊ณผ ๋ฐ”๋ฒจ(Babel) ์‚ฌ์šฉ ์ด ์ฑ…์—์„œ๋Š” create-react-app๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์ •๋„ ๋ฆฌ์•กํŠธ์— ์ต์ˆ™ํ•ด์ง€๋ฉด ๋‹ค๋ฅธ ํˆด๋“ค์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์„ค์ •์„ create-react-app ๋Œ€์‹  ์›นํŒฉ๊ณผ ๋ฐ”๋ฒจ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™ธ ESLint๋กœ ์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ๋ฌธ๋ฒ• ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ ๋ฐ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์€ ์ง€์†์ ์œผ๋กœ ์ˆ˜์ •๋˜๋ฉฐ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑ ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ ๋ฆฌํผ์ง€ํ† ๋ฆฌ์— ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค ํ•„๋“œ ์„ ์–ธ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ๋ฅผ ํ•™์Šตํ•œ ํ›„, ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋กœ ํ‹ฑ-ํƒ-ํ† (tic-tac-toe) ๊ฒŒ์ž„์ด๋‚˜ ๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ์˜จ๋ผ์ธ์—์„œ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ๋ฆฌ์•กํŠธ ์‹ค์Šต ํŠœํ† ๋ฆฌ์–ผ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๊ฐ€ ๋งŒ๋“  ํŽ˜์ด์ง€ ๋งค๊น€ ๋ฐ ๋ฌดํ•œ ์Šคํฌ๋กค ๋ชฉ๋ก, ํŠธ์œ„ํ„ฐ ๋ชฉ๋ก ํ‘œ์‹œ, ๋ฆฌ์•กํŠธ์™€ Stripe ๊ฒฐ์ œ ์—ฐ๋™ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ž‘์€ ๊ทœ๋ชจ์˜ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณด๋ฉด์„œ ๋ฆฌ์•กํŠธ์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

  • UI ์ปดํฌ๋„ŒํŠธ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ์— UI ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜์ง€ ๋งˆ์„ธ์š”. ์ˆœ์ˆ˜ํ•œ ํ‘œ์ค€ HTML ์š”์†Œ์™€ ๋ฆฌ์•กํŠธ๋งŒ์œผ๋กœ ๋‹ค์ด์–ผ๋กœ๊ทธ, ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ๋“ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์ด ์ œ์ผ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค ์ปดํฌ๋„ŒํŠธ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ž์ฒด์ ์œผ๋กœ ๋กœ์ปฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฒดํฌ ๋ฐ•์Šค๋Š” ์ฒดํฌ ์—ฌ๋ถ€๋ฅผ ๋กœ์ปฌ ์ƒํƒœ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ์–ด๋œ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, UI ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•ด ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฒดํฌ๋ฐ•์Šค๋‚˜ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ”๋“œ ๊ตฌ์„ฑ 4์žฅ์—์„œ ์ฝ”๋“œ ๋ชจ๋“ˆ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ค˜์Šต๋‹ˆ๋‹ค. ์•„์ง ํ•ด๋ณด์ง€ ์•Š์•˜๋‹ค๋ฉด ์ง€๊ธˆ ํ•ด๋ณด๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์กฐํ™”๋œ ํŒŒ์ผ ๋ฐ ํด๋”(๋ชจ๋“ˆ)๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ถ„ํ• , ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ, ์œ ์ง€ ๋ณด์ˆ˜์„ฑ ๋ฐ ๋ชจ๋“ˆ ๊ตฌ์„ฑ์„ ํ†ตํ•ด API ์„ค๊ณ„ ์›์น™์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ…Œ์ŠคํŠธ ์ด ์ฑ…์—์„œ ํ…Œ์ŠคํŠธ ๋ง›๋งŒ ๋ณด์—ฌ์คฌ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ˜ํ…์ŠคํŠธ์—์„œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ฐœ๋…์„ ์‹ฌ๋„ ์žˆ๊ฒŒ ํŒŒ๊ณ ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‹จ๊ณ„์—์„œ๋Š” Enzyme์™€ Jest๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ ์Šค๋ƒ…์ƒท ํ…Œ์ŠคํŠธ๋ฅผ ์ง€์†์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ๋ผ์šฐํŒ… ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ(react-router)๋ฅผ ์‚ฌ์šฉํ•ด ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ผ์šฐํŒ…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋กœ ๊ฐ URL๋งˆ๋‹ค ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ผ์šฐํŒ…์„ ๋„์ž…ํ•˜๋ฉด ์›น ์„œ๋ฒ„์— ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ํƒ€์ž… ๊ฒ€์‚ฌ ์ด ์ฑ…์—์„œ๋Š” PropType์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. PropType๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PropTypes๋Š” ๋Ÿฐํƒ€์ž„์—์„œ๋งŒ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ๋„์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)๊ฐ€ ์ œ์ผ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด์™ธ์— ํ”Œ๋กœ์šฐ(Flow)๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋กœ์šฐ๋กœ ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ(React Native)์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ iOS์™€ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์— ๋Œ€ํ•ด ์ด๋ฏธ ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์™€ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์˜ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์€ ๊ฐ™๊ณ , UI๋งŒ ๋‹ค๋ฅผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ต์ˆ™ํ–ˆ๋˜ ์›น UI๊ฐ€ ์•„๋‹Œ ๋ชจ๋ฐ”์ผ UI๋ฅผ ์ƒˆ๋กœ ์ ‘ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €์ž ์›น ์‚ฌ์ดํŠธ์—์„œ ์›น ๊ฐœ๋ฐœ ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง์— ๊ด€๋ จ ๊ธ€์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‰ด์Šค๋ ˆํ„ฐ ๊ตฌ๋…์‹ ์ฒญ์„ ํ•˜๋ฉด ๋งค๋‹ฌ ์ฑ…๊ณผ ๊ธ€ ๊ฐ•์ขŒ์— ๊ด€ํ•œ ์†Œ์‹์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™ธ์— The React to React ์˜จ๋ผ์ธ ๊ฐ•์ขŒ ์‚ฌ์ดํŠธ์—์„œ ๋ฆฌ์•กํŠธ ์‹ฌํ™” ๊ฐ•์ขŒ๋ฅผ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ €์ž์˜ ์ฝ˜ํ…์ธ  ์ œ์ž‘ ์ง€์›์„ ๋„์™€์ฃผ์‹ค ํ›„์›์ž๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง๋„ ์ „ ์„ธ๊ณ„์˜ ๋งŽ์€ ํ•™์ƒ๋“ค์€ ๊ฒฝ์ œ์ ์ธ ์–ด๋ ค์›€์œผ๋กœ ์œ ๋ฃŒ ๊ต์œก ์ปจํ…์ธ ๋ฅผ ๊ตฌ์ž…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋“ค์„ ๋•๊ณ ์ž ์ปจํ…์ธ ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์›์ž๋กœ ํ•จ๊ป˜ ํ•ด์ฃผ์‹ ๋‹ค๋ฉด, ํ–ฅํ›„ ์ œ์ž‘๋˜๋Š” ์ปจํ…์ธ  ๋˜ํ•œ ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ฑ…์„ ๋งˆ์ณค๋‹ค๋ฉด, ์ฃผ์œ„์— ๋ฆฌ์•กํŠธ๋ฅผ ์†Œ๊ฐœํ•ด์ฃผ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ํ•œ ๋ฒˆ์ฏค ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์‚ฌ๋žŒ์—๊ฒŒ ์ด ์ฑ…์„ ์†Œ๊ฐœํ•˜๋ฉฐ, ์ž์‹ ์˜ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ์ง€์‹์„ ๋‚˜๋ˆ„๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๋…์ž ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๋ณด๋‚ด์ฃผ์‹  ๋œจ๊ฑฐ์šด ์„ฑ์›๊ณผ ๊ด€์‹ฌ์— ํž˜์ž…์–ด "๋ฆฌ์•กํŠธ ๋„์›€๋‹ซ๊ธฐ"๋Š” ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๊ณ  ๋ฐœ์ „ํ•ด ๋‚˜๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋๊นŒ์ง€ ์ฝ์–ด์ฃผ์‹  ์—ฌ๋Ÿฌ๋ถ„๋“ค์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋กœ๋นˆ ์˜ฌ๋ฆผ