๐Ÿš€ React Compiler: React 18 ์„œ๋น„์Šค ๋„์ž… ํ…Œ์ŠคํŠธ ํ›„๊ธฐ

React 19์™€ ํ•จ๊ป˜ ๋œจ๊ฑฐ์šด ๊ด€์‹ฌ์„ ๋ฐ›๊ณ  ์žˆ๋Š” React Compiler๋ฅผ ํ˜„์žฌ ์šด์˜ ์ค‘์ธ React 18 ๊ธฐ๋ฐ˜์˜ Coinness ์„œ๋น„์Šค์— ์ง์ ‘ ์ ์šฉ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์•˜๋‹ค.
๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, ์ ์šฉํ•˜๊ธฐ์—๋Š” ์žฅ์ ๋ณด๋‹ค ๋‹จ์ ์ด ๋” ๋งŽ๋‹ค. ํŠนํžˆ ๊ทœ๋ชจ๊ฐ€ ํฐ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ผ๋ฉด ์ผ๊ด„ ์ ์šฉ๋ณด๋‹ค๋Š” ์ ์ง„์ ์ธ ๋„์ž…์ด ํ•„์ˆ˜์ ์ด๋‹ค. ์™œ ์ด๋Ÿฐ ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ๋Š”์ง€ ์ƒ์„ธํ•œ ํ›„๊ธฐ๋ฅผ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค.

โš ๏ธ React 18 ํ™˜๊ฒฝ์—์„œ ๋ฐœ๊ฒฌ๋œ ์ฃผ์š” ๋‹จ์ 

๋งˆ๋ฒ•์ฒ˜๋Ÿผ ๋ชจ๋“  ๊ฒƒ์„ ์ตœ์ ํ™”ํ•ด ์ค„ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ, React 18์ด๋ผ๋Š” ๊ธฐ์กด ํ™˜๊ฒฝ์— ์ ์šฉํ–ˆ์„ ๋•Œ ๋ฌด์‹œํ•˜๊ธฐ ํž˜๋“  ๋‹จ์ ๋“ค์ด ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹คโ€ฆ
์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜์™€ ๋Ÿฐํƒ€์ž„ ํ—ฌํผ์˜ ๊ฐœ์ž…
  • React Compiler๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ useMemoCache๋ผ๋Š” ํ›…์„ ์ฃผ์ž…ํ•œ๋‹ค. 19 ๋ฒ„์ „์—๋Š” ์ด๋ฏธ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€๋งŒ, 18 ๋ฒ„์ „์—์„œ๋Š” ์ด๋ฅผ ํ‰๋‚ด ๋‚ด๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(react-compiler-runtime)์™€ babel-plugin-react-compiler ์„ค์น˜๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค.
  • ๊ฒฐ๊ตญ ์ƒˆ๋กœ์šด ์˜์กด์„ฑ์ด ์ถ”๊ฐ€๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ฑฐ์˜ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์— ์ตœ์ ํ™” ๋กœ์ง๊ณผ ํ—ฌํผ ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด์„œ ์ „์ฒด์ ์ธ ์ฝ”๋“œ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ์˜ ์ฆ๊ฐ€
  • ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์— ์ตœ์ ํ™” ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋˜๋‹ค ๋ณด๋‹ˆ ์ „์ฒด ์ฝ”๋“œ๋Ÿ‰์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋Š˜์–ด๋‚œ๋‹ค. ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ํด์ˆ˜๋ก ์ด ์ฐจ์ด๋Š” ๋” ๋šœ๋ ทํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค.
๋นŒ๋“œ ์†๋„ ์ €ํ•˜
  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ •์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์ „์ฒด์ ์ธ ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ด๋‹ค.

annotation ๋ชจ๋“œ๋กœ ์ ์ง„์  ๋„์ž…ํ•˜๊ธฐ

๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋งก๊ธฐ๋Š” all ๋ชจ๋“œ๋ณด๋‹ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ†ต์ œํ•˜๋Š” compilationMode: 'annotation' ์„ค์ •์ด ํ›จ์”ฌ ํ•ฉ๋ฆฌ์ ์ด๋ผ๋Š” ๊ฒฐ๋ก ์„ ์–ป์—ˆ๋‹ค.
์™œ 'Annotation' ๋ชจ๋“œ์ธ๊ฐ€?
  • ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ: ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ "๋งˆ๋ฒ•"์ฒ˜๋Ÿผ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐ”๊พธ๊ฒŒ ๋‘์ง€ ์•Š๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ์ ํ™” ๋Œ€์ƒ์„ ์ง์ ‘ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋””๋ฒ„๊น… ์‹œ ๋ฒ”์œ„๋ฅผ ์ขํžˆ๋Š” ๋ฐ ๊ฒฐ์ •์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค.
  • ์ ์ง„์  ๋„์ž…: ์ „์ฒด๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋ฐ”๊พธ๋Š” ๋ฆฌ์Šคํฌ ์—†์ด, ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žกํ•œ ๊ณ„์‚ฐ ๋กœ์ง์ด๋‚˜ ๋ฌด๊ฑฐ์šด ์ปดํฌ๋„ŒํŠธ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ ์šฉํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ถ€์ž‘์šฉ ์ตœ์†Œํ™”: ๋ถˆํ•„์š”ํ•œ ๊ณณ์— ๋Ÿฐํƒ€์ž„ ํ—ฌํผ๊ฐ€ ์ฃผ์ž…๋˜๋Š” ๊ฒƒ์„ ๋ง‰์•„ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ ์ฆ๊ฐ€ ํญ์„ ํšจ๊ณผ์ ์œผ๋กœ ์–ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ› ๏ธ ์‹ค์ œ ์ ์šฉ ๋ฐ ์„ค์ • ์˜ˆ์‹œ
React Compiler๋Š” ๋ถ„๋ช… ๋งค๋ ฅ์ ์ธ ๋„๊ตฌ์ด์ง€๋งŒ, React 19 ๋ฏธ๋งŒ ํ™˜๊ฒฝ์˜ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” 'ํ†ต์ œ ๊ฐ€๋Šฅํ•œ ์ตœ์ ํ™”'๊ฐ€ ๋” ์ค‘์š”ํ•˜๋‹ค. ๋ฌด์ž‘์ • ๋„์ž…ํ•˜๊ธฐ๋ณด๋‹ค๋Š” annotation ๋ชจ๋“œ๋ฅผ ํ™œ์šฉํ•ด ๋ฆฌ์Šคํฌ๋ฅผ ์ค„์ด๋ฉด์„œ ์ ์ง„์ ์œผ๋กœ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉํ–ฅ์„ ์ถ”์ฒœํ•œ๋‹ค.
ย 

ยฉ 2026 dan.dev.log, All right reserved.

Built with NextJS