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 ํํ์ ๋๊ตฌ๊ฐ ์ ์ฉํ ์ ์์ง๋ง, ๋์ธ ๊ฐ์ง ๋ค๋ฅธ ๋๊ตฌ๊ฐ ํ๋์ ์ค์์ค ๊ตฐ์ฉ ์นผ๋ณด๋ค ๋์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๊น, ๋ ๊ฐ์ง ์ฃผ์์ฌํญ์ด ์์ต๋๋ค:
-
์ฌ๊ธฐ์ ์ธ๊ธํ ๋ชจ๋ ์ต์ ํ๋ ์์ํฌ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ง ์ต์ ์ ๋์ดํ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ๋ฐฐ์ฐ๊ฑฐ๋ ์ฌ์ฉํ๋ ๊ฒ์ ๊ธฐ๋ํ์ง ์์ต๋๋ค. ํ๋๋ฅผ ์ ํํด์ผ ํ๋ค๋ฉด, Svelte๋ Vue๋ฅผ ์ถ์ฒํฉ๋๋ค. ํ์ง๋ง ๋ชจ๋ ๊ฒ์ ๋ค๋ฃจ๊ธฐ ์ํด ๋์ดํ ๊ฒ์์ ์์๋์ธ์.
-
๋ชจ๋ ์ต์ ์ ๋์ดํ์ง๋ ์์์ต๋๋ค. 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 ๋ถ์ด ์ผ์ด๋ ์ด์ ์ค ํ๋๋ ๊ทธ ๋น์ ๋ชจ๋ ์ฌ๋๋ค์ด ๊ตฌ์ ๊ธฐ์ ์ ๊ฐํ ์์๊ณ , ๋ ๋์ ๊ฒ์ ์ฐพ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ฒ์ ์ ์ง์ ์ผ๋ก ๋์๊ฐ์ง ์์์ต๋๋ค. ํฐ ๋์ฝ์ ํ์ต๋๋ค.
์ ํ์ ์ผ๋ก ์์ผ๋ก ๋์๊ฐ๋ ํ์ดํ๊ฐ ๊ทธ๋ ค์ง โ์ง๋ณดโ๋ผ๋ ์ ์์ โ์ฑํโ์ด๋ผ๋ ๋ผ๋ฒจ์ด ๋ถ์ ๋ช ๊ฐ์ ์์นํ ๋์ฝ์ด ์์ต๋๋ค. ๋ง์ง๋ง ๋์ฝ์ ์ง์ โ์ง๋ณดโ ์ ์ ๊ฐ์ฅ ๋จผ ๋์ ๋๋ฌํ์ง ๋ชปํฉ๋๋ค.
๋ฌธ์ ๋: ์ฐ๋ฆฌ๋ ๊ทธ ๋์ฝ์ ํ ์ดํ๋ก ๋๋ถ๋ถ ๊ฐ์ ์๋ฆฌ์ ๋จธ๋ฌผ๋ฌ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ ์๊ฐ์๋: ๋ ๋ค๋ฅธ ๋์ฝ์ด ๊ฐ๊น์์ง๊ณ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ๋ฌด์์ผ์ง, ์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ React๊ฐ ์ค์ ๋ก ํด๊ฒฐํ์ง ๋ชปํ๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋๋ผ๊ธฐ ์์ํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์น ๊ทธ ์๋ jQuery์์ ๋๊ผ๋ ๊ฒ์ฒ๋ผ์. ๊ฒฐ๊ตญ, ์์ผ๋ก ๋์๊ฐ ๋๊ฐ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ด ๋ช ํํด์ง ๊ฒ์ ๋๋ค.
๊ทธ ์๋ก์ด ๊ฒ์ด ๋ฌด์์ผ๊น์? ๋ชจ๋ฆ ๋๋ค. ์๋ง๋ ์น ํ๋ซํผ์ผ ๊ฒ์ ๋๋ค. ํ๋ ์์ํฌ๊ฐ ํ์ ์์ ์๋ ์์ต๋๋ค. ์๋ง๋ ์์ ์ธ๊ธํ ํ๋ ์์ํฌ์ผ ๊ฒ์ ๋๋ค. ์๋๋ฉด ์์ง ๋ณด์ง ๋ชปํ ๋ฌด์ธ๊ฐ์ผ ๊ฒ์ ๋๋ค. ์ด์ฉ๋ฉด ํ๋์ ๊ฒ์ด ์๋ ๊ฒ์ ๋๋ค. ๋ ๋ค์ํ ๋๊ตฌ๊ฐ ์กด์ฌํ๊ณ ํ๋์ ํ์ค์ ์ง์ฐฉํ์ง ์์ ๊ฒ์ ๋๋ค. (์์ ๋ชจ๋ ์ต์ ์ค์์ ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๊ณ ์๊ฐํ์ง๋ง, ๋ค์ ๋งํ์ง๋ง: ์ฐ๋ฆฌ๋ ๋ฐ์ ์์ ์์ญ์ด๋ค์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ ์ข์ํฉ๋๋ค.)
ํ์ง๋ง React์ ๊ทธ ์๋ก์ด ๊ฒ ์ฌ์ด์ ์ฐจ์ด๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ ์ปค์ง ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋งค์ผ์ด ๋น์ ์ด ๋์น ๊ฒ์ ํ์ํ๊ธฐ์ ์ด์ ๋ณด๋ค ๋ ์ข์ ๋ ์ ๋๋ค.
Happy listening.