26 min read

[๋ฒˆ์—ญ] React ๋•Œ๋ฌธ์— (๋ชฐ๋ž๊ฑฐ๋‚˜!) ์žŠ์—ˆ๋˜ ๊ฒƒ๋“ค

Things you forgot (or never knew) because of React

Table of Contents

React ๋•Œ๋ฌธ์— ์žŠ์—ˆ๊ฑฐ๋‚˜ ๋ชฐ๋ž๋˜ ๊ฒƒ๋“ค


๋‹ค์Œ ์•„ํ‹ฐํด์€ 2023๋…„์— ์ž‘์„ฑ๋œ Things you forgot (or never knew) because of React ์˜ ๋ฒˆ์—ญ์ž…๋‹ˆ๋‹ค. ์ €์ž Josh Collinsworth๋Š” JS ๋Ÿฐํƒ€์ž„ Deno์˜ ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ๋ช…์ž…๋‹ˆ๋‹ค. ์•„ํ‹ฐํด ๋‚ด์šฉ๊ณผ React 19 ๋ฐœํ‘œ ๋‚ด์šฉ์„ ๊ฐ™์ด ๋ณด์‹œ๋ฉด .. ๋” ์žฌ๋ฐŒ์„๋“ฏ์š” React 19


Part 1: ์Œ์•…, ๊ธฐ๋ณธ๊ฐ’, ๊ทธ๋ฆฌ๊ณ  ๋ฒ„๋ธ”์— ๊ด€ํ•œ ์„œ๋ก 

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ๋‚˜๋„ ํ•œ๋•Œ๋Š” ๋‚ด ์ง€์—ญ ๋ผ๋””์˜ค ๋ฐฉ์†ก๊ตญ์—์„œ ๋‚˜์˜ค๋Š” ์Œ์•…๋งŒ ๋“ฃ๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. (30๋Œ€ ์ด์ƒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋ ‡์ฃ . ๋งŒ์•ฝ ์ด๊ฒŒ ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์กฐ๊ธˆ๋งŒ ๋” ์ฐธ์•„์ฃผ์„ธ์š”.) ๊ทธ๋•Œ๋Š” ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋งŒ์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์ „๋ถ€์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๋˜๋Œ์•„๋ณด๋ฉด, ๋‚˜๋Š” ์ข‹์€ ๊ฒƒ์ด ๊ฒฐ๊ตญ ์ธ๊ธฐ๋ฅผ ์–ป๊ฒŒ ๋˜๋ฏ€๋กœ ๊ฐ€์น˜ ์žˆ๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ์Šค์Šค๋กœ ์ฐพ์•„์˜ฌ ๊ฒƒ์ด๋ผ๊ณ  ์ˆœ์ง„ํ•˜๊ฒŒ ๋ฏฟ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ, ๋‹ค๋ฅธ ์Œ์•…๋“ค์ด ๋‚ด ์‚ถ์— ๋ฟŒ๋ฆฌ๋‚ด๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์นœ๊ตฌ๋“ค๊ณผ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด, ๋‚ด๊ฐ€ ์ด์ „์— ์ข‹์•„ํ–ˆ๋˜ ๊ฒƒ๋“ค๊ณผ๋Š” ๋” ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์ƒˆ๋กœ์šด ์•„ํ‹ฐ์ŠคํŠธ๋“ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์Œ์•…์€ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ์ผ์ฃผ์ผ ๋งŒ์— ์‚ฌ๋ž‘์— ๋น ์กŒ๋‹ค๊ฐ€ ๊ทธ ๋‹ค์Œ ์ฃผ์—๋Š” ์‹ซ์ฆ๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋“ฃ๋Š” ๊ฒƒ์ด ๋์—†๋Š” ์‚ฌ์ดํด์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜คํžˆ๋ ค ๋ฐ˜๋Œ€์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ข‹์•„ํ•˜๊ณ  ๋“ค์œผ๋ฉด ๋“ค์„์ˆ˜๋ก ๋” ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊นŠ์ด๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋‚ด๊ฐ€ ๊ทธ๋•Œ๊นŒ์ง€ ์ฆ๊ฒผ๋˜ ์‹œ๋„๋Ÿฌ์šด ๊ธฐํƒ€, ์žฌ์น˜ ์žˆ๋Š” ๊ฐ€์‚ฌ, ์„คํƒ• ๊ฐ™์€ ๋ฉœ๋กœ๋””๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋†€๋ž๊ฒŒ๋„, ๊ทธ๊ฒƒ์ด ๋” ๋‚˜์€ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋•Œ ๋‚˜๋Š” ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ๋งŒ์กฑํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์€ ์‚ฌ์‹ค ๋ฌด์ง€์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ผ์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์„์š”.

๊ธฐ๋ณธ๊ฐ’ ๋„ˆ๋จธ์˜ ํ’๋ถ€ํ•จ ์ฐพ๊ธฐ

์ด ์ด์•ผ๊ธฐ์— ๊ณต๊ฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค, ์Œ์•…๊ณผ๋Š” ๊ด€๋ จ์ด ์—†๋”๋ผ๋„ ๋ง์ด์ฃ .

์•„๋งˆ๋„ ์ด์ œ๋Š” ํ•œ๋•Œ ์ข‹์•„ํ•˜์ง€ ์•Š์•˜๋˜ ์Œ์‹์ด๋‚˜ ์Œ๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด, ์˜ํ™”, ์ฑ…, ๊ฒŒ์ž„, ํŒŸ์บ์ŠคํŠธ, ์ธํ”Œ๋ฃจ์–ธ์„œ, ์ทจ๋ฏธ๊ฐ€ ์˜ˆ์ƒ์น˜ ๋ชปํ•˜๊ฒŒ ๋‹น์‹ ๊ณผ ๊ณต๋ช…ํ•œ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€:

์•„๋งˆ๋„ ๋‹น์‹ ์€ ์ธ๊ธฐ ์žˆ๋Š” ๊ธฐ๋ณธ๊ฐ’์˜ ์ฃผ๋ณ€์„ ๋„˜์–ด์„œ์„œ ํ›Œ๋ฅญํ•œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•œ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ์˜ ํž™์Šคํ„ฐ ๊ฐ™์€ ๋ง์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๋‚ด ์˜๋„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ฌ๋ฆฌ๋ธŒ ๊ฐ€๋“ ์—์„œ ๋ฒ„๋“œ๋ผ์ดํŠธ๋ฅผ ์ฆ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹์€ ์‹œ๊ฐ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด: ์ข‹์•„์š”, ๋นต์Šคํ‹ฑ์„ ์ฃผ์„ธ์š”.

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๋งํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€: ์–ด์ฉŒ๋ฉด ๋‹น์‹ ์ด ํ›Œ๋ฅญํ•œ ๊ฒƒ์„ ๋ฌด์˜์‹์ ์œผ๋กœ ๋ง‰๊ณ  ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด๋ฅผ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ์ด ๊ฐœ๋…โ€”์ต์ˆ™ํ•œ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด์„œ ๋” ๋‚˜์€ ๊ฒƒ์„ ์ฐพ๋Š” ๊ฒƒโ€”์€ ์šฐ๋ฆฌ์˜ ๋„๊ตฌ์™€ ์›Œํฌํ”Œ๋กœ์šฐ์—๋„ ์ ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์–ด์ฉŒ๋ฉดโ€”๊ทธ๋ƒฅ ์–ด์ฉŒ๋ฉดโ€”๋‹น์‹ ์˜ ํ˜„์žฌ ๋งŒ์กฑ์€, ์ ์–ด๋„ ์กฐ๊ธˆ์€, ๋‹น์‹ ์ด ๋†“์น˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์œ  ์™„์„ฑํ•˜๊ธฐ์™€ ๊ทธ ํ•œ๊ณ„ ์ธ์ •ํ•˜๊ธฐ

React๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋ณธ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋˜์—ˆ๊ณ , ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์–ผ๋งˆ๋‚˜ ๋’ค์ณ์กŒ๋Š”์ง€ ๊นจ๋‹ซ์ง€ ๋ชปํ•œ๋‹ค๊ณ  ์ด์ „์— ์“ด ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ ์—์„œ, ์ด ๋น„์œ ๋Š” ํ•œ๊ณ„๋ฅผ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์ธ ์ทจํ–ฅ์— ๋Œ€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด, ๋‚˜๋Š” ๊ฒฐ์ฝ” ๋‹น์‹ ์ด ๋ฌด์—‡์„ ์ข‹์•„ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋…ผ์Ÿํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์“ฐ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์ ์–ด๋„ ์ด ๋‚˜์ด์— ๋ง์ด์ฃ .) ๋ˆ„๊ฐ€ ์‹ ๊ฒฝ ์“ฐ๋‚˜์š”? ๋‹น์‹ ์ด ์ฆ๊ธด๋‹ค๋ฉด, ๊ทธ๊ฑธ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์Œ์•…์ด๋‚˜ ๋‹ค๋ฅธ ์ฃผ๊ด€์ ์ธ ๊ฒƒ๋“ค๊ณผ ๋‹ฌ๋ฆฌ, ํ”„๋ก ํŠธ์—”๋“œ ๋„๊ตฌ์˜ ์„ ํƒ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒฝํ—˜์ ์ธ, ์ธก์ • ๊ฐ€๋Šฅํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๊ทธ ๊ฒฐ์ •์€ ์‹ค์ œ๋กœ ์ฑ…์ž„์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ๋งŒ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด๋ผ๋ฉดโ€”์ˆœ์ „ํžˆ ์ž์‹ ์„ ์œ„ํ•ด ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉดโ€”์šฐ๋ฆฌ์˜ ์ฆ๊ฑฐ์›€์€ ๋ถ€์ฐจ์ ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๊ฒฝํ—˜์ด ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋„๊ตฌ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ๋ฉ‹์ง„ ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ๋ถ€์ฐจ์ ์ธ ๋ชฉํ‘œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜(DX)์ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ์ดˆ์›”ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

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

