joooing 2021. 2. 19. 12:43
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


โœ”๏ธ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ App ๋งŒ๋“ค์–ด๋ณด๊ธฐ
Hooks๋ฅผ ์ด์šฉํ•ด์„œ ํ• ์ผ์„ ์ฒดํฌํ•˜๋Š” todo list ์•ฑ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ดค๋‹ค. useState, useCallback, useRef๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋Š”๋ฐ ์—ญ์‹œ ๊ฐœ๋…๋งŒ ๋ดค์„ ๋•Œ๋Š” ๋ฌด์Šจ์†Œ๋ฆฐ๊ฐ€ ์‹ถ๋˜๊ฒŒ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋‹ˆ๊นŒ ์กฐ๊ธˆ์”ฉ ์•Œ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ํŠนํžˆ useCallback์€ ๊ทธ๋ƒฅ ๋ชจ๋“  ํ•จ์ˆ˜์— ์Šต๊ด€์ ์œผ๋กœ ์จ์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. + input๊ณผ button์˜ ์ด๋ฒคํŠธ๋ฅผ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด formํƒœ๊ทธ๋„ ์จ๋ดค๋Š”๋ฐ onSubmit์— ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋ผ์„œ ํŽธํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

โœ”๏ธ SCSS
CSS์™€ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ธด SCSS๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ํด๋ž˜์Šค ์•ˆ์—๋‹ค๊ฐ€ ์ค‘๊ด„ํ˜ธ๋ฅผ ์—ฐ์†ํ•ด์„œ? ์“ฐ๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•ด์„œ ์“ฐ๋˜ CSS๋ณด๋‹ค ํ™•์‹คํžˆ ์ปดํฌ๋„ŒํŠธ๋‚˜ ์š”์†Œ๋“ค๊ฐ„์˜ ๊ด€๊ณ„๋‚˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ์Šคํƒ€์ผ์„ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์ข‹์•˜๋‹ค. 

โœ”๏ธ react & express ๋ณต์Šต
์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ ๋ฆฌ์•กํŠธ์™€ express๋กœ ์„œ๋ฒ„ ๋งŒ๋“œ๋Š” ๊ฑธ ๋‹ค์‹œํ•œ๋ฒˆ ํ•ด๋ณด๋ฉฐ ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๋จผ์ € ๊ณต์‹ ๊ฐ€์ด๋“œ๋ถ€ํ„ฐ ์ญ‰ ํ•œ๋ฒˆ์”ฉ ๋‹ค์‹œ ํ›‘์–ด๋ณด๊ณ  ๊ฐ„๋‹จํ•œ ์•ฑ์„ ๋งŒ๋“ค์–ด๋ดค๋Š”๋ฐ, ์—ฌ๋Ÿฌ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋‹ˆ๊นŒ ํ™•์‹คํžˆ ์ด์ œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ๋จธ๋ฆฌ์†์— ๊ทธ๋ ค์ง€๊ธฐ๋„ ํ•˜๊ณ  ์ „๋ณด๋‹ค ํ›จ์”ฌ ์ต์ˆ™ํ•ด์ง„ ๋Š๋‚Œ์ด ๋“ค์—ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ๋ถ€๋ถ„์„ ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ , express๋ฅผ ์ด์šฉํ•ด์„œ local์— ์žˆ๋Š” jsonํŒŒ์ผ์„ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ์ž‘์—…๋„ ํ•ด๋ดค๋‹ค. ์ •๋ง ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์ง€๋งŒ express๋Š” ์ž๊พธ ์•ˆ์“ฐ๋‹ค๋ณด๋‹ˆ ๊นŒ๋จน๋Š”๊ฑฐ ๊ฐ™์•„์„œ ๊ผญ ์ž์ฃผ์ž์ฃผ ์จ๋ณด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ด์•ผ๊ฒ ๋‹ค..

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


โœ”๏ธ src ํด๋”์— components ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ณ  ์ปดํฌ๋„ŒํŠธ๋“ค ๋‹ค ๋„ฃ๊ธฐ! (์•”๋ฌต์  ๊ด€์Šต)

โœ”๏ธreact-router-dom์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๊ธฐ
๊ธฐ๋ณธ์ ์œผ๋กœ Route ์ปดํฌ๋„ŒํŠธ๋กœ ๋ผ์šฐํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š”๋ฐ, ๊ฒฝ๋กœ๋ฅผ path๊ฐ’์œผ๋กœ ์„ค์ •๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด <Route exact path="/" component={Home}/>์ด๋Ÿฐ์‹์œผ๋กœ! ์ด๋™์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” <a href> ๋Œ€์‹  <Link to>๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค. 

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ Hooks๋กœ ํด๋ก ์ฝ”๋”ฉํ•˜๊ธฐ
๋ฐ˜์‘ํ˜•