React.js์ Next.js ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ์ค, ์ฒ์ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ ๋ ๊ณ ๋ฏผํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ๋ํด ๋ค์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
๊ณผ๊ฑฐ์๋ ์ด๋ค์ ์์ฑ๋ ๋ก๋ด๊ณผ ์กฐ๋ฆฝํ ๋ก๋ด์ ๋น์ ํ๊ณค ํ์ง๋ง, ์ง๊ธ์ ๋ค๋ฅด๊ฒ ์ ๊ทผํด๋ณด๋ ค ํฉ๋๋ค.
์์ํ๊ธฐ์ ์์ ๊ธ ์ ๋ชฉ๊ณผ ๊ฐ์ด React.js์ ๋ํด "๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ ์ค ๋ฌด์์ธ์ง" ํผ๋ํ๋ ๋ถ๋ค์ด ๊ณ์ค๊น์?
๊ทธ๋ ๋ค๋ฉด ๊ณต์ ๋ฌธ์๋ถํฐ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค!
๊ณต์ ๋ฌธ์์ ๋ฉ์ธ ํ์ด์ง์์์กฐ์ฐจ "์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ" ๋ผ๋ ๋ฌธ๊ตฌ๋ก ์ฐ๋ฆฌ๋ฅผ ํ์ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์๋ง์ ์ฌ๋๋ค์ ๋๋์ฒด ๋ฌด์ ๋๋ฌธ์ ํผ๋ํ๊ฒ ๋ ๊ฑธ๊น์?
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ๋ํด ๊ฐ๋ตํ ์ค๋ช ๋๋ฆฐ ํ "React.js๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ๊น?" ๋ชฉ์ฐจ์์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋?
๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ฒ์ ์ ์ฝ๊ฒ ์๋์ ๋ด์ฉ๋ค์ ํ์ธํด ๋ณด์ค ์ ์์ต๋๋ค.
"ํน์ ํ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ฏธ๋ฆฌ ์์ฑ๋ ์ฝ๋์ ์งํฉ"
"๊ฐ๋ฐ์๊ฐ ํ์์ ๋ฐ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก, ๋๊ตฌ์ฒ๋ผ ํ์ํ ๋ถ๋ถ๋ง ์ ํ์ ์ผ๋ก ์ฌ์ฉ"
์ ๋ฆฌํด ๋ณด์๋ฉด, ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค ๋ ์ ์ฉํ ๋๊ตฌ ๊ฐ์ ์น๊ตฌ๋ค์.
๋ง์น ๋ฏธ์ฉ์ค์์ ์ฐ๋ ๋๊ตฌ๋ ๊ณต์ฌ ํ์ฅ์์ ์ฐ๋ ๋๊ตฌ์ฒ๋ผ, ํน์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด ์ค๋๋ค.
๋๋ผ์ด๊ธฐ๋ก ๋จธ๋ฆฌ๋ฅผ ๋ง๋ฆด ํ์๋ ์์ง๋ง, ํ์ํ๋ฉด ์ฌ์ฉํ ์ ์๋ ๊ฒ์ฒ๋ผ ์ด๋ฐ ๋๊ตฌ๋ค์ ํ์์ ๋ง๊ฒ ๊ณจ๋ผ ์ธ ์ ์์ต๋๋ค.
ํ๋ ์์ํฌ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ๋ ํฐ ๋จ์์ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์์์ ์์๋ฅผ ๊ฐ์ ธ์ ๋ณด๊ฒ ์ต๋๋ค.
๋ฏธ์ฉ์ค์์ ๋จธ๋ฆฌ๋ฅผ ๋ง๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ค ์ ํด์ฃผ๊ณ , ๊ทธ ์์์ ์ ํด์ง ๋ฐฉ๋ฒ์ ์ด์ฉํด ๋จธ๋ฆฌ๋ฅผ ๋ง๋ฆฌ๋(ํ์ํ ๋ก์ง์ ๊ตฌํํ๋) ๋ฐฉ์์ ๋๋ค.
๊ทธ๋์ Next.js๋ React.js๋ฅผ ๋ฒ ์ด์ค๋ก ํด ์น์ ๋ง๋๋๋ฐ ํ์ํ ์ ์ฒด์ ์ธ ํด๊ฒฐ์ฑ ์ ์ ๊ณตํด ์ค๋๋ค!
React.js์ Next.js์ ๊ด๊ณ
- React.js๋ UI๋ฅผ ์ ์ธ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ํ์ํ ๊ธฐ๋ฅ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- Next.js๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ์ ์ฒด์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํ๋ฉฐ, React๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ๊ธฐ๋ฅ์ ํฌํจํ ํ๋ ์์ํฌ์ ๋๋ค.
์ง๊ธ๊น์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ์ React,js, Next.js์ ๋ํด ๊ฐ๋ตํ ์ค๋ช ๋๋ ธ์ต๋๋ค.
์ด์ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค!
React.js๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ๊น?
์ ๋ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ํ์ต์์ "ํ๋ ์์ํฌ ์๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ | ํ๋์ธ์ค์ฝ ์คํธ๋ผ์ธจ๋ก" ๊ต์ฌ์,
"ํ๋ ์์ํฌ๋ ์ฝ๋๋ฅผ ํธ์ถํ๊ณ ์ฝ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ๋ค"๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๊ฐ์ฅ ์๋ฟ์์ต๋๋ค.
๊ต์ฌ๋ฅผ ํ์ตํ๋ฉฐ ํด๋น ๋ฌธ๊ตฌ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ์ฐจ์ด์ ๋ํด ์ ๋ง ์ ์ค๋ช ํ๊ณ ์๋ค๋ ์๊ฐ์ด ๋ค์์ด์.
๋ฐ์ทํ ๋ฌธ์ฅ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ์ ๋ฆฌํ์๋ฉด,
- ํ๋ ์์ํฌ๋ ์ฝ๋๋ฅผ ํธ์ถํ์ฌ ์คํ ํ๋ฆ์ ์ ์ดํฉ๋๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ํ์ํ ๊ธฐ๋ฅ์ ํธ์ถํ์ฌ ์ฌ์ฉํ๋ ๋๊ตฌ์ ๋๋ค.
์ด๋ ๊ฒ ๋๋ ๋ณผ ์ ์๊ฒ ๋ค์!
์ฌ๊ธฐ์ ์ฝ๋๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฐ์ทํ ๋ฌธ์ฅ์ ๊ธฐ๋ฐ์ผ๋ก ๊ธ์ ์จ ๋ด๋ ค๊ฐ ์์ ์ด์์.
์ฐธ๊ณ ํ์ฌ ์ฝ์ผ์ ๋ค๋ฉด ์ข ๋ ๋์์ด ๋์ค ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค!
๋ค์ ๊ฐ์กฐํ์๋ฉด React.js๋ ๊ณต์์ ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ์๋ฉ๋๋ค.
์ด๋ React๊ฐ UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ฅผ ํฌํจํ ๋ง์ ๊ฐ๋ฐ์๋ค์ React๋ฅผ ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ด์ ๊ฐ ๋ญ๊น์?
์ด๋ ๋ฆฌ์กํธ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ์ ๊ฐ๋ ฅํ ์ํฅ๋ ฅ ๋๋ฌธ์
๋๋ค.
React๋ UI๋ฅผ ๋ ๋๋งํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ํ์ง๋ง, ์ํ๊ณ์ ๋ฐ์ ๊ณผ ํจ๊ป ๋ง์ ๊ฐ๋ฐ์๋ค์ด React๋ฅผ ์ด์ฉํด ํ๋ ์์ํฌ์ฒ๋ผ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์กฐํํ๊ณ ์์ต๋๋ค.
์ด์ ์ง๊ธ๊น์ง์ ๋ด์ฉ์ ํ ๋๋ก ์ค์ ๊ฐ๋ฐ๊ณผ์ ์ ์์๋ก ๋ค์ด ๋ค์ ํ๋ฒ ์ ๋ฆฌํด ๋ณด๋๋ก ํ ๊ฒ์!
์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ๋ ๊น?
ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ ๋ฐฉ์๊ณผ ๋ชฉ์ ์ ๋ช ํํ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
React๋ฅผ ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ฉด ๋ ๋์ ์ ํ์ ํ ์ ์์ต๋๋ค.
React๋ฅผ ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ ๋
์ปค๋ฎค๋ํฐ์ ์ํ๊ณ์ ์ํฅ๋ ฅ
- ๋ฆฌ์กํธ๋ ์ด๊ธฐ ์ค์ ๊ณผ ๊ตฌ์กฐ๊ฐ ์ด๋ฏธ ์กํ์๋ ์ํ์์ ์์ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ ์ด๋ฅผ ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, npm create-react-app์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ์ ํด์ง ๊ตฌ์กฐ ์์์ ๊ฐ๋ฐ์ ์งํํ๊ฒ ๋ฉ๋๋ค.
์ปดํฌ๋ํธ ๋ด์ ๋ค์ํ ๊ธฐ๋ฅ
- ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ ๋ ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ, ๋น์ฆ๋์ค ๋ก์ง, API ํธ์ถ ๋ฑ์ ๋ชจ๋ ํฌํจ์ํต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฆฌ์กํธ๊ฐ ์ฝ๋๋ฅผ ํธ์ถํ๋ ํํ๋ก ๋์ํ๊ฒ ํ์ฌ ํ๋ ์์ํฌ์ฒ๋ผ ๋๊ปด์ง๊ฒ ๋ง๋ญ๋๋ค.
์ฆ, React ์ปดํฌ๋ํธ๊ฐ ๋ชจ๋ ์คํ ํ๋ฆ์ ์ ์ดํ๋ฉฐ, ๊ฐํ ๊ฒฐํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ฅ์ :
- ๋น ๋ฅธ ๊ฐ๋ฐ ์๋: ๋น์ฆ๋์ค ๋ก์ง์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๋ด๋ถ์ ํตํฉํ์ฌ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ตฌ์กฐ๊ฐ ๋ช ํํ๊ณ ์ผ๊ด์ฑ์ด ์์ต๋๋ค.
๋จ์ :
- ์์กด์ฑ ์ฆ๊ฐ: ๋น์ฆ๋์ค ๋ก์ง์ด ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์์ด, ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋์ฒดํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์ด๋ ํฅํ ๋ง์ด๊ทธ๋ ์ด์ ์ ํฐ ๋น์ฉ์ ์ด๋ํ ์ ์์ต๋๋ค.
React๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ์ฌ์ฉํ ๋
๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ ๋๋ง์ ๋ถ๋ฆฌํ๊ณ , ์ด ๋์ ์ฐ๊ฒฐํ๋ ์ธํฐํ์ด์ค๋ฅผ ๋๋ ๋ฐฉ๋ฒ
์ํ ๊ด๋ฆฌ์ UI ์ ๋ฐ์ดํธ
- ๋ฆฌ์กํธ์์ setState๋ฅผ ํธ์ถํ๋ฉด UI๊ฐ ๋ฆฌ๋ ๋๋ง ๋ฉ๋๋ค. ์ด ์ ์ ํ์ฉํ์ฌ, setState๋ฅผ UI๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์๋ก ๊ฐ์ฃผํ๊ณ , UI ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ์์ ์๋ง setState๋ฅผ ํธ์ถํ๊ฒ ํฉ๋๋ค.
- ์ด๋ฐ์์ผ๋ก ๋น์ฆ๋์ค ๋ก์ง์ ๋ฆฌ์กํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋๋ก ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฆฌ์กํธ๋ ์ค๋ก์ง UI๋ฅผ ๋ ๋๋งํ๋ ์ญํ ๋ง ํ๊ฒ ๋๋ฉฐ ์ํ ๊ด๋ฆฌ๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค.
๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ
- ๋น์ฆ๋์ค ๋ก์ง์ ํจ์ดํ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํ์ฌ ๋ฆฌ์กํธ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋๋ก ํฉ๋๋ค.
- ์ด๋ฅผ ํตํด ๋น์ฆ๋์ค ๋ก์ง์ UI์ ๋ณ๊ฐ๋ก ์๋ํ๊ฒ ๋ฉ๋๋ค.
UI ๋ ๋๋ง์๋ง ์ง์ค
- ๋ฆฌ์กํธ๋ฅผ ์์ UI ๋ ๋๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ๋ ค๋ฉด ๋น์ฆ๋์ค ๋ก์ง์ ๋ฆฌ์กํธ ์ธ๋ถ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋์ค ๋ฑ์ ์ฝ๋๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๋ฆฌ์กํธ๋ ์ค์ง ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ ๋๋งํ๋ ์ญํ ๋ง ์ํํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๋ ํด๋์ค ๋ฑ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ์์ฑํ์ฌ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ํ ๊ด๋ฆฌ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํฉ๋๋ค.
์ธํฐํ์ด์ค๋ฅผ ํตํ ํต์
- ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ ํต์ (์ฐ๊ฒฐ)์ ๋ด๋นํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ์ฌ, ์ํ ๋ณ๊ฒฝ์ ๋ฆฌ์กํธ์ ์ ๋ฌํฉ๋๋ค.
- ์ด ์ธํฐํ์ด์ค๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ํ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ , ํ์ํ ์์ ์ ๋ฆฌ์กํธ์ setState๋ฅผ ํธ์ถํ์ฌ UI๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ฐ๋จํ ๊ตฌํ ์์
/**
* ๋น์ฆ๋์ค ๋ก์ง - ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋์ค
*/
class BusinessLogic {
constructor() {
this.data = null;
this.listeners = [];
}
setData(newData) {
this.data = newData;
this.notifyListeners();
}
getData() {
return this.data;
}
addListener(listener) {
this.listeners.push(listener);
}
notifyListeners() {
this.listeners.forEach(listener => listener(this.data));
}
}
/**
* ๋ฆฌ์กํธ ์ปดํฌ๋ํธ - UI ๋ ๋๋ง
*/
import React, { useState, useEffect } from 'react';
const TestComp = ({ businessLogic }) => {
const [data, setData] = useState(businessLogic.getData());
useEffect(() => {
const handleDataChange = (newData) => {
setData(newData);
};
businessLogic.addListener(handleDataChange);
return () => {
businessLogic.removeListener(handleDataChange);
};
}, [businessLogic]);
return (
<div>
<h1>{data}</h1>
</div>
);
};
/**
* ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ์ฌ์ฉ
*/
const logic = new BusinessLogic();
logic.setData("์ปคํผ ๋ง์๊ณ ์ถ๋ค..");
const App = () => (
<TestComp businessLogic={logic} />
);
export default App;
์ฅ์
- ๋ง์ฝ ๋ฆฌ์กํธ๋ฅผ ์์ฅ์์ ๋์ด์ ์ํ์ง ์๊ฒ ๋๊ฑฐ๋ ์๋ก์ด UI ๋ ๋๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: ์ค๋ฒจํธ)๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ๊ตฌํํ๋ค๋ฉด ์ ํ์ด ๋งค์ฐ ์ฝ์ต๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ด ๋ฆฌ์กํธ์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋จ์
- ์ค์ ์ฌ๋ก ๋๋ฌพ: ๋ง์ ํ์ฌ๋ค์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ๊ตฌํํ๋ ๋ฐฉ์์ ์ฑํํ์ง ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ๋น์ฉ๊ณผ ์๊ฐ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋์ ๊ฐ๋ฐ ๋น์ฉ: ๋น์ฆ๋์ค ๋ก์ง๊ณผ UI๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ชจ๋ ๊ฒ์ ์ธํฐํ์ด์ค๋ก ๊ด๋ฆฌํ๋ฉด ๊ฐ๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด๊ธฐ ๋ฐ์นญ์ด ์ด๋ ค์์ง ์ ์์ต๋๋ค.
์๋์์ ์ข ๋ ์์ธํ ์ ์ ์๊ฐ์ ํ์ด๋ณด๋ ค ํฉ๋๋ค.
์์ ์ค๋ณต๋๋ ๋ด์ฉ์ด ์์ง๋ง ํ๋ฆ์ ์ํด ๊ทธ๋๋ก ์ ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค!
๊ธฐ์ ๋ถ์ฑ์ ๊ทธ ๊ด๋ฆฌ
์ ๋ ๊ธฐ์ ๋ถ์ฑ์ ๋ํด ๊ฐ๋ฐ ๊ณผ์ ์์ ๋จ๊ธฐ์ ์ธ ์ด์ต์ ์ํด ์ฅ๊ธฐ์ ์ธ ์ ์ง๋ณด์ ๋น์ฉ์ ์ฆ๊ฐ์ํค๋ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ์ ๋ถ์ฑ์ ๊ฐ๋ ์ "React.js์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ ๋ฐฉ์์ ๊ฒฐ์ "์ ๋์์ ์ค ๊ฒ์ด๋ผ ์๊ฐํด์!
๊ทธ๋์ ์ง๊ธ๋ถํฐ React๋ฅผ ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ๋น๊ตํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ๊ธฐ์ ๋ถ์ฑ
- ๊ฐํ ๊ฒฐํฉ์ผ๋ก ์ธํด ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ํ์ด ์ด๋ ค์์ง๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ด React ์ปดํฌ๋ํธ์ ๊น์ด ๊ฒฐํฉ๋์ด ์ ์ง๋ณด์๊ฐ ์ด๋ ต์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฒ๋ผ ์ฌ์ฉํ ๋์ ๊ธฐ์ ๋ถ์ฑ
- ์ด๊ธฐ ๊ฐ๋ฐ ๋น์ฉ์ด ๋์ ์ ์์ต๋๋ค.
- ๊ฐ ๊ธฐ๋ฅ์ด ๋ถ๋ฆฌ๋์ด ์์ด ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค.
๊ธฐ์ ๋ถ์ฑ ๊ด๋ฆฌ์ ์ค์์ฑ
๊ธฐ์ ๋ถ์ฑ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ค์ํฉ๋๋ค.
ํ๋ก์ ํธ์ ์๊ตฌ์ฌํญ๊ณผ ์ผ์ ์ ๋ง๊ฒ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ ์กฐ์ ํ๋ฉด, ์ฅ๊ธฐ์ ์ผ๋ก ๋ ๋์ ์ ์ง๋ณด์์ ํ์ฅ์ฑ์ ํ๋ณดํ ์ ์์ต๋๋ค.
๋ฌด์๋ณด๋ค ์ ๋ ๊ธฐ์ ๋ถ์ฑ๊ฐ ์๊ฒจ๋ ์ฒญ์ฐ๋ง ์ํ๋ฉด ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ ๋ด๋ ๊ฒ๋ ์ ๋ ์ค์ํ ๋ฅ๋ ฅ์ด๋ผ๊ณ ๋ณด๊ณ ์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ด์ ์ฝ๋๋ง ์์ฑํ๋ ์์ ๊ฐ๋ ์๋๋๊น์.
๊ทธ๋ฌ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฌ์ฉํ ๋ ๋จ์ํ๊ฒ ์ ์๋ ํน์ ๋จ์ด๋ ๋ฌธ์ฅ๋ง์ ๋ฐ์๋ค์ด๋ ๊ฒ ์๋๋ผ ์๋์ ์ผ๋ก ์๊ฐํ๋ ์ต๊ด์ ๋ค์ผ ์ ์๋ค๋ฉด ๋น ๋ฅธ ์ฑ์ฅ์ ์ ๋ฆฌํ์ง ์์๊น ์๊ฐํฉ๋๋ค.
๊ฒฐ๋ก
React๋ ๊ณต์์ ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง, ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํ๋ ์์ํฌ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ํน์ฑ๊ณผ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ React๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๊ธฐ์ ๋ถ์ฑ๋ฅผ ๊ด๋ฆฌํ๋ฉด์, ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ ์ ์ ํ๊ฒ ํ์ฉํ๋ฉด ์ฑ๊ณต์ ์ธ ๊ฐ๋ฐ์ ์ด๋ฃฐ ์ ์์ต๋๋ค.
์๋์ ์ผ๋ก ์ฌ๊ณ ํ๊ณ , ์ํฉ์ ๋ง๋ ์ต์ ์ ์ ํ์ ํ๋ ์ต๊ด์ ๊ธฐ๋ฅด๋ฉด ๋์ฑ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ ์ ์์ ๊ฒ์ ๋๋ค!
์ฌ๋ฌ๋ถ๋ค๊ป์ ์ด ๊ธ์ ์ฝ๊ณ ๋ ํ์๋, ๊ณ์ ํ์ตํ๋ฉฐ ๋ค์ํ ์๊ฒฌ์ ์ ํ๊ฒ ๋์๊ฒ ์ฃ ?!
์์ ๋ค๋ง์ ๋จ์ด๋ก ์ค๋ช ํ ์ ์๊ฒ ๋๊ณ , ๊ฐ๋ฐ ๋ฐฉํฅ์ ๋ํ ๊ธธ์ก์ด ์ญํ ์ ๋์์ด ๋ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ด๋ง ๋ง์น๊ฒ ์ต๋๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Chrome ๋ธ๋ผ์ฐ์ ๋ ๋๋ง - Critical Path ์ด์ ๊ณผ์ ์? (0) | 2024.03.20 |
---|