๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
react

React๋ž€?

by D.B_18 2021. 12. 10.

๐ŸŒฑ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋จผ์ € react๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ์•Œ์•„๋ด…์‹œ๋‹ค.

 

React๋ž€?

react๋Š” ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•˜๋‚˜๋กœ์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

- react๋Š” facebook์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ ์‹œ ํ† ๋Œ€๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ํ˜„์žฌ ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ๋Š” ์›น/์•ฑ์˜ View๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

React์˜ ํŠน์ง•

1. Data Flow

React๋Š” ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์•ฑ์—์„œ๋„ ๋ฐ์ดํ„ฐ ํ๋ฆ„์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ณ€ํ™”๋ฅผ ๋ณด๋‹ค ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋„๋ก ๋‹จ๋ฐฉํ–ฅ ํ๋ฆ„์„ ๊ฐ€์ง€๋„๋ก ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

2. Component ๊ธฐ๋ฐ˜๊ตฌ์กฐ

๋”๋ณด๊ธฐ

Component๋Š” ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋…๋ฆฝ์ ์ธ ํ•˜๋‚˜์˜ ๋ถ€ํ’ˆ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

react๋Š” UI๋ฅผ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ์ชผ๊ฐœ์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ํŽ˜์ด์ง€ ๋‚ด์—์„œ๋„ ์—ฌ๋Ÿฌ ๊ฐ ๋ถ€๋ถ„์„ ๋…๋ฆฝ๋œ ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค๊ณ , ์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐ๋ฆฝํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์ž…๋ ฅํ•  ํ•„์š” ์—†์ด ์ปดํฌ๋„ŒํŠธ๋งŒ importํ•ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฐ„ํŽธํ•จ์ด ์žˆ์œผ๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์ง€๋”๋ผ๋„ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜, ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ง€ํ•ด์ง„๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

3. Virtual DOM

DOM์€ Document Object Model์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. DOM์€ html, xml, CSS ๋“ฑ์„ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ธ์‹ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. react๋Š” ์ด DOM Tree ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๊ตฌ์กฐ์ฒด๋ฅผ Virtual DOM์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค Virtual DOM์„ ๋งŒ๋“ค๊ณ , ๋‹ค์‹œ ๊ทธ๋ฆด ๋•Œ๋งˆ๋‹ค ์‹ค์ œ DOM๊ณผ ๋น„๊ตํ•˜๊ณ  ์ „ํ›„ ์ƒํƒœ๋ฅผ ๋น„๊ตํ•ด, ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•ด, ์•ฑ์˜ ํšจ์œจ์„ฑ๊ณผ ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

4. Props and State

- Props

๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•ด ์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ „๋‹ฌ๋ฐ›์€ props๋Š” ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  props๋ฅผ ์ „๋‹ฌํ•ด์ค€ ์ตœ์ƒ์œ„ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋งŒ props๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

- State

์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•˜๋ฉฐ ๋‚ด๋ถ€์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. state๋Š” ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

5. JSX

Javascipt๋ฅผ ํ™•์žฅํ•œ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. React์—์„œ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹, ์‹œ๊ฐ„์— ๋”ฐ๋ผ state๊ฐ€ ๋ณ€ํ•˜๋Š” ๋ฐฉ์‹, ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋˜๋Š” ๋ฐฉ์‹ ๋“ฑ ๋ Œ๋”๋‹ ๋กœ์ง์ด ๋ณธ์งˆ์ ์œผ๋กœ ๋‹ค๋ฅธ UI ๋กœ์ง๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. react๋Š” ๋ณ„๋„์˜ ํŒŒ์ผ์— ๋งˆํฌ์—…๊ณผ ๋กœ์ง์„ ๋„ฃ์–ด ๊ธฐ์ˆ ์„ ์ธ์œ„์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋Œ€์‹ , ๋‘˜ ๋‹ค ํฌํ•จํ•˜๋Š” "์ปดํฌ๋„ŒํŠธ"๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜ ์œ ๋‹›์œผ๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. React๋Š” JSX ์‚ฌ์šฉ์ด ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” Creat-React-App์„ ์ด์šฉํ•ด react ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค..!

728x90
๋ฐ˜์‘ํ˜•

'react' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] ์ ˆ๋Œ€๊ฒฝ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2021.12.14