React ๋ฒ„๋ธ”

React๊ฐ€ ๋™๋ฃŒ๋“ค์— ๋น„ํ•ด ๋’ค์ฒ˜์กŒ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋‹น์‹ ์—๊ฒŒ๋Š” ์ƒˆ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ, React๋ฅผ ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ์˜ ํ‘œ์ค€์œผ๋กœ ์—ฌ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฒ„๋ธ”์„ ์‚ด์ง ๊ฑด๋“œ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค, ์ด ๋ชฉ๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ.

Mastodon์„ ํ†ตํ•ด Alex Russell์ด ์“ด ์ด ๊ธ€์ด ์ด ๊ฒŒ์‹œ๋ฌผ์„ ์“ฐ๊ฒŒ ๋งŒ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค:

์˜ค๋Š˜ ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜์—๊ฒŒ IE๋ฅผ ์ง€์›ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ƒˆ๋กœ์šด ์•ฑ์— React๋ฅผ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ด์œ ๋„ ์ƒ๊ฐํ•ด๋‚ผ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹คโ€ฆ

React๋Š” ์–ผ๋งˆ๋‚˜ ๊ตฌ์‹์ธ์ง€ ๋†€๋ผ์šธ ์ •๋„์ž…๋‹ˆ๋‹ค.

Alex๋Š” ๊ทธ ์Šค๋ ˆ๋“œ์—์„œ React๊ฐ€ ์›น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ธฐ๋Šฅ์€ ์ˆ˜๋…„ ๋™์•ˆ React์—์„œ ๋ˆˆ์— ๋„๊ฒŒ ๋น ์ ธ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ, โ€œ๋กœ๋“œ๋งต์— ์žˆ์Šต๋‹ˆ๋‹ค.โ€) ์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ๋Š” ๊ตฌํ˜„์ด๋‚˜ ์˜ˆ์ƒ ์ถœ์‹œ ๋‚ ์งœ์— ๋Œ€ํ•œ ํ™•์‹คํ•œ ์•ฝ์†์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, React์˜ ๋™๋ฃŒ๋“ค, ์ฆ‰ React๋ฅผ ๋Œ€์‹ ํ•  ๋งŒํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๊ธฐ์ˆ ๋“ค์€ ์ด๋ฏธ ๊ทธ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ์ปดํฌ๋„ŒํŠธ๋Š” ํ•œ ๊ฐ€์ง€ ์˜ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์ด React๋ณด๋‹ค ๋” ์ž˜ํ•˜๋Š” ์œ ์ผํ•œ ํ•ญ๋ชฉ์€ ์•„๋‹™๋‹ˆ๋‹ค. (๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์˜ˆ๋ฅผ ์•„๋ž˜์—์„œ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

React๋Š” ์ดˆ๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฒŒ์ž„์—์„œ ํฐ ์ด์ต์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€์„ ์„ค์ •ํ–ˆ์ฃ . ํ•˜์ง€๋งŒ ๊ทธ๋กœ ์ธํ•ด ๋ฏผ์ฒฉ์„ฑ๊ณผ ์ ์‘๋ ฅ์— ์‹ฌ๊ฐํ•œ ๊ฒฐํ•จ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. 2013๋…„๊ฒฝ ์‹œ์ž‘๋œ React์˜ ๋ชจ๋“  ๊ฒฐ์ •์€ ๋˜ ํ•˜๋‚˜์˜ ๊ธฐ์ˆ  ๋ถ€์ฑ„์ธต์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ƒˆ๋กœ์šด ๋™๋ฃŒ๋“ค์ด ์ œ์•ฝ๋ฐ›์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Alex์˜ ๋ง์„ ๋‹ค์‹œ ์ธ์šฉํ•˜์ž๋ฉด:

React๋Š” โ€™08๋…„ ์ œ์•ฝ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ โ€™13๋…„ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. 2023๋…„์—๋Š” ํ˜์‹ ์ ์ธ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ํ˜„๋Œ€์— ๊ธฐ๋Šฅ์  ๋ฐ˜์‘ํ˜• ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์–ป๋Š” ๊ฐ€์žฅ ๋Š๋ฆฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹คโ€ฆ

React๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜๋˜๊ณ  ์–ผ๋งˆ๋‚˜ ๋ชป๋œ ๊ฒƒ์ธ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๊นจ๋‹ซ์ง€ ๋ชปํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ„์˜ ๋น„์œ ๋ฅผ ๋‹ค๋ฅธ ๋ง๋กœ ๋ฐ”๊พธ์–ด ๋งํ•˜์ž๋ฉด (๊ทธ๋ฆฌ๊ณ  ์Œ์•…์— ๊ด€ํ•œ ์„œ๋ก ๊ณผ ์—ฐ๊ฒฐ์‹œํ‚ค์ž๋ฉด):

React๋Š” John Mayer์™€ Jennifer Aniston์ด ์—ฌ์ „ํžˆ ๋ฐ์ดํŠธ ์ค‘์ด๋˜ ์‹œ์ ˆ์— ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(์ƒˆ๋กœ์šด Taylor Swift ์•จ๋ฒ”์„ ํฌํ•จํ•ด์„œ 7๊ฐœ ์•จ๋ฒ” ์ „์ž…๋‹ˆ๋‹ค. Taylorโ€™s Version ๋ฆด๋ฆฌ์Šค๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.)

๊ทธ๋ž˜์„œ ์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ React๊ฐ€ ๋‹น์‹ ์˜ ์ „๋ถ€์˜€๋‹ค๋ฉด, ๋‹น์‹ ์ด ์žŠ์—ˆ๊ฑฐ๋‚˜ ์ „ํ˜€ ๋ชฐ๋ž์„ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์•Œ๋ ค์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ๋” ๋‚˜์€ ๋…ธ๋ž˜๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Part 2: React ๋•Œ๋ฌธ์— ์žŠ์—ˆ๊ฑฐ๋‚˜ ๋ชฐ๋ž๋˜ ๊ฒƒ๋“ค

1. ์ด์ œ๋Š” ์ƒํƒœ๊ณ„๊ฐ€ ์ปค์งˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค (๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ)

๋‹ค๋ฅธ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ, โ€œ๊ฒ€์ฆ๋˜์ง€ ์•Š์€โ€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์— ์ž ์žฌ์  ๋„๊ตฌ๋กœ ๋“ฑ์žฅํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€์žฅ ๋จผ์ € ๋ฌป๋Š” ์งˆ๋ฌธ์€: โ€œ์ƒํƒœ๊ณ„๊ฐ€ ์–ผ๋งˆ๋‚˜ ํฐ๊ฐ€?โ€œ์ž…๋‹ˆ๋‹ค.

์ด ๊ธ€์˜ ์ „์ œ๋ฅผ ์ฝ์ž๋งˆ์ž ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. React์—์„œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์ด๋™ํ•˜๋ผ๊ณ ? ๊ทธ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์ถฉ๋ถ„ํžˆ ํด๊นŒ?

์šฐ๋ฆฌ๋Š” ์™œ ์ƒํƒœ๊ณ„ ํฌ๊ธฐ์— ์ง‘์ฐฉํ•˜๋Š” ๊ฑธ๊นŒ์š”?

๋ฌผ๋ก , ์ด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ๋ช‡ ๋…„ ํ›„์— ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ํ™•์‹ ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๋งค์šฐ ํƒ€๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค, ๋„ˆ๋ฌด ์ƒˆ๋กญ๊ฑฐ๋‚˜ ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ๊ฒƒ์— ๋ชจ๋“  ๊ฒƒ์„ ๊ฑธ์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Vue, Svelte, Preact, Solid, Astro ๋“ฑ์€ ๋ชจ๋‘ ๊ทธ ์ง€์ ์„ ํ›จ์”ฌ ๋„˜์–ด์„œ์„œ ์ž˜ ์ง€์›๋˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๊ทธ๊ฒƒ๋งŒ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฌด์—‡์ด ๋ฌธ์ œ์ผ๊นŒ์š”? ๋‚˜๋Š” ํ•œ ๊ฐ€์ง€ ์ด๋ก ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์šฐ๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•œ๋‹ค๊ณ  ๋ฐฐ์›Œ์™”์Šต๋‹ˆ๋‹ค.

์ด ์‚ฌ๊ณ ๋ฐฉ์‹์€ jQuery์—์„œ ์‹œ์ž‘๋˜์—ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‚˜๋Š” React๊ฐ€ ์ด๋ฅผ ๊ฐ€์†ํ™”ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

React๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ๋Š” ๋” ์ด์ƒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์›๋ž˜๋„ ๊ทธ๋ž˜์•ผ ํ–ˆ๋Š”์ง€ ์˜๋ฌธ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹คโ€”ํŠนํžˆ โ€œ๊ทธ๋ƒฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธโ€๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๋ฉด. ๋งŒ์•ฝ ๊ทธ๊ฒƒ์ด ๊ทธ๋ƒฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ๋ฉด, ์‹ค์ œ๋กœ ๊ทธ๋ƒฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ธ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก , ๋‹ค๋ฅธ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์ž์ฒด ๊ทœ์น™๊ณผ ์ƒํƒœ ๋ฐ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ์˜์—ญ์—์„œ๋„ ์‹ค์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ Svelte๋‚˜ Vue ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ๊ตฌ์ถ•ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ๊ฒƒ์€:

์•„๋ฌด ๋‹ค๋ฅธ ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋„ React๋งŒํผ ํ”Œ๋žซํผ๊ณผ ๊ณ ์ง‘์Šค๋Ÿฝ๊ฒŒ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ˜„๋Œ€ ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒจํ‚ค์ง€๊ฐ€ ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ๋†’์œผ๋ฉฐ, ์ˆ˜์ฒœ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ Œ๋”๋ง ์ฃผ๊ธฐ๋‚˜ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ ํŠน์œ ์˜ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€: ์›น ์ปดํฌ๋„ŒํŠธ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…์ข…, ํŠน์ˆ˜ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ํŒจํ‚ค์ง€๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ๊ณผ ์ด๋ฏธ ํ˜ธํ™˜๋˜๋ฏ€๋กœ ์ด๋ฏธ ๋‚˜์™€ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค๊ณผ ์ž˜ ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

Preact Signals๋Š” ๋›ฐ์–ด๋‚œ ์˜ˆ์ž…๋‹ˆ๋‹ค: Preact์šฉ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ, ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์ปดํฌ๋„ŒํŠธ๋„ ๊ฑฐ์˜ ๋ชจ๋“  ํ˜„๋Œ€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์€, ํ”Œ๋žซํผ์ด ์ด๋ฏธ ํ•„์š”ํ•œ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด, ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ํ•ญ์ƒ React์—์„œ ์–ด๋ ค์› ๋˜ ์–‘์‹ ์ œ์ถœ.)

