Giter VIP home page Giter VIP logo

react-todo-15th's Introduction

https://react-todo-15th-47y241e55-poodlepoodle.vercel.app

๐Ÿ”ฅ ๊ฐœ์š”

์•ˆ๋…•ํ•˜์„ธ์š”. CEOS 15๊ธฐ ํ”„๋ก ํŠธ ์ตœ์–ด์ง„์ž…๋‹ˆ๋‹ค.
ํ”„๋ก ํŠธ ์Šคํ„ฐ๋”” 2์ฃผ์ฐจ ๊ณผ์ œ๋Š” <1์ฃผ์ฐจ์— ๋งŒ๋“  To-do List๋ฅผ React๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ> ์˜€์Šต๋‹ˆ๋‹ค.
HTML + CSS + Vanilla JS๋กœ๋งŒ ๊ตฌํ˜„ํ•œ To-do List์˜ ๊ธฐ๋Šฅ๋“ค์„ React๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ •์—์„œ React๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์˜ ์ฐจ์ด์ ๊ณผ ํŽธ๋ฆฌ์„ฑ์„ ํ”ผ๋ถ€๋กœ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์–ด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, 1์ฃผ์ฐจ ๊ณผ์ œ์—์„œ๋Š” ๊ตฌ์ƒํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ „๋ถ€ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— To-do List์— ๋Œ€ํ•œ ์•„์‰ฌ์›€์„ ํ„ธ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

โœจ ์ฝ˜์…‰ํŠธ

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

๋”ฐ๋ผ์„œ ์‹ค์ œ ์นด์นด์˜คํ†ก <๋‚˜์™€์˜ ๋Œ€ํ™”> ์ฑ„ํŒ…๋ฐฉ์˜ UX๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฉด์„œ ์•„์ง ์‹คํ–‰ ์˜ˆ์ •์ธ ์ผ์ •๋“ค์„ ๋‚ด๊ฐ€ ๋ณด๋‚ธ ๋งํ’์„ , ์‹คํ–‰ ์™„๋ฃŒํ•œ ์ผ์ •๋“ค์„ ์ƒ๋Œ€๋ฐฉ์ด ๋ณด๋‚ธ ๋งํ’์„ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์žฌ๋ฐŒ๊ฒ ๋‹ค ์‹ถ์–ด์„œ ์ด๋ฒˆ ์ฃผ์— ๊ตฌํ˜„ํ•  ๋””์ž์ธ ์ฝ˜์…‰ํŠธ๋กœ ์ฐจ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

wireframe wireframe

style_guide style guideline design

์ฝ˜์…‰ํŠธ ๊ตฌ์ƒ์ด ๋๋‚œ ๋’ค ๊ฐ„๋‹จํžˆ ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ์ œ์ž‘ํ–ˆ๊ณ , ์ด์–ด์„œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ผ์ธ ๋””์ž์ธ๊นŒ์ง€ ๋งˆ์นœ ๋’ค ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงญ ๊ฐœ๋ฐœ ์ˆœ์„œ

์ด๋Ÿฌํ•œ ์ˆœ์„œ๋กœ ๊ฐœ๋ฐœ ์ˆœ์„œ๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. JSX๋ฅผ ์ด์šฉํ•œ To-do List ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ
  2. To-do List ๊ธฐ๋ณธ ๊ณ ๋ ค์‚ฌํ•ญ ๊ตฌํ˜„
  3. To-do List ์ถ”๊ฐ€ ๊ณ ๋ ค์‚ฌํ•ญ ๊ตฌํ˜„
  4. Vercel์„ ์ด์šฉํ•œ ๋ฐฐํฌ

โœ๐Ÿป ๊ฐœ๋ฐœ ๊ณ ๋ ค์‚ฌํ•ญ

๊ธฐ๋ณธ ๊ณ ๋ ค์‚ฌํ•ญ

  • 1์ฃผ์ฐจ ๋ฏธ์…˜์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ทธ๋Œ€๋กœ React๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • React Hooks์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์™€ React๋ฅผ ํ†ตํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • Functional Components๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Styled-Components๋ฅผ ํ†ตํ•œ CSS-in-JS ๋ฐ CSS Preprocessor์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.
  • VSCode, Prettier๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Gitmoji ๋ฐ Commit Convention์„ ์‚ฌ์šฉํ•œ Commit Message๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๊ณ ๋ ค์‚ฌํ•ญ (ํŽธ์ง‘ ์ค‘)

  1. 1์ฃผ์ฐจ ๋ฏธ์…˜ ๋•Œ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ localStorage๋ฅผ ์ด์šฉํ•œ ์ €์žฅ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ผ์ดํŠธ ๋ชจ๋“œ/๋‹คํฌ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿง ์”ฝํ‚น ๋ชจ๋จผํŠธ

(1) React์˜ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„

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

(2) Styled-Components๋ฅผ ํ†ตํ•œ Css-in-JS Styling

์ด๋ฒˆ ์ฃผ ๋ฏธ์…˜์„ ์ฒ˜์Œ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ์—๋Š” Styled-Components๋ฅผ ๋ณด๊ณ  ๊ต‰์žฅํžˆ ๋‚ฏ์„ค๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์–ด๋Š ์ˆœ๊ฐ„ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ์ต์ˆ™ํ•ด์ ธ์„œ ๊ฐœ๋ฐœํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ Style Sheet๋ฅผ ๋”ฐ๋กœ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๊ณ  Javascript ํŒŒ์ผ ๋‚ด์—์„œ ์Šคํƒ€์ผ - ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋งˆ๋‹ค ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธํ•˜๊ฒŒ ๋Š๋ผ์ง€ ์•Š์•˜๋‚˜ ์‹ถ์Šต๋‹ˆ๋‹ค.
Styled-Components์—์„œ props๋ฅผ ํ†ตํ•œ Conditional Styling ๋ฐฉ์‹ ๋˜ํ•œ ์ฒ˜์Œ ๋ณด๊ณ  ๋ฐ”๋กœ ์ดํ•ด๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ๋‹คํฌ ๋ชจ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์ด ๋ถ€๋ถ„์„ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋” ์ดํ•ดํ•˜๊ณ  ๋ฏธ์…˜์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„ ๊ฐœ์ธ์ ์œผ๋กœ ์ถ”๊ฐ€ ์„ ํƒ์‚ฌํ•ญ ๊ตฌํ˜„์„ ๊ฒฐ์‹ฌํ•˜๊ธฐ ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Ž KEY QUESTIONS

Virtual-DOM์€ ๋ฌด์—‡์ด๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ ์–ป๋Š” ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ €๋ฒˆ ์ฃผ์—๋„ ์งš๊ณ  ๋„˜์–ด๊ฐ”๋˜ ๋‚ด์šฉ์œผ๋กœ๋Š” DOM(Document Object Model)์€ Javascript๊ฐ€ HTML ๋ฌธ์„œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์‹ค์ œ DOM์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋งŽ์€ ๊ฒƒ๋“ค์ด ๋“ค์–ด ์žˆ์–ด์„œ ์กฐ์ž‘ํ•˜๊ธฐ์— ๊ต‰์žฅํžˆ ๋ฌด๊ฒ๊ณ , ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด React์—์„œ ์‹ค์ œ DOM์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ์ถ”์ ํ•˜๊ณ  ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์ด Virtual-DOM์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋Š๋‚€, React๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ ์–ป์„์ˆ˜ ์žˆ๋Š” ์žฅ์ ์€ ๋ฌด์—‡์ด์—ˆ๋‚˜์š”?

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

React์—์„œ ์ƒํƒœ๋ž€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

Plain Javascript Object hold information influences the output of render
(์ œ๊ฐ€ ์ ์€ ๋ง์€ ์•„๋‹ˆ๊ณ  React Documentation์— ์žˆ๋Š” ๋ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.)
React๋ฅผ ํ†ตํ•œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ด๋Š” ๋‹จ์ˆœํžˆ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ๋ณด๋‹ค๋Š” ์‚ฌ์šฉ์ž์™€ ์ง€์†์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜•ํƒœ์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ • ์†์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ƒํƒœ(State) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ ๋ฏธ์…˜์—์„œ ๊ต‰์žฅํžˆ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋˜ useState๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ธ๋ฐ, useState๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ’๋“ค์€ ๋ Œ๋”๋ง์— ์ง์ ‘์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ์ด๋ ‡๊ฒŒ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐ€์ง€๋Š” ์—ฌ๋Ÿฌ ์ƒํƒœ ๊ฐ’๋“ค์˜ ํ๋ฆ„์„ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์œผ๋กœ ์กฐ์ ˆํ•˜๋Š” ๊ฒŒ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Styled-Components ์‚ฌ์šฉ ํ›„๊ธฐ (CSS์™€ ๋น„๊ต)

์ €๋ฒˆ ์ฃผ์—๋Š” CSS ํŒŒ์ผ์— ๋Œ€ํ•œ ์†์„ฑ๋“ค์— ๋Œ€ํ•œ Naming Convention์„ ์ฐพ์•„๋ณด๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜๋ฆ„ ์ •๋ฆฌํ•ด๊ฐ€๋ฉด์„œ ์ž‘์„ฑํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ๋Š” CSS ํŒŒ์ผ์ด ๊ต‰์žฅํžˆ ๊ธธ์–ด์ ธ์„œ ์–ด๋–ค ์Šคํƒ€์ผ ์†์„ฑ๋“ค์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ฐพ์•„ ๋‹ค๋…”๋˜ ๋ฐ์— ์ ์ง€ ์•Š์€ Overhead๊ฐ€ ์†Œ์š”๋˜์—ˆ๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.
๊ทธ์— ๋ฐ˜ํ•ด์„œ Styled-Components๋Š” ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์†์„ฑ์€ ๋‹น์—ฐํžˆ ์ด ํŒŒ์ผ์— ์žˆ๊ฒ ๊ตฌ๋‚˜ ์‹ถ์–ด์„œ ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๊ต‰์žฅํžˆ ํŽธํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๐Ÿฅฒ ๋งˆ์น˜๋ฉฐ

์‚ฌ์‹ค ์šด์˜์ง„๊ณผ ๋ฉ˜ํ†  ๋ถ„๋“ค๊ป˜์„œ ๋‚ด ์ฃผ์‹  ์ด๋ฒˆ ์ฃผ์ฐจ ๋ฏธ์…˜์˜ ์˜์˜๋Š” ์ €๋ฒˆ ์ฃผ์ฐจ์˜ Vanilla Javascript๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„์—์„œ ๊ทธ๋Œ€๋กœ UI/UX๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด์„œ ๊ธฐ๋Šฅ๋งŒ React ๋ฐ React Hooks๋ฅผ ํ†ตํ•ด ์ดํ•ดํ•ด ๋ณด๋ผ๋Š” ์˜๋„์…จ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ ์ง€๋‚˜์น˜๊ฒŒ UI๋ฅผ ๋ฐ”๊พธ๋ ค๋‹ค๊ฐ€ ๋‹ค์†Œ ๊ณผ์ œ ์˜๋„์—์„œ ๋ฒ—์–ด๋‚œ ๊ฒฐ๊ณผ๋ฌผ (+ ๋‹ค์†Œ ์ œ์ถœ ์‹œ๊ฐ„์—์„œ ๋ฒ—์–ด๋‚œ ํ’€๋ฆฌํ€˜)๋ฅผ ์ œ์ถœํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋งˆ์Œ์ด ์•ฝ๊ฐ„์€ ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค.
์ตœ๊ทผ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ–ˆ๋‹ค ์‹ถ์€ ์ˆœ๊ฐ„์€ ๋”ฑํžˆ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™์ง€๋งŒ์„œ๋„ ์•ž์œผ๋กœ ๋‹ค๊ฐ€์˜ฌ ๋ฏธ์…˜์ด๋ผ๋˜์ง€ ํŒ€๋นŒ๋”ฉ ์ดํ›„์— ์ด์–ด์งˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ๋ญ”๊ฐ€๋ฅผ ๋” ํฌ๊ธฐํ•˜๊ณ  ์ •๋ง ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ์ผ์— ์ง‘์ค‘ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋Š๋‚€ ์ด๋ฒˆ ์ฃผ ๋ฏธ์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค.

react-todo-15th's People

Contributors

poodlepoodle avatar itsnowkim avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.