React ๋ž€?

ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ JS์˜ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜์ด๋‹ค. UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ผ์„ ํ•˜์—ฌ ์บก์Šํ™”๋ฅผ ์‹œ์ผœ์„œ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œ์ผœ์ค€๋‹ค.

ํŠน์ง•

  • jsx : react๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด๋‚ธ ์ƒˆ๋กœ์šด js ๋ฌธ๋ฒ•. ๊ทธ๋ƒฅ js๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ง๊ด€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜, ํ˜‘์—… ๋“ฑ ์žฅ์ ์ด ์žˆ๋‹ค. babel๊ณผ ๊ฐ™์€ ํŠธ๋žœ์Šค ํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด์šฉํ•˜์—ฌ jsx๋ฌธ๋ฒ•์„ js๋กœ ๋ณ€ํ™˜์‹œ์ผœ์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ์›นํŒฉ,ํ”Œ๋Ÿฌ๊ทธ์ธ๊ฐ™์€ ์„ธํŒ…์˜ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.

  • Component ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ์˜ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์Œ ๋ชจ๋“ˆํ™”์—ฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€

  • virtual DOM : DOM์€ ์›น์˜ ํ•ต์‹ฌ์œผ๋กœ์จ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๊ธฐ์œ„ํ•œ ๋ฌธ์„œ ์ธ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•  ๋•Œ ๋งˆ๋‹ค ๋ชจ๋‘ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฃจํŠธ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๊ตฌ์„ฑํ•˜๋Š๋ผ ๋น„์šฉ๋„ ๋งŽ์ด ๋“ค๋ฟ๋”๋Ÿฌ ์„ฑ๋Šฅ์˜ ์ €ํ•˜ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ vitual DOM๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ๋ถ€๋ถ„๋งŒ ์ฐพ์•„๋‚ด์–ด ๋žœ๋”๋ง ํ•˜๊ธฐ๋•Œ๋ฌธ์— ์„ฑ๋Šฅํ–ฅ์ƒ๊ณผ ๋น„์šฉ๋ฌธ์ œ์—์„œ๋„ ํšจ๊ณผ์ ์ด๋‹ค.

  • ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด ๋‹จ๋ฐฉํ–ฅ : react๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๊ณ  ๋ฐ˜๋Œ€๋กœ๋Š” ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๋‹ค. ์ด๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ ธ ๊ฐœ๋ฐœ ๋น„์šฉ์˜ ๊ฐ์†Œ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • SPA (single page application) : ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋กœ ์ด๋ฃจ์–ด์ง„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œผ๋กœ ํ•˜๋‚˜์˜ html ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ js๋ฅผ ์ด์šฉํ•ด ๋™์ ์œผ๋กœ ํ™”๋ฉด์˜ ์ปจํ…์ธ ๋ฅผ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ด๋‹ค. CSR (client side rendering)๋ฐฉ์‹์„ ์ฑ„ํƒ. ReactDOMServer, next.js์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ssr (server side rendering)์„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Last updated