์ตœ์•…์˜ ๊ฒฝ์šฐ, ํ•„์š”ํ•œ ๊ฒƒ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด React์—์„œ๋ณด๋‹ค ํ›จ์”ฌ ์‰ฌ์šธ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค. (useState์™€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฒ„์ „์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ทธ ์ฐจ์ด๋ฅผ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์ƒˆ๋กœ์šด ๊ฒƒ์€ ๋ณด์ˆ˜์ ์ธ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‹ ์ค‘ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ๋ฅผ ๊บผ๋ฆฌ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ๋ถ€์ฑ„์™€ ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ € ์ง€์›์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค์€ ๊ธฐ์กด์˜ ์ข‹์€ ์•„์ด๋””์–ด์™€ ๋” ํ˜„๋Œ€์ ์ธ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋Šฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋” ๋ฐœ์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. React ํ›…์€ ์‚ฌ์‹ค ๊ตฌ์‹์ž…๋‹ˆ๋‹ค

ํ›…์€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” React์˜ ์ตœ์‹  ์ง„ํ™”์ž…๋‹ˆ๋‹ค.

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

ํ•˜์ง€๋งŒ React ํ›…์€ ๋” ์ด์ƒ ์ƒˆ๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์‚ฌ์‹ค, ์•ˆ์ •์ ์ธ React ํ›…์€ ๋‚ด ์•„์ด์™€ ๊ฑฐ์˜ ๊ฐ™์€ ๋‚˜์ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ง€๊ธˆ ์œ ์น˜์›์— ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

ํ›…์€ ๋” ์ด์ƒ ๊ฒฝ์Ÿ ์šฐ์œ„๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๊ธฐ๋Šฅ๋„ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. ๊ทธ์ € ์šฐ๋ฆฌ๊ฐ€ ์ผํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž์ฒด ๊ตฌํ˜„์˜ ํ›…์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋” ๋น ๋ฅด๊ณ , ๋” ์Šค๋งˆํŠธํ•˜๊ณ , ์“ฐ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

Preact Signals๋Š” ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰ํ•  ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Svelte์˜ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์Šคํ† ์–ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Solid์—๋„ Signals๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด Vue 3์˜ ์ปดํฌ์ง€์…˜ API๋„ React์˜ ํ›…์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›…์€ ํ›Œ๋ฅญํ•œ ํŒจํ„ด์ด๋ฉฐ, React๋Š” ์ด๋ฅผ ๋Œ€์ค‘ํ™”ํ•œ ๊ณต๋กœ๋ฅผ ์ธ์ •๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฑฐ์˜ ๋ชจ๋“  ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” React์˜ ๊ตฌํ˜„๋ณด๋‹ค ๋” ๋‚˜์€ ํ›…์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™๋„ ์ ๊ณ , ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋„ ์ ์Šต๋‹ˆ๋‹ค.

Signals์˜ ๊ฐœ๋…์„ ์ž˜ ๋ชจ๋ฅธ๋‹ค๋ฉด: ์ด๊ฒƒ์€ ํ›…์˜ ๋‹ค์Œ ์ง„ํ™”, ๋” ๋‚˜์€ ๋ฐ˜์‘ํ˜• ์ƒํƒœ์˜ ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. Signals๋Š” ๋ฌด์—‡์ด ๋ฆฌ๋ Œ๋”๋ง์„ ์œ ๋ฐœํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ๋” ์ข‹์œผ๋ฉฐ, ์ „์ฒด ์ปดํฌ๋„ŒํŠธ ๋Œ€์‹  ๋ฆฌ๋ Œ๋”๋ง์ด ํ•„์š”ํ•œ ๋…ธ๋“œ๋งŒ ๋ฆฌ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

3. ์ด์ œ๋Š” ๋ Œ๋”๋ง์„ ๋ฏธ์„ธ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

๊ณ ๋ฐฑํ•  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค: useMemo์™€ useCallback์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€, ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ์–ธ์ œ ์‚ฌ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๋Š”์ง€ ์•„์ง๋„ ์ •ํ™•ํžˆ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. (์ •๋ง๋กœ ์˜ค๋Š˜ ์•„์นจ์— ๊ทธ ์ฃผ์ œ์— ๊ด€ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ์‚ฌ๋ฅผ ์ฝ์—ˆ์ง€๋งŒ ๋ง์ด์ฃ .)

๋˜ํ•œ, useEffect์˜ ์ข…์† ๋ฐฐ์—ด์— ๋ฌด์—‡์„ ๋„ฃ์–ด์•ผ ํ•˜๊ณ  ์™œ ๋„ฃ์–ด์•ผ ํ•˜๋Š”์ง€ ์ง๊ด€์ ์œผ๋กœ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. useEffect ํ˜ธ์ถœ์„ ์“ธ ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋ฐ 15๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ์š”.

React๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ด ๊ณ ๋ฐฑ์— ๊ณต๊ฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด์ฉŒ๋ฉด ๊ทธ ํ˜ผ๋ž€๊ณผ ๋ชจํ˜ธํ•จ์„ ์ •์ƒ์œผ๋กœ ๋ฐ›์•„๋“ค์˜€์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•Œ์•„๋‘์„ธ์š”:

๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ๋ช‡ ๋…„ ๋™์•ˆ ์ด๋Ÿฌํ•œ ๋ Œ๋”๋ง ์ฃผ๊ธฐ ๋ฏธ์„ธ ๊ด€๋ฆฌ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์€ ์ด๋Ÿฐ ์ผ์„ ์†์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ๋งŒํผ ๋˜‘๋˜‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์†์„ ์žก๊ณ  ์„ค๋ช…ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ๋” ์ด์ƒ ํ•„์š” ์—†๋Š” ๋ฆฌ๋ Œ๋”๋ง์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋„๋ก ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ํผํฌ๋จผ์Šค ์žˆ๊ฒŒ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ React๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ž˜ ์•Œ๊ณ , ๊ธฐ๋ณธ์ ์œผ๋กœ ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ React์—์„œ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•  ๋•Œ์ฏค์—๋Š” ํ›จ์”ฌ ๋” ์ง€๋‚œ ์‹œ์ ์— ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

4. ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” useEffect์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์ปดํฌ๋„ŒํŠธ๊ฐ€ DOM์— ๋“ค์–ด๊ฐˆ ๋•Œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋‚˜ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” useEffect๋ณด๋‹ค ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

React ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‚ด์—์„œ๋„ useEffect๋Š” ์•…๋ช…์ด ๋†’๊ณ , ์ข…์ข… ์™„์ „ํžˆ ํ”ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ๋„ˆ๋ฌด ๋งŽ์ด ๋‹ค๋ฃฐ ํ•„์š”๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ ๋ขฐํ•ด ์ฃผ์„ธ์š”: ๋‹ค๋ฅธ ๋น„-React ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด์ฒ˜๋Ÿผ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ทœ์น™๋„ ๊ทธ๋ ‡๊ฒŒ ๊นŒ๋‹ค๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ๋  ๋•Œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋“œํŒŒํ‹ฐ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๋Š” ์‚ฌ๋žŒ์€ ์—†์Šต๋‹ˆ๋‹ค.

5. ํ™•์žฅ์„ฑ์€ ๋” ์ด์ƒ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค

์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ๋žŒ๋“ค์ด ์ฆ‰์‹œ ๋ฌป๋Š” ๋˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ์€: โ€œํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?โ€œ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์งˆ๋ฌธ์€ ์•ฝ๊ฐ„ ๊ตฌ์‹์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ React๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ์˜ ์„ธ์ƒ์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๋‹น์‹œ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋ก ํŠธ์—”๋“œ UI๋Š” ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‚˜ jQuery(๋˜๋Š” ์œ ์‚ฌํ•œ ๋Œ€์•ˆ)๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด์ œ ๊ทธ๊ฒƒ์ด ํŠน์ • ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„œ๋ฉด ์ž˜ ํ™•์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

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

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ โ€œํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?โ€œ๋ผ๋Š” ์งˆ๋ฌธ์˜ ๊ธฐ์ค€์€ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฑ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ปค์ง€๋”๋ผ๋„ ์ ๋‹นํžˆ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€?

ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ™•์žฅ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์šฐ๋ ค๋Š” jQuery๋งŒํผ ์˜ค๋ž˜๋˜์—ˆ์œผ๋ฉฐ, ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จํ•ด์„œ๋Š” ๊ตฌ์‹์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

React๋Š” ์ด๋Ÿฌํ•œ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์ตœ์‹  ๊ธฐ์ˆ ์˜ ๊ธฐ์ ์ด์–ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋‹จ์ˆœํžˆ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ˜์‘์„ฑ์„ ๋งŒ๋“ค๊ณ  ๋ณต์žก์„ฑ์„ ์ถ”์ƒํ™”ํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์ด ์ถฉ๋Œ์ด๋‚˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถฉ๋Œ ์—†์ด ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

React๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ™•์žฅ์„ฑ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ๋ฉฐ, ์ตœ๊ณ ๋„ ์•„๋‹ˆ์—ˆ์œผ๋ฉฐ, ์ฒซ ๋ฒˆ์งธ๋„ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋งŽ์€ ๊ฐ€๋Šฅํ•œ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ค‘ ํ•˜๋‚˜์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

(๋˜ํ•œ, React๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.)

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

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

6. ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์€ ๋” ์ด์ƒ ํŠน๋ณ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๋ช‡ ๋…„ ์ „๋งŒ ํ•ด๋„, ์„œ๋ฒ„ ๋ Œ๋”๋ง๋œ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด React(์ฃผ๋กœ Next.js๋ฅผ ํ†ตํ•ด)๊ฐ€ ๊ฑฐ์˜ ์œ ์ผํ•œ ์„ ํƒ์ง€์˜€์Šต๋‹ˆ๋‹ค. React๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA)์œผ๋กœ ๋ Œ๋”๋ง๋˜๋Š” ๋Œ€์‹ , ์„œ๋ฒ„์—์„œ HTML๋กœ ๋ Œ๋”๋ง๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํฅ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์†๋„์™€ SEO ๊ฐœ์„ ์€ ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋Š” ์žฅ์ ์ด์—ˆ์œผ๋ฉฐ, ์ดˆ๊ธฐ์—๋Š” ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์ด๋ฅผ ๋”ฐ๋ผ์žก๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ์—์„œ ํ•ญ์ƒ ๊ทธ๋ ‡๋“ฏ์ด, ์ฒซ ๋ฒˆ์งธ๋กœ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๋ฐ˜๋“œ์‹œ ์ตœ๊ณ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

SvelteKit์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋ Œ๋”๋ง ํŒจํ„ด์— ๋Œ€ํ•ด ์„ธ๋ฐ€ํ•œ ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Vue์˜ ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Nuxt๋Š” ๋” ์ผ์ฐ ์ด ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค(Next์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์Œ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค).

Deno์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Fresh๋Š” โ€˜์„ฌโ€™์œผ๋กœ ์ง€์ •๋œ ๋ถ€๋ถ„(ํด๋ผ์ด์–ธํŠธ ๋ Œ๋”๋ง)์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ „๋ถ€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ํ•ฉ๋‹ˆ๋‹ค. Fresh๋Š” React๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ , useState์™€ ๋ฐ˜์‘์„ฑ ๋ชจ๋ธ์˜ ๋” ์„ฑ๋Šฅ์ด ์ข‹๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ฒ„์ „์ธ Signals๋ฅผ ๊ฐ€์ง„ Preact๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Astro๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์ง€์›ํ•˜๋ฉฐ, ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ข…๋ฅ˜๋ฅผ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ปดํฌ๋„ŒํŠธ๋„ ์ž˜ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ถ€ ๊ฒฝ์šฐ์—๋Š” Next๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋” ์ข‹๋‹ค๋Š” ํ‰๊ฐ€๋ฅผ ๋ฐ›๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Solid์˜ ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ SolidStart๋„ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Qwik์€ ์•„์˜ˆ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Ember์™€ Angular๋„ ์ด์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค๋„ ๋งŽ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

PHP๊ฐ€ ๋‹ค์‹œ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค.

7. ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ์–ด๋ ต์ง€ ์•Š๊ณ  ๋‚˜์œ ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค

๋˜๋Š” ์ด ์„น์…˜์˜ ๋” ์ข‹์€ ์ œ๋ชฉ์€: ํผ์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

React๋Š” Facebook์— ์˜ํ•ด Facebook์˜ ๋…ํŠนํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

React์˜ ๊ฐ•ํ•œ ์˜๊ฒฌ ์ค‘ ํ•˜๋‚˜์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅธ๋‹ค๋Š” ๊ฒƒ์€ 2010๋…„๋Œ€ ์ดˆ๋ฐ˜ Facebook์˜ ์—”์ง€๋‹ˆ์–ด๋ง ๊ณผ์ œ๊ฐ€ React์˜ ์•„ํ‚คํ…์ฒ˜์— ๊นŠ์ด ๋ฐ˜์˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ์ตœ์„ ์˜ ๊ด€ํ–‰์œผ๋กœ ์—ฌ๊ฒจ์กŒ์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜์—๋Š” ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์˜ ๋ฌธ์ œ๋ฅผ ๋Œ€๋ถ€๋ถ„ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉฐ, ๋งŽ์€ ๊ฒฝ์šฐ์— ๋” ํŽธ๋ฆฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

React์—์„œ ํผ์„ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ ์•…๋ช… ๋†’๊ฒŒ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ž…๋ ฅ์˜ ๋ชจ๋“  ํ‚ค ์ž…๋ ฅ์ด ๋‘ ๋‹จ๊ณ„ ๊ณผ์ •์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ; ์ƒํƒœ์™€ ์ผ์น˜ํ•˜๋„๋ก ์„ค์ •ํ•˜๊ธฐ (์ด๋กœ ์ธํ•ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ž…๋ ฅ์ด ๋‹ค์‹œ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค). ๋ฌผ๋ก , ๋ณดํ†ต ๋„ˆ๋ฌด ๋นจ๋ผ์„œ ์•Œ์•„์ฐจ๋ฆฌ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ด๋Š” ๋งŽ์€ ์ถ”๊ฐ€ ์ž‘์—…์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋•Œ๋ฌธ์— React์šฉ ํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. React์—์„œ ํผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•…๋ช… ๋†’๊ฒŒ ๊ฐ€์žฅ ์–ด๋ ค์šด ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ํผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ด๋ ‡๊ฒŒ ์–ด๋ ต๋‹ค๊ณ  ์—ฌ๊ฒจ์ง€๋Š” ๋‹ค๋ฅธ ๋„๊ตฌ๋Š” ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

ํผ์€ ํ‘œ์ค€ ์›น ํ”Œ๋žซํผ ๊ธฐ๋Šฅ์ด๋ฉฐ, ์ดํ›„์— ๋“ฑ์žฅํ•œ ๋งŽ์€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”Œ๋žซํผ์„ ์‹ ๋ขฐํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„์‚ฌ์ด๋“œ๋ฅผ ์žŠ๊ณ , ํผ์„ ์ˆœ์ „ํžˆ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋‹ค๋ฃจ๋”๋ผ๋„: Svelte, Vue ๋“ฑ ๋งŽ์€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๋ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๋ฅผ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ์–‘์ชฝ ๋์—์„œ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด DOM์ด ์—…๋ฐ์ดํŠธ๋˜๊ณ , DOM์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

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

์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์™€ DOM์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์žˆ์–ด ์„œ๋กœ๊ฐ€ ๋”ฐ๋ผ์žก์•„์•ผ ํ•  ํ•„์š”์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

8. ์Šคํƒ€์ผ๋ง์€ ์‚ฌ์‹ค ์‰ฝ์Šต๋‹ˆ๋‹ค

๋Œ€๋ถ€๋ถ„์˜ React ์‚ฌ์šฉ์ž๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‘ ์„ธ ๊ฐ€์ง€ ์ด์ƒ์˜ ๋ฐ˜๋ณต์„ ๊ฒฝํ—˜ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

JSX ๊ตฌ์„ฑ ์š”์†Œ์— .css ํŒŒ์ผ์„ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, CSS Modules, Styled Components, Tailwind ๋“ฑ์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์•„๋งˆ classnames๋‚˜ tailwind-merge ํŒจํ‚ค์ง€ ๋˜๋Š” ๋‘˜ ๋‹ค, ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ Tailwind ์• ๋“œ์˜จ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ๋“ค์€ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์˜ต์…˜๋“ค์ž…๋‹ˆ๋‹ค.

Tailwind๋Š” ๊ทธ ์ž์ฒด๋กœ ํ† ๋ก ํ•  ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํ”Œ๋žซํผ์˜ ํ๋ฆ„์„ ๊ฑฐ์Šค๋ฅด๊ณ , ๋‹จ๊ธฐ์ ์ธ ์ด๋“์„ ์œ„ํ•ด ์žฅ๊ธฐ์ ์ธ ์†์‹ค์„ ์ดˆ๋ž˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ React๊ฐ€ ์ž์ฒด ์Šคํƒ€์ผ๋ง ์˜ต์…˜์ด ์—†์–ด์„œ ์ด๋Ÿฌํ•œ ์Šคํƒ€์ผ๋ง ์†”๋ฃจ์…˜๋“ค์ด ์กด์žฌํ•˜๊ณ  ๋„๋ฆฌ ์ฑ„ํƒ๋˜์—ˆ๋‹ค๋Š” ์ ์€ ๋ถ€์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์Šคํƒ€์ผ๋ง์ด ํ•ด๊ฒฐ๋œ ๋ฌธ์ œ๋ผ๋Š” ์‚ฌ์‹ค์„ ๋ชจ๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ, Vue์™€ Svelte๋Š” ๊ฐ์ž์˜ ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํ”„๋ ˆ์ž„์›Œํฌ ๋ชจ๋‘ ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์˜ ๋ฒ”์œ„ ์ง€์ • ์Šคํƒ€์ผ๋ง์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(Vue๋Š” ์„ ํƒ์ , Svelte๋Š” ๊ธฐ๋ณธ ์ œ๊ณต). ์ด๋“ค์€ ๊ธฐ๋ณธ CSS์™€๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋‘ ํ”„๋ ˆ์ž„์›Œํฌโ€”๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌโ€”๋Š” CSS ๋ชจ๋“ˆ, Tailwind, Sass ๋“ฑ ์›ํ•˜๋Š” ๋ชจ๋“  ์Šคํƒ€์ผ๋ง ๋ฐฉ๋ฒ•๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ CSS์˜ ๋ชจ๋“  ๋ฌธ์ œ์ โ€”์ด ๋ฌธ์ œ์ ๋“ค์ด ์‹ค์ œ๋กœ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋“  ์•„๋‹ˆ๋“ โ€”์ด ๊ธฐ๋ณธ ์Šคํƒ€์ผ ์ฒ˜๋ฆฌ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์™€ ์„ค์ •์ด ๋ณต์žกํ•  ํ•„์š”๊ฐ€ ๊ฑฐ์˜ ์—†์œผ๋ฉฐ, ๋ฒ”์œ„ ์ง€์ • CSS๋Š” ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

์ง„์ง€ํ•˜๊ฒŒ, CSS๊ฐ€ ๋‚˜์˜๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ์ด์œ  ๋ชฉ๋ก์„ ์ฝ์–ด๋ณด์„ธ์š” (CSS๋Š” ๋‚˜์˜์ง€ ์•Š์ง€๋งŒ, CSS๋ฅผ ์ž˜ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋ ‡๊ฒŒ ๋งํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค). CSS์— ๋Œ€ํ•œ ๋น„ํŒ์€ ๊ฑฐ์˜ ๋ชจ๋‘ ๋ฒ”์œ„ ์ง€์ • ์Šคํƒ€์ผ๋ง์œผ๋กœ ํ•ด๊ฒฐ๋˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋น„-React ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ด๋ฏธ ์ด๋ฅผ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

9. ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์ด์ œ๋Š” ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค

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

์ƒํƒœ ๊ด€๋ฆฌ, props, ์ค‘์ฒฉ, ์ปดํฌ๋„ŒํŠธ ์ƒ๋ช…์ฃผ๊ธฐ, hooks, ๊ทธ๋ฆฌ๊ณ  JSX ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๋“ฑ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์€ ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ด์„ฑ์ ์ธ React ํŒฌ๋“ค์กฐ์ฐจ๋„ ์ดˆ๋ณด์ž๋“ค์ด ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šฐ๊ธฐ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๋งํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์•„๋งˆ ์ดˆ๋ณด์ž์˜€๋˜ ๋•Œ๋ฅผ ์žŠ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

์ด ์ƒํ™ฉ์— ๊ณต๊ฐํ•œ๋‹ค๋ฉด ์ข‹์€ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค:

React๋งŒํผ ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ค์šด ๋„๊ตฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•Œ๋ฉด ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‘ ๋ฒˆ์งธ ์•…๊ธฐ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ์•…๊ธฐ๋ฅผ ๋ฐฐ์šธ ๋•Œ๋Š” ์Œ์•…์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ , ํŠน์ • ์•…๊ธฐ๋ฅผ ๋ฐฐ์šฐ๋ฉฐ ์›ํ•˜๋Š” ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์•…๊ธฐ๋ฅผ ๋ฐฐ์šธ ๋•Œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋…์ด ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ์Œ์•…์„ ์ดํ•ดํ•˜๊ณ , ์ต์ˆ™ํ•œ ๊ฐœ๋…์„ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ์˜ฎ๊ธฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ๋„ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋ ˆ์ž„์›Œํฌ๋Š” TypeScript์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. props, children, ๋ฐ˜์‘ํ˜• ์ƒํƒœ์˜ ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ์ข‹๊ณ  ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๊ตฌํ˜„ ๋ฐฉ์‹์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

React๋Š” ์ด๋Ÿฌํ•œ ๊ฐœ๋…์„ ํ™•์‚ฐ์‹œํ‚ค๋Š” ๋ฐ ํฐ ์—ญํ• ์„ ํ–ˆ์ง€๋งŒ, React๊ฐ€ ์ด๋“ค์˜ ์ด์ƒ์ ์ธ ๊ตฌํ˜„์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

ํ›Œ๋ฅญํ•œ ๊ฒƒ๋“ค์€ ๋ฐ˜๋ณต์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ์„ ํƒ์ง€๋Š” ๋” ๋‚˜์€ ๊ฒƒ๋“ค์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด React์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.

React๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—์„œ ๋’ค์ฒ˜์ง„ git ๋ธŒ๋žœ์น˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. React๊ฐ€ ๋‹น์‹ ์˜ ์„ธ๊ณ„์˜ ์ค‘์‹ฌ์ด๋ผ๋ฉด ๊นจ๋‹ซ์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๊ณ„๋Š” ์ด๋Ÿฌํ•œ ์•„์ด๋””์–ด๋ฅผ ์ฑ„ํƒํ•˜๊ณ  ๋” ๋ฐœ์ „ํ•˜์—ฌ ๋” ๋‚˜์€ ๊ฒƒ๋“ค์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด์ œ ๋” ์„ฑ๋Šฅ์ด ์ข‹๊ณ , ๋ณต์žก์„ฑ์ด ์ ์œผ๋ฉฐ, ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šด ์˜ต์…˜์ด ๋งŽ์Šต๋‹ˆ๋‹ค. React๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋„ ์–ด๋ ต์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์„น์…˜: 2023๋…„ 8์›” 15์ผ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ

10. ๋‹ค๋ฅธ ์˜ต์…˜๋“ค์€ ๋‹จ์ง€ โ€œ์ƒˆ๋กญ๊ณ  ๋ฐ˜์ง์ด๋Š”โ€ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

์ด์™€ ๊ฐ™์€ ๊ธ€์„ ๋…ผ์˜ํ•  ๋•Œ ์ข…์ข… ๋“ค๋ฆฌ๋Š” ๋ฐ˜์‘์€:

โ€œ์ € ๋ฐ”๋ณด ๊ฐ™์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๋“ค, ํ•ญ์ƒ ์ƒˆ๋กญ๊ณ  ๋ฐ˜์ง์ด๋Š” ๊ฒƒ์„ ์ซ“๊ณ  ์žˆ์–ด! ๊ทธ๋“ค์€ ์žฅ๊ธฐ์ ์ธ ํ”„๋กœ์ ํŠธ ์œ ์ง€ ๊ด€๋ฆฌ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„. ๋œจ๊ฑฐ์šด ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‚ด์ผ ์žŠํ˜€์งˆ ๊ฒƒ์ด๋ฉฐ, ๊ทธ๋“ค์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰์กฐ์ฐจ ๋˜์ง€ ์•Š์„ ๊ฑฐ์•ผ!โ€

์—ฌ๊ธฐ์—๋Š” ์ผ๋ง์˜ ์ง„์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๋“ค (ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค ์ „๋ฐ˜์ ์œผ๋กœ) ์ƒˆ๋กœ์›€์— ๋Œ๋ฆฌ๋Š” ๊ฒฝํ–ฅ์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ „๋ฌธ๊ฐ€๋“ค๋ณด๋‹ค ๋” ๊ฒฝ๊ณ„์‹ฌ์ด ์ ๋‹ค๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์–ผ๋งˆ๋‚˜ ์‚ฌ์‹ค์ผ๊นŒ์š”? ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋‚˜์˜ฌ ๋•Œ๋งˆ๋‹ค ์ „์ฒด ๊ธฐ์ˆ  ์Šคํƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ ค๋Š” ๊ฑธ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ๋์—†๋Š” ์˜จ๋ผ์ธ ํ•˜์ž… ์‚ฌ์ดํด ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ๋Š๊ปด์ง€๋Š” ๊ฑธ๊นŒ์š”?

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

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๊ฐœ๋ฐœ์ž๋“ค์ฒ˜๋Ÿผ ์ต์ˆ™ํ•œ ๊ฒƒ์„ ๊ณ ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์— ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์ด ๊ฒฌํ•ด๋Š” ํ˜„์žฅ์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์˜ต์…˜๋“ค์˜ ์„ฑ์ˆ™๋„๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Vue๋Š” React๋งŒํผ ์˜ค๋ž˜๋˜์—ˆ๊ณ , ํ˜„์žฌ ๋ฒ„์ „(v3)์€ ๊ฑฐ์˜ 3๋…„ ์ „์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„๋Œ€์ ์ธ Svelte ๋ฒ„์ „์€ React ํ›…์ด ์ถœ์‹œ๋œ ์ง€ ๋‘ ๋‹ฌ ํ›„์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SvelteKit์€ ๊ฑฐ์˜ 1๋…„ ์ „์— 1.0 ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. Preact๋Š” ๋ฒ„์ „ 10์ž…๋‹ˆ๋‹ค. Solid๋Š” 2๋…„ ๋„˜๊ฒŒ 1.0+ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. Astro๋Š” 1๋…„ ์ „์— 1.0 ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. Qwik๊ณผ Fresh๋Š” ์˜ฌํ•ด ์ดˆ์— 1.0 ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋“ค ์ค‘ ์ผ๋ถ€๊ฐ€ ์•„์ง ๋„ˆ๋ฌด ์ƒˆ๋กญ๋‹ค๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ React ๋Œ€์•ˆ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ณ ๋ ค๋ฅผ ์งง์€ ์ฃผ์˜ ์ง‘์ค‘๋ ฅ์œผ๋กœ ์ค„์ด๋Š” ๊ฒƒ์€ ์„ฑ์ˆ™๋„์™€ ๊นŠ์ด๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

11. React๋Š” ์„ฑ๋Šฅ ๋ฉด์—์„œ <๋งŽ์ด> ๋’ค์ณ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค

์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๊ธธ๊ฒŒ ๋งํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๋งŽ์€ ๊ธ€์ด ์ด๋ฏธ ์ž‘์„ฑ๋˜์—ˆ๊ณ , ์ด ๊ธ€์—์„œ๋„ ๋งŽ์€ ๊ฒƒ์„ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด: React๊ฐ€ ๋Š๋ฆฐ ์ด์œ ๋Š” ์‚ฌ์†Œํ•œ ์ฐจ์ด ๊ฐ™์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

React๋Š” ์„ฑ๋Šฅ ๋ฉด์—์„œ ๋’ค์ณ์ง‘๋‹ˆ๋‹ค (๋ฒˆ๋“ค ํฌ๊ธฐ์™€ ์‹คํ–‰ ์†๋„ ๋ชจ๋‘). JS ์›น ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒค์น˜๋งˆํฌ์—์„œ React์˜ ์„ฑ๋Šฅ์€ ํ‰๊ท ์ ์œผ๋กœ Solid๋ณด๋‹ค 50% ๋Š๋ฆฌ๊ณ , Vue๋ณด๋‹ค 25% ๋Š๋ฆฌ๋ฉฐ, Svelte๋ณด๋‹ค 40% ๋Š๋ฆฌ๊ณ , Preact๋ณด๋‹ค 35% ๋Š๋ฆฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ React ํ›…๋งŒ ์‚ฌ์šฉํ•œ ๋น„๊ต์ž…๋‹ˆ๋‹ค. useTransition ํ›…์ด๋‚˜ ์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์—ฐ๊ตฌ๋“ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž๋Š” ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋“ค์˜ ๊ฒฐ๊ณผ์—๋Š” ํ•ญ์ƒ ๋‰˜์•™์Šค๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ:

์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ•˜๋“ , React๋Š” ์ดํ›„์— ๋‚˜์˜จ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ํฌ๊ณ  ๋Š๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฝํ—˜์ ์œผ๋กœ: ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ž…๋ ฅ ์–‘์‹์„ ์ž‘์„ฑํ•  ๋•Œ React๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. React๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ๋Š๋ฆผ๊ณผ ์ƒํƒœ์™€ DOM์„ ์ผ์น˜์‹œํ‚ค๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์ด ๋ˆˆ์— ๋•๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฒฝํ—˜์„ ๋– ๋‚˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณด์ž๋ฉด, ์ด๋Ÿฌํ•œ ์ˆซ์ž๋“ค์ด ์ž‘๊ฒŒ ๋“ค๋ฆด ์ˆ˜ ์žˆ๊ณ , ์„ฑ๋Šฅ์ด ๊ธฐ์ˆ  ์Šคํƒ์„ ์„ ํƒํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋งŽ์€ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€œ๋ชจ๋“  ๊ฒƒ์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค.โ€

ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด 25โ€“50%๋ผ๋Š” ๊ฒƒ์€ ์—„์ฒญ๋‚œ ์ฐจ์ด์ž…๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ๋กœ๋”ฉ ์†๋„๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ์ข‹์•„ ๋ณด์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋Œ€๊ทœ๋ชจ๋กœ ๋ณด๋ฉด ์—„์ฒญ๋‚œ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ํฐ ๋กœ๋”ฉ ๋˜๋Š” ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์ค„์ธ ์—”์ง€๋‹ˆ์–ด๋Š” ๊ทธ๊ฒƒ์„ ์ด๋ ฅ์„œ์˜ ์ฃผ์š” ์„ฑ๊ณผ๋กœ ๊ธฐ๋กํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

React์™€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์˜ ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ์‚ฌ์†Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์†Œํ™”๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Part 3: ์‹œ๋„ํ•ด๋ณผ ๋งŒํ•œ ๋‹ค๋ฅธ ๊ฒƒ๋“ค

๋ช‡ ๋ฌธ๋‹จ ์ „๋ถ€ํ„ฐ ๊ถ๊ธˆํ•ด์กŒ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. React๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋‚ก์•˜๋‹ค๋ฉด ๋Œ€์•ˆ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ๋‹ค๋ฃจ๋ฉด์„œ ๊ฐ ์‚ฌ์šฉ ์‚ฌ๋ก€๋„ ์–ธ๊ธ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. React์˜ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ชจ๋“  ๊ฒƒ์ด ๋˜๋ ค๊ณ  ๋„ˆ๋ฌด ์˜ค๋ž˜ ์‹œ๋„ํ•ด์™”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. React ํ˜•ํƒœ์˜ ๋„๊ตฌ๊ฐ€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‘์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋„๊ตฌ๊ฐ€ ํ•˜๋‚˜์˜ ์Šค์œ„์Šค ๊ตฐ์šฉ ์นผ๋ณด๋‹ค ๋‚˜์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž ๊น, ๋‘ ๊ฐ€์ง€ ์ฃผ์˜์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰ํ•œ ๋ชจ๋“  ์ตœ์‹  ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ต์…˜์„ ๋‚˜์—ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๋ฐฐ์šฐ๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค๋ฉด, Svelte๋‚˜ Vue๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ๋‚˜์—ดํ•œ ๊ฒƒ์ž„์„ ์•Œ์•„๋‘์„ธ์š”.

  2. ๋ชจ๋“  ์˜ต์…˜์„ ๋‚˜์—ดํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. Ember์™€ Angular๋Š” React๋ณด๋‹ค ์˜ค๋ž˜๋˜์—ˆ๊ณ , ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ์—์„œ React๋ณด๋‹ค ๋›ฐ์–ด๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค.

    Alpine๊ณผ Petite Vue์™€ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ ์˜ต์…˜๋„ ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ React๋ณด๋‹ค๋Š” jQuery๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ ๋” ์ ํ•ฉํ•˜๊ณ , ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ๋น›์„ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

    ๋งˆ์ง€๋ง‰์œผ๋กœ, Eleventy์™€ ๊ฐ™์€ ํƒ์›”ํ•œ ๋„๊ตฌ๋„ ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค. Eleventy๋Š” ์ˆœ์ˆ˜ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค. (Gatsby๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ์—ฌ์ „ํžˆ ๊ณ ๋ คํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.)

์ž, ์ด์ œ ์‹œ์ž‘ํ•ด๋ด…์‹œ๋‹ค.

Svelte (๋‚ด ๊ฐœ์ธ์ ์ธ ์„ ํƒ)

์—ฌ๋Ÿฌ๋ถ„, 2023๋…„์˜ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ๋“œ๋ฆฌ๋Š” ํ•œ ๊ฐ€์ง€ ์กฐ์–ธ: Svelte๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋†๋‹ด์„ ์ œ์ณ๋‘๊ณ : React ๋Œ€์‹  ์ถ”์ฒœํ•  ํ•œ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด Svelte์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋žซ๋™์•ˆ โ€œSvelte๋Š” React์˜ ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†๋Š” ๋ฒ„์ „โ€์ด๋ผ๊ณ  ์ฃผ์žฅํ•ด์™”์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋”์šฑ ์ง„์‹ค์ด ๋˜์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Svelte๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ , ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šฐ๋ฉฐ (ํŠนํžˆ React๋ฅผ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด), ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์— ํ›จ์”ฌ ๋” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, React๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์ดํŠธ์™€ ์ œ ๋ชจ๋“  ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋Š” SvelteKit์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Svelte๋Š” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋น ๋ฅธ ์˜ต์…˜๊ณผ ๋น„๊ตํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜(DX)์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ์„ค๋ฌธ์กฐ์‚ฌ์—์„œ ๊ฐ€์žฅ ์‚ฌ๋ž‘๋ฐ›๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

Svelte๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์›น ํ”Œ๋žซํผ์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€๋˜๋ฏ€๋กœ, ๋งค์šฐ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๊ฐœ๋…์€ ๋Œ€๋ถ€๋ถ„ ์ต์ˆ™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Svelte๋Š” ๋˜ํ•œ ์ „ํ™˜, ์ด์ง•, CSS ์ฒ˜๋ฆฌ, ์ปดํฌ๋„ŒํŠธ ์Šค์ฝ”ํ”„ ์Šคํƒ€์ผ ๋“ฑ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ํฌ๊ธฐ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Svelte๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ด ์•„๋‹Œ ์ปดํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋นŒ๋“œ ์‹œ ์ œ๊ฑฐ๋˜๋ฉฐ, ์ฝ”๋“œ๋Š” ์ž‘์€ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์กฐ๊ฐ์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Svelte์˜ ๋ฒˆ๋“ค์ด ์ผ๋ฐ˜์ ์œผ๋กœ React๋ณด๋‹ค ํ›จ์”ฌ ์ž‘๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Svelte๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ณ  ์ž‘๋™ํ•˜์ง€๋งŒ, ๋ณธ์งˆ์ ์œผ๋กœ ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง„ ์ž‘์€ ์šฐ์•„ํ•œ HTML ์ƒ์œ„ ์ง‘ํ•ฉ์œผ๋กœ, ๋น ๋ฅด๊ณ  ์ตœ์†Œํ•œ์˜ ๋ฒˆ๋“ค๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

Svelte์˜ ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ SvelteKit์€ ๋งค์šฐ ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ, ์ •์ , ์„œ๋ฒ„ ๋ Œ๋”๋ง, ์—ฃ์ง€ ๋ฐฐํฌ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. 2022๋…„ ๋ง์— 1.0 ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์œผ๋ฉฐ, ํ”„๋กœ๋•์…˜ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (Next.js๋ฅผ ๋งŒ๋“œ๋Š” Vercel์—์„œ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.)

Svelte ์ถ”์ฒœ ์ด์œ :

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ด์œ ๋กœ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ธฐ์จ์„ ๋‹ค์‹œ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด.

Svelte ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React๋กœ ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ. Svelte๋Š” React ์ž์ฒด๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, SvelteKit์€ Next, Gatsby, Remix ๋“ฑ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Vue

Vue๋Š” ์•„๋งˆ๋„ React์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์˜ต์…˜์ด๋ฉฐ, ๋‹ค์Œ์œผ๋กœ ํฐ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ ๋ฉด์—์„œ React๋ณด๋‹ค ํ›จ์”ฌ ๋›ฐ์–ด๋‚˜๋ฉฐ, ์กฐ๊ธˆ ๋” UI์— ์ง‘์ค‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ฉด์—์„œ๋Š” Vue๊ฐ€ React์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๋„์•ฝ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ Vue 3์—์„œ๋Š” ์œ ์‚ฌํ•œ ํ›… ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Vue๋Š” JSX๋ณด๋‹ค ๊ธฐ๋ณธ HTML์— ๋” ๊ฐ€๊นŒ์šด ํ…œํ”Œ๋ฆฟ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์—์„œ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฃจํ”„๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค. map๊ณผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

Vue๋Š” Next์™€ ์œ ์‚ฌํ•œ ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Nuxt๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ž˜ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ  ๊ฐ•๋ ฅํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Vue๋Š” React๋ณด๋‹ค ๋” ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์ปดํฌ๋„ŒํŠธ ์Šค์ฝ”ํ”„ CSS ์ฒ˜๋ฆฌ์™€ ์‰ฌ์šด ์ „ํ™˜/์• ๋‹ˆ๋ฉ”์ด์…˜ ๋“ฑ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Vue ์ถ”์ฒœ ์ด์œ :

์ปค๋ฎค๋‹ˆํ‹ฐ ํฌ๊ธฐ/์ „์ฒด ํ”„๋ ˆ์ž„์›Œํฌ ์ธ๊ธฐ๋„๊ฐ€ ์ค‘์š”ํ•œ ์š”์†Œ๋ผ๋ฉด; React์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋” ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ๋˜๋Š” HTML ๊ฐ™์€ ๊ฒƒ์„ ์›ํ•œ๋‹ค๋ฉด; ๋Œ€๊ธฐ์—…์ด ์†Œ์œ ํ•˜์ง€ ์•Š์€ ๋…๋ฆฝ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํ˜ธํ•œ๋‹ค๋ฉด.

Vue ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React ์ž์ฒด ๋˜๋Š” Nuxt๋Š” Next๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Solid

Solid๋Š” React๋ณด๋‹ค ๋” ๋‚ซ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ React์™€ ๊ฑฐ์˜ (๋˜๋Š” ์™„์ „ํžˆ) ๋™์ผํ•˜๊ฒŒ ๋ณด์ด์ง€๋งŒ, Solid๋Š” ํ›จ์”ฌ ๋” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๊ฐ€์žฅ ๋น ๋ฅธ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

Solid๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ React์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณต์žก์„ฑ, ์„ฑ๋Šฅ ๋ฌธ์ œ ๋ฐ ๋งŽ์€ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์žฌ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Solid์—๋Š” Signals๋ผ๋Š” ๊ฐœ๋…์ด ๋„์ž…๋˜์–ด ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง๊ณผ ์ƒ๋ช… ์ฃผ๊ธฐ ์ฃผ์œ„์˜ ๋งŽ์€ ํ˜ผ๋ž€๊ณผ ๋ฐœ๋ชฉ์„ ์žก๋Š” ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. Solid๋Š” ํ˜„๋Œ€ ์‹œ๋Œ€์— React๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ React๋ฅผ ์žฌ๊ตฌ์„ฑํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Solid๋Š” ํ˜„์žฌ ๋ฒ ํƒ€ ๋ฒ„์ „์ธ ์ž์ฒด ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ SolidStart๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Solid ์ž์ฒด๋Š” ์‚ฌ์šฉํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์„ฑ์ˆ™ํ–ˆ์œผ๋ฉฐ, ์ธ์ƒ์ ์ธ ํ›„์›์ž ๋ชฉ๋ก์„ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

Solid ์ถ”์ฒœ ์ด์œ :

React(JSX)๋ฅผ ์ผ๋ฐ˜์ ์œผ๋กœ ์ข‹์•„ํ•˜์ง€๋งŒ, ๋” ํ˜„๋Œ€์ ์ด๊ณ  ๋น ๋ฅด๋ฉฐ ๋” ์‰ฝ๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค๋ฉด; ์„ฑ๋Šฅ์ด ์ ˆ๋Œ€ ์ตœ์šฐ์„  ์ˆœ์œ„๋ผ๋ฉด.

Solid ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React์™€ React DOM. SolidStart๋Š” ํ–ฅํ›„ Next๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ๋Š” ์—ฌ์ „ํžˆ ๋ฒ ํƒ€ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Fresh

Fresh๋Š” Deno์—์„œ ๋นŒ๋“œ๋œ ์„ฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„ ๋ Œ๋”๋ง ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์˜ ๋‹ค๋ฅธ ํ•ญ๋ชฉ๋ณด๋‹ค ์•ฝ๊ฐ„ ์ Š์ง€๋งŒ, ์—ฃ์ง€์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ JS, ์„ฌ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์•ฝ์†์ด ๊ฐ€๋“ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ฝ”๋“œ๋Š” ๋” ๋น ๋ฅด๊ณ , ๋” ์•ˆ์ „ํ•˜๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ TypeScript์ด๋ฉฐ, ์ „ํ†ต์ ์ธ Node๋ณด๋‹ค Deno๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: ๋” ์‰ฌ์šด, ์ผ๊ธ‰ ๋ฆฐํŒ…, ํ…Œ์ŠคํŠธ ๋ฐ ์ฝ”๋“œ ํฌ๋งทํŒ… ์„ค์ •).

๋ชจ๋“  Fresh ์ปดํฌ๋„ŒํŠธ๋Š” ์ •์ ์œผ๋กœ ๋ Œ๋”๋ง๋˜์–ด ์‘๋‹ต ์‹œ๊ฐ„์— HTML๋กœ ์ œ๊ณต๋˜๋ฉฐ, JavaScript๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ๋ Œ๋”๋ง๋˜๋Š” โ€œ์„ฌโ€์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋Œ€๋กœ ํ˜ผํ•ฉํ•˜๊ณ  ์ผ์น˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Deno์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ „ ์„ธ๊ณ„ ์–ด๋””์„œ๋‚˜ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋กœ๋“œ๋˜๋Š” ๋งค์šฐ ๋น ๋ฅธ ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Fresh๋Š” Preact๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋น ๋ฅด๋ฉฐ, React์—์„œ ์˜ค๋Š” ๊ฒฝ์šฐ์—๋„ ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ํ•œ ๋ฒˆ: Deno์—์„œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค.

Fresh ์ถ”์ฒœ ์ด์œ :

ํด๋ผ์šฐ๋“œ์—์„œ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์•ฑ ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค๊ณ , ์ตœ์†Œํ•œ์˜ JavaScript๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ตœ์‹  ๊ธฐ์ˆ ๋กœ ๋นŒ๋“œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด.

Fresh ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

Remix๋Š” React ์„ธ๊ณ„์—์„œ Fresh์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Astro

Astro๋Š” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ์ฐจ์„ธ๋Œ€ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์—์„œ ๊ฐ€์žฅ ์ƒˆ๋กœ์šด ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์ด์ง€๋งŒ, ์ด๋ฏธ ๋งค์šฐ ์•ˆ์ •์ ์ธ 1.0 ๋ฆด๋ฆฌ์Šค ์ƒํƒœ์ด๋ฉฐ, ๋„๋ฆฌ ์นญ์ฐฌ๊ณผ ์ฑ„ํƒ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์ฃผ๋กœ ์ƒˆ๋กœ์šด ์„ธ๋Œ€์˜ SSG๋กœ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ (React ํŒฌ๋“ค์—๊ฒŒ: JSX์™€ MDX๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค), Astro๋Š” ์ด์ œ ๋™์ , ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ธฐ๋Šฅ๋„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Gatsby๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด Astro๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์ง„์ •ํ•œ ํ‚ฌ๋Ÿฌ ๊ธฐ๋Šฅ์€: Astro๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ JavaScript๋ฅผ ์ „ํ˜€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Astro๋Š” ์›ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. React, Vue, Svelte ๋“ฑ์œผ๋กœ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Astro ์ถ”์ฒœ ์ด์œ :

๋Œ€๋ถ€๋ถ„ ์ •์ ์ด๊ฑฐ๋‚˜ ์ฝ˜ํ…์ธ /Markdown ๊ธฐ๋ฐ˜ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์ด๋‚˜ ๋กœ์ง์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ JavaScript๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด; ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด.

Astro ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

Gatsby ๋˜๋Š” ์œ ์‚ฌํ•œ React ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ  ๋„๊ตฌ.

Preact

React ์˜์—ญ์— ์‚ด๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฏธ Preact์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. React์˜ ํ›จ์”ฌ ์Šฌ๋ฆผํ•˜๊ณ  ๋น ๋ฅธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์›๋ž˜๋Š” React์˜ ๋Œ€์ฒดํ’ˆ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” React๊ฐ€ ๊ฐ€์ง€์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ ์šฐ์ˆ˜ํ•œ ๊ธฐ๋Šฅ (์˜ˆ: Signals)์„ ์–ป๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Preact ์ถ”์ฒœ ์ด์œ :

๊ธฐ๋ณธ์ ์œผ๋กœ React๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด.

Preact ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React. (์‚ฌ์‹ค, ์•ž์— P๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. P๋Š” ์„ฑ๋Šฅ(Performance)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฒƒ์ด๋ฉฐ, Preact ํŒ€์„ ๋น„๋‚œํ•˜์ง€ ๋งˆ์„ธ์š”.)

Qwik

Qwik์€ React์™€ ์œ ์‚ฌํ•œ ์ฝ”๋“œ(JSX)๋ฅผ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ด๊ฒƒ์„ โ€œํ•˜์ด๋“œ๋ ˆ์ด์…˜โ€์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , JavaScript๋ฅผ DOM์— ์ง๋ ฌํ™”ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Qwik์€ ์ด ๋ชฉ๋ก์—์„œ ๋” ๊นŠ์€ ์„ ํƒ์ด์ง€๋งŒ, ๊ฐ€๋Šฅํ•œ ํ•œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋งŽ์€ ์ƒํ˜ธ์ž‘์šฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณ ๋ คํ•  ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Qwik ์ถ”์ฒœ ์ด์œ :

๋ธŒ๋ผ์šฐ์ €๋กœ ๋งŽ์€ JavaScript๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ด๋ฅผ ๋” ์„ฑ๋Šฅ ๋†’๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•œ๋‹ค๋ฉด.

Qwik ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React ์ž์ฒด๋ฅผ ๋Œ€์ฒดํ•˜๋ฉฐ, ์—ฃ์ง€์—์„œ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์›น ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๊นŠ์ด ๋‹ค๋ฃจ์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์†”์งํžˆ, ๋‚˜๋Š” ๊ทธ ๋ถ„์•ผ์˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋…๋ฆฝ์ ์ธ ์›น ์ปดํฌ๋„ŒํŠธ๋‚˜ ์›น ์ปดํฌ๋„ŒํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์•„์„œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ํŠน์ • ํ”„๋กœ์ ํŠธ ํด๋ž˜์Šค๋Š” Lit, Stencil, Polymer ๋“ฑ์˜ ์›น ์ปดํฌ๋„ŒํŠธ ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ โ€œ์ „์šฉโ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹ , ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹ค์ œ ์›น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ, ์ด๋Š” ๋ชจ๋“  ์›น ํ”„๋กœ์ ํŠธ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์›น ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”์ฒœ ์ด์œ :

๋™์ผํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์—์„œ ์žฌ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜, ํ”„๋ ˆ์ž„์›Œํฌ ๋ณ€๊ฒฝ์— ๋Œ€๋น„ํ•ด ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ด๊ณ  ์‹ถ๊ฑฐ๋‚˜, ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๊ณ  ์›น ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ์˜ ๊ฑฐ๋ž˜ ๋น„์šฉ์„ ๊ฐ์ˆ˜ํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๋ฉด.

์›น ์ปดํฌ๋„ŒํŠธ ๋Œ€์ฒด ๊ฐ€๋Šฅ ํ•ญ๋ชฉ:

React, ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ๋ถ€๋ถ„์ ์œผ๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Epilogue

์†”์งํžˆ ๋งํ•˜๋ฉด, ์ด ๊ธ€์€ ์ž‘๋…„์˜ ๊ธ€ โ€œReact์˜ ์ž๊ธฐ ์„ฑ์ทจ ์˜ˆ์–ธโ€๊ณผ ๋งค์šฐ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋™์ผํ•œ ์˜์—ญ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฉฐ, ๋™์ผํ•œ ์ฃผ์žฅ์„ ํŽผ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (๋‹ค๋งŒ, ์ƒˆ๋กญ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ด€์ ์—์„œ ๋งํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค).

์ž๊ธฐ ๋ฐ˜๋ณต์„ ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ๋ถ„๋ช…ํžˆ ์ด ์ฃผ์ œ๋ฅผ ๋งŽ์ด ์ƒ๊ฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹คโ€”์•„๋งˆ๋„ ๊ทธ ๊ธ€์ด ๊ฒŒ์‹œ๋œ ์‹œ์ ๊ณผ ๋งž๋ฌผ๋ ค React๋ฅผ ํ’€ํƒ€์ž„์œผ๋กœ ์ž‘์—…ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

React์˜ ์ธ๊ธฐ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ทธ ๋„ˆ๋จธ๋ฅผ ๋ณด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ์ ์  ๋” ์ปค์กŒ์Šต๋‹ˆ๋‹ค. React๊ฐ€ ์ตœ๊ณ ์˜ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ์ตœ๊ณ ์˜ ๊ฒƒ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ์ € ์ถฉ๋ถ„ํžˆ ์ข‹์€ ๊ฒƒ์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์šฐ๋ฆฌ๋Š” ์ธ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฐ์ •์—๋Š” ๋งŽ์€ ๊ฐœ์ธ์ , ๊ฐ์ •์ , ๋น„ํ•ฉ๋ฆฌ์  ์ด์œ ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐ”์ฉ๋‹ˆ๋‹ค.)

ํ”„๋ก ํŠธ์—”๋“œ ์„ธ๊ณ„์—์„œ๋Š” ๊ธฐ์ˆ ์„ ์ ์ง„์ ์œผ๋กœ ์ฑ„ํƒํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋„์•ฝ์ ์œผ๋กœ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. React ๋ถ์ด ์ผ์–ด๋‚œ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๊ทธ ๋‹น์‹œ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๊ตฌ์‹ ๊ธฐ์ˆ ์— ๊ฐ‡ํ˜€ ์žˆ์—ˆ๊ณ , ๋” ๋‚˜์€ ๊ฒƒ์„ ์ฐพ๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์— ์ ์ง„์ ์œผ๋กœ ๋‚˜์•„๊ฐ€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํฐ ๋„์•ฝ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ ํ˜•์ ์œผ๋กœ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ํ™”์‚ดํ‘œ๊ฐ€ ๊ทธ๋ ค์ง„ โ€˜์ง„๋ณดโ€™๋ผ๋Š” ์„  ์œ„์— โ€˜์ฑ„ํƒโ€™์ด๋ผ๋Š” ๋ผ๋ฒจ์ด ๋ถ™์€ ๋ช‡ ๊ฐœ์˜ ์•„์น˜ํ˜• ๋„์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋„์•ฝ์€ ์ง์„  โ€˜์ง„๋ณดโ€™ ์„ ์˜ ๊ฐ€์žฅ ๋จผ ๋์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

YDx4ItW.png

๋ฌธ์ œ๋Š”: ์šฐ๋ฆฌ๋Š” ๊ทธ ๋„์•ฝ์„ ํ•œ ์ดํ›„๋กœ ๋Œ€๋ถ€๋ถ„ ๊ฐ™์€ ์ž๋ฆฌ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š”: ๋˜ ๋‹ค๋ฅธ ๋„์•ฝ์ด ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ผ์ง€, ์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” React๊ฐ€ ์‹ค์ œ๋กœ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ๋Š๋ผ๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งˆ์น˜ ๊ทธ ์˜›๋‚  jQuery์—์„œ ๋Š๊ผˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ์š”. ๊ฒฐ๊ตญ, ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๋•Œ๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ด ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋ฌด์—‡์ผ๊นŒ์š”? ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์›น ํ”Œ๋žซํผ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ•„์š” ์—†์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์œ„์— ์–ธ๊ธ‰ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์•„์ง ๋ณด์ง€ ๋ชปํ•œ ๋ฌด์–ธ๊ฐ€์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ํ•˜๋‚˜์˜ ๊ฒƒ์ด ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ๋‹ค์–‘ํ•œ ๋„๊ตฌ๊ฐ€ ์กด์žฌํ•˜๊ณ  ํ•˜๋‚˜์˜ ํ‘œ์ค€์— ์ง‘์ฐฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์œ„์˜ ๋ชจ๋“  ์˜ต์…˜ ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ: ์šฐ๋ฆฌ๋Š” ๋ฐ”์œ ์ž‘์€ ์›์ˆญ์ด๋“ค์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.)

ํ•˜์ง€๋งŒ React์™€ ๊ทธ ์ƒˆ๋กœ์šด ๊ฒƒ ์‚ฌ์ด์˜ ์ฐจ์ด๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ ์  ์ปค์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋งค์ผ์ด ๋‹น์‹ ์ด ๋†“์นœ ๊ฒƒ์„ ํƒ์ƒ‰ํ•˜๊ธฐ์— ์ด์ „๋ณด๋‹ค ๋” ์ข‹์€ ๋‚ ์ž…๋‹ˆ๋‹ค.

Happy listening.