[React] ๋ฆฌ์•กํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๐Ÿค” React ๋ž€?

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•˜๋‚˜, ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŽ˜์ด์Šค๋ถ(์กฐ๋˜ ์›Œํฌ)์—์„œ ๊ฐœ๋ฐœ
  • ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ชจ๋ฐ”์ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ
  • 2011๋…„ ํŽ˜์ด์Šค๋ถ์˜ ๋‰ด์Šคํ”ผ๋“œ์— ์ฒ˜์Œ ์ ์šฉ, 2012๋…„ ์ธ์Šคํƒ€๊ทธ๋žจ๋‹ท์ปด์— ์ ์šฉ.
  • 2013๋…„ ๋ฐœํ‘œ, ์˜คํ”ˆ์†Œ์Šคํ™” ๋จ

 

  • Component (์ปดํฌ๋„ŒํŠธ): UI๋ฅผ ์ด๋ฃจ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ๋ ˆ๊ณ  ๋ธ”๋ก์ฒ˜๋Ÿผ ํ™”๋ฉด์˜ ๊ฐ ๋ถ€๋ถ„์„ ๋…๋ฆฝ๋œ ๋ถ€ํ’ˆ์œผ๋กœ ๋งŒ๋“ค๊ณ , ์ด๋ฅผ ์กฐ๋ฆฝํ•ด ํฐ ์›น์‚ฌ์ดํŠธ๋ฅผ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Virtual DOM (๊ฐ€์ƒ DOM): ์„ฑ๋Šฅ์˜ ๋น„๊ฒฐ์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ๋•Œ๋งˆ๋‹ค ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๋Œ€์‹ , ๊ฐ€์ƒ์˜ ๋ณต์‚ฌ๋ณธ์—์„œ ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ๊ณ„์‚ฐํ•ด ์‹ค์ œ ํ™”๋ฉด์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด์ฃ .
  • Declarative (์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ): "์–ด๋–ป๊ฒŒ ํ™”๋ฉด์„ ๋ฐ”๊ฟ€์ง€" ์ผ์ผ์ด ๋ช…๋ นํ•˜์ง€ ์•Š๊ณ , "๊ฒฐ๊ณผ๋ฌผ์ด ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์•ผ ํ• ์ง€" ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด์ง€๊ณ  ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฌ์›Œ์ ธ์š”.

๋ฆฌ์•กํŠธ์˜ ๋™์ž‘ ์›๋ฆฌ

  1. ์ดˆ๊ธฐ ๋žœ๋”๋ง
  2. ๊ฐ€์ƒ DOM ๋ณ€๊ฒฝ
    • ์ˆ˜์ •ํ•  ๋–„, ๋ฆฌ์•กํŠธ๋Š” ์‹ค์ œ ํ™”๋ฉด์„ ๋ฐ”๋กœ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ , ๋Œ€์‹  ๋ฉ”๋ชจ๋ฆฌ ์†์— ์žˆ๋Š” ๊ฐ€์ƒ DOM์„ ํ•˜๋‚˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 
  3. ์žฌ์กฐ์ •
    • ์ด์ „์˜ ๊ฐ€์ƒ DOM๊ณผ ๋ฐฉ๊ธˆ ์ƒˆ๋กœ ๋งŒ๋“  ๊ฐ€์ƒ DOM์„ ๋‚˜๋ž€ํžˆ ๋†“๊ณ  ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  4. ์‹ค์ œ DOM ์—…๋ฐ์ดํŠธ
    • ๊ทธ๋ ‡๊ฒŒ ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ ํ™”๋ฉด์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์žฅ์ 

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

 


๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ 

https://react.dev/learn/creating-a-react-app

 

Creating a React App – React

The library for web and native user interfaces

react.dev

create-react-app my-app

 

my-app ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฆฌ์•กํŠธ ํด๋” ์ƒ์„ฑ(๊ธฐ๋ณธ js)

 

create-react-app my-app --template typescript

typescript๋กœ ์ƒ์„ฑ

 

npm start

์‹คํ–‰