๐จ 1๋จ๊ณ : ํ๋ก ํธ์๋ ๊ธฐ์ ์คํ ์ค๊ณ - 100-hours-a-week/7-team-ddb-wiki GitHub Wiki
์์ฑ์ผ | 2024-04-20 |
---|---|
๋ฒ์ | 1.0 |
์์ฑ์ | suzy.kang (๊ฐ์์ง) |
๊ฒํ ์ | kevin |
์ํ | ์ด์ |
๋ฒ์ | ๋ ์ง | ์์ฑ์ | ๊ฒํ ์ | ๋ณ๊ฒฝ๋ด์ฉ |
---|---|---|---|---|
1.1 | 2025-04-21 | suzy.kang (๊ฐ์์ง) | kevin | 1. Typescript ๋ฒ์ ๋ณ๊ฒฝ (5.8.3 โ 5.4.5) 2. use() + TanStack Query ํผํฉํด์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ |
๋ณธ ๋ฌธ์๋ ํ๋ก์ ํธ์ ํ๋ก ํธ์๋ ๊ธฐ์ ์คํ ์ ์ ๊ธฐ์ค๊ณผ ์ํคํ ์ฒ ์ค๊ณ ๋ฐฉํฅ์ ์ ์ํฉ๋๋ค.
- ํต์ฌ ๊ธฐ์ ์คํ ์ ์
- ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ
- ํ์ง ๊ด๋ฆฌ ๋ฐฉ์
- ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ์
- ํ๋ก์ ํธ ๊ท๋ชจ ์ ํฉ์ฑ: ํ๋ก์ ํธ ๊ท๋ชจ์ ๋ณต์ก๋์ ์ ํฉํ ๊ธฐ์
- ํ ์๋ จ๋: ํ ๊ตฌ์ฑ์์ ๊ธฐ์ ์ดํด๋์ ํ์ต ๊ณก์
- ์ปค๋ฎค๋ํฐ ํ์ฑ๋: ์ง์์ ์ธ ์ ๋ฐ์ดํธ์ ๋ฌธ์ ํด๊ฒฐ ์ฉ์ด์ฑ
- ์ฑ๋ฅ๊ณผ ๋ฒ๋ค ํฌ๊ธฐ: ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ๊ณผ ์คํ ์ฑ๋ฅ
- ์ ์ง๋ณด์์ฑ: ์ฝ๋ ํ์ง๊ณผ ๋ฌธ์ํ ์์ค
- ๋ผ์ด์ ์ค: ์์ ์ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ

- ํด๋น ํ๋ก์ ํธ๋, ํ๋ก ํธ์๋๊ฐ ํผ์์ ๊ฐ๋ฐํจ. ๋ณต์กํ ๋ก์ง์ ์์ฑํ ๋ ์๋ํ ๋๋ก ๋์ ํ๋์ง ์ฆ์ ํ์ธ ๊ฐ๋ฅํ๊ณ ์ค์๋ฅผ ์๋ฐฉ ํ ์ ์์
- ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๊ธฐ์กด ๊ฒฝํ์ผ๋ก ๋ฌ๋์ปค๋ธ ์์ด ์งํ ๊ฐ๋ฅ, ์์ฐ์ฑ์ด ํฅ์
-
ํน๋ณํ๊ฒ 5.4 ๋ฒ์ ์ ์ ์ ํ ์ด์
- nextjs๊ฐ ์๊ตฌํ๋ ๋ฒ์ ์ ์ ํฉ (5+)
- 5.5+ ๋ฒ์ ์ ์ผ๋ถ ESLint/Prettier ํธํ์ฑ ์ด์ ๊ฐ ์๋ ์ํ, ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ ์์ ์ฑ๊ณผ๋ ๋ณ๊ฐ
- 5.4 ๋ฒ์ ์ ์๋ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํธํ์ฑ ๋ฌธ์ ์์.
- ์๋ก์ด TS ๊ธฐ๋ฅ์ ์ ๊ทน์ ์ผ๋ก ์ฐ์ง ์๋ ์ด์, ๊ฒ์ฆ๋ ์์ ์ฑ๊ณผ ํธํ์ฑ์ด ๋ ์ค์ํ๋ค๊ณ ํ๋จ.
- 5.4 ๋ฒ์ ์ ์ฃผ์ ํด์ด ๋ค ๋์๋ ์์ ๋ ๋ฒ์ ์์ 5.3๋ณด๋ค ์๋ + ํ์ ์ถ๋ก ์ ํ๋๊ฐ ์ฆ๊ฐ.
- tsconfig.json ์ค์
- strict ์ฌ์ฉ ์ฌ๋ถ
- ํ์ ์ ์ ์์น
- ๋ค์ด๋ฐ ์ปจ๋ฒค์
- any ์ฌ์ฉ ์ ์ฑ
ํ๊ฐ ๊ธฐ์ค | TypeScript | JavaScript |
---|---|---|
์ฃผ์ ํน์ง | โข ์ ์ ํ์ ์์คํ โข ์ธํฐํ์ด์ค/์ ๋ค๋ฆญ โข ํ์ ์ถ๋ก โข ์ปดํ์ผ ์์ ์ค๋ฅ ๊ฐ์ง โข IDE ์ง์ ์ฐ์ | โข ๋์ ํ์ โข ์ ์ฐํ ๋ฌธ๋ฒ โข ๋น ๋ฅธ ํ๋กํ ํ์ดํ โข ์ฆ์ ์คํ โข ๋ฎ์ ์ง์ ์ฅ๋ฒฝ |
ํ๋ก์ ํธ ๊ท๋ชจ ์ ํฉ์ฑ | โญโญโญโญโญ โข ํ ํ์ ์ ์ ํฉ | โญโญโญ โข ๋น ๋ฅธ ๊ฐ๋ฐ ํ์ ์ ์ ํฉ |
ํ ์๋ จ๋ | โญโญโญโญ โข TS ๊ฐ๋ฐ ๊ฒฝํ ์์ | โญโญโญโญ โข JS ๊ฐ๋ฐ ๊ฒฝํ ์์ |
๊ฐ๋ฐ ์์ฐ์ฑ | โญโญโญโญ โข ์ด๊ธฐ ์ค์ ํ์ โข ํ์ ์ ์ ์๊ฐ ํ์ โข ์ฅ๊ธฐ์ ์ผ๋ก ์์ฐ์ฑ ํฅ์ | โญโญโญโญโญ โข ๋น ๋ฅธ ์์ โข ์ ์ ๋ณด์ผ๋ฌํ๋ ์ดํธ โข ๋จ๊ธฐ ์์ฐ์ฑ ๋์ |
์ ์ง๋ณด์์ฑ | โญโญโญโญโญ โข ํ์ ์์ ์ฑ โข ๋ฆฌํฉํ ๋ง ์ฉ์ด โข ์๋์์ฑ ์ง์ โข ๋ฌธ์ํ ํจ๊ณผ | โญโญ โข ๋ฐํ์ ์ค๋ฅ ์ํ โข ๋ฆฌํฉํ ๋ง ์ด๋ ค์ โข ๋ฌธ์ํ ์ถ๊ฐ ํ์ |
๋๋ฒ๊น ์ฉ์ด์ฑ | โญโญโญโญโญ โข ์ปดํ์ผ ์์ ์ค๋ฅ ๊ฐ์ง โข IDE ์ง์ ์ฐ์ | โญโญโญ โข ๋ฐํ์ ์์ ์ค๋ฅ ๋ฐ๊ฒฌ โข ๋๋ฒ๊น ์๊ฐ ์ฆ๊ฐ |

-
๋ฌ๋ ์ปค๋ธ ๊ฑฐ์ ์์
โ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๊ธฐ์กด ๊ฒฝํ ์กด์ฌ
โ ์์ฐ์ฑ ํฅ์ ๊ฐ๋ฅ
-
SSR/SSG ์ง์์ผ๋ก SEO ์ต์ ํ ๊ฐ๋ฅ
โ ๋ํ ์๋น์ค์์ ์ฅ์์ ๋ํด ๊ฒ์ ํ์ ๋, ๊ฒ์์์ง์ ๋ ธ์ถ์ด ๋๋ฉด ์ ์ ํ๋ณด์ ๋์์ ๋ฐ์ ์ ์์.
โ ๋ค๋ฅธ ํ๋ ์์ํฌ์์๋ SSR/SSG๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฒ์ ์๋์ง๋ง ์ถ๊ฐ ํด์ด ํ์ํ๊ณ ์ค์ ์ด ๋ณต์กํด์ ๋ฌ๋์ปค๋ธ ๋ฐ์
-
nextjs typescript ์ง์
โ ๋ํ ์๋น์ค๋ ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ฉ, ํธํ์ฑ์ด ์ข์.
-
์ด๋ฏธ์ง ์ต์ ํ
โ ๋ํ ์๋น์ค๋ ์ฅ์ ์ด๋ฏธ์ง๋ ๋ณด์ฌ์ฃผ๊ณ , ๊ธฐ๋ก์ ๊ถ๊ณ ํ๋ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ๋ง์ด ์ฌ์ฉํ ๊ฒ ์.
โ fetch ๋ก ๋ฐ์ ์ด๋ฏธ์ง url์ ๋ฐ๋ก ์ฌ์ฉํ๋ฉด ์ต์ ํ๊ฐ ์๋์ง๋ง, ์ด๋ฏธ์ง ํ๋ก์๋ฅผ ์ฌ์ฉํด์ ์ต์ ํ ์์ .
โ nextjs ์์๋ ์๋์ผ๋ก ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ํด์ผํ๋ ๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋ค๋ฅด๊ฒ ์๋์ผ๋ก ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ์์ฐ์ฑ ํฅ์
-
ํน๋ณํ๊ฒ 15.3.0 ๋ฒ์ ์ ์ ์ ํ ์ด์
- ํฅํ ๋ง์ด๊ทธ๋ ์ด์ ๋น์ฉ ์ ๊ฐ์ ์ํด ์ต์ ๋ฒ์ ์ฌ์ฉ
- 13+ ๋ฒ์ ๋ถํฐ ์ฌ์ฉ๋๋ App Router ๋ฐฉ์ ์ฌ์ฉ ๊ฒฝํ ์์ด์ ๋ฌ๋์ปค๋ธ ์์ด ์งํ
- ๋ฆฌ์กํธ 19 ๋ฒ์ ์ ์๋ฒฝํ๊ฒ ์ง์ํจ. ๋ํ ์๋น์ค์์ 19 ๋ฒ์ ์ ์๋ก ์๊ธด ๋ฆฌ์กํธ ๋ด์ฅ ํ use() ์ ์ด์ฉํด์ supense, ์๋ฌ ๊ฒฝ๊ณ, ๋ฐ์ดํฐ ํจ์นญ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ ํ ๊ฒ์.
- ๋ํ ์๋น์ค์์ ์ฌ์ฉํ๋ LLM์ ์๋ต ์๊ฐ์ด ์ผ๋ฐ ์๋ฒ ์๋ต๋ณด๋ค ๊ธด ํธ์ด๊ธฐ ๋๋ฌธ์ supense ๋ฅผ ์ด์ฉํด์ lazy loading ์ ๊ตฌํ
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ lazy loading ์ ๊ตฌํํ ์ ์์ง๋ง, ์ธ๋ถ ์์กด์ฑ์ด ์ปค์ง๊ณ ๋ฒ๋ค์ ํฌ๊ธฐ๊ฐ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ์ปค์ง ์ ์์. ๋ํ ์๋น์ค์์ ์ํ๋ ๊ธฐ๋ฅ์ suspense ๋ก ์ถฉ๋ถํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์.
- react hook form ๊ฐ์ ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์๋ฒ์์ ์ง์ formData๋ฅผ ์ฒ๋ฆฌ.
- ๋ ๋๋ง ์ ๋ต ์ ํ
- ๋ผ์ฐํ ๊ตฌ์กฐ
- ๋ฉํ๋ฐ์ดํฐ ์ค์
- Node.js : 23.7.0
- React: 19.1.0
- React DOM : 19.1.0
ํ๊ฐ ๊ธฐ์ค | Next.js | Vite + React | Angular | Vue.js |
---|---|---|---|---|
์ฃผ์ ํน์ง | โข SSR/SSG ์ง์ โข ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ โข TypeScript ์ง์ โข API ๋ผ์ฐํธ โข ์ด๋ฏธ์ง ์ต์ ํ |
โข ๋น ๋ฅธ ๊ฐ๋ฐ ํ๊ฒฝ โข ๊ฐ๋จํ ์ค์ โข HMR ์ง์ โข ์ ์ฐํ ๊ตฌ์กฐ |
โข ์์ ํ ํ๋ ์์ํฌ โข CLI ๋๊ตฌ โข ์์กด์ฑ ์ฃผ์ โข RxJS ํตํฉ |
โข ์ ์ง์ ํ๋ ์์ํฌ โข ๋ฐ์ํ ์์คํ โข ์ปดํฌ์ง์ API โข SFC ์ง์ |
ํ๋ก์ ํธ ๊ท๋ชจ | โญโญโญโญโญ ๋๊ท๋ชจ ํ๋ก์ ํธ SEO ์ค์ ์๋น์ค |
โญโญโญโญ ์ค์๊ท๋ชจ ํ๋ก์ ํธ ๋น ๋ฅธ ํ๋กํ ํ์ |
โญโญโญโญโญ ๋๊ท๋ชจ ํ๋ก์ ํธ | โญโญโญโญ ์ค์๊ท๋ชจ ํ๋ก์ ํธ |
ํ ์๋ จ๋ | โญโญโญโญ ๊ฒฝํ ์์ | โญโญโญโญ ๊ฒฝํ ์์ | โญ ๋ฌ๋์ปค๋ธ ์กด์ฌ | โญโญ ์ง๊ด์ API |
์ปค๋ฎค๋ํฐ ํ์ฑ๋ | โญโญโญโญโญ ์ํ๊ณ ํ์ฑํ ๋ ํผ๋ฐ์ค ํ๋ถ |
โญโญโญโญโญ React ์ํ๊ณ Vite ์ฑ์ฅ ์ค |
โญโญโญโญ ์์ ์ ์ํ๊ณ ๊ธฐ์ ์ง์ |
โญโญโญโญ Vue ์ํ๊ณ ๋ ํผ๋ฐ์ค ๋ค์ |
์ฑ๋ฅ/๋ฒ๋ค ํฌ๊ธฐ | โญโญโญโญ ์๋ ์ต์ ํ ์ค๊ฐ ๋ฒ๋ค ํฌ๊ธฐ |
โญโญโญโญโญ ๋งค์ฐ ๋น ๋ฅธ ๋น๋ ํจ์จ์ ๋ฒ๋ค๋ง |
โญโญโญ ์ต์ ํ ๋๊ตฌ ์ ๊ณต ์ด๊ธฐ ๋ฒ๋ค ํผ |
โญโญโญโญ ๋น ๋ฅธ ๋ฐํ์ ์์ ๋ฒ๋ค ํฌ๊ธฐ |
์ ์ง๋ณด์์ฑ | โญโญโญโญโญ ํ์
์์ ์ฑ ๋ช ํํ ๊ตฌ์กฐ |
โญโญโญโญ ์ค์ ํ์ ์์ ๋ก์ด ๊ตฌ์กฐ |
โญโญโญโญโญ ์๊ฒฉํ ๊ตฌ์กฐ ๋์ ์ผ๊ด์ฑ |
โญโญโญโญ ์ฌ์ด ์ ์ง๋ณด์ ์ ์ฐํ ๊ตฌ์กฐ |
๋ผ์ด์ ์ค | MIT | MIT | MIT | MIT |

-
๋ฌ๋ ์ปค๋ธ๊ฐ ๊ฑฐ์ ์์
โ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ context ์ฌ์ฉ ๊ฒฝํ๋ง ์กด์ฌ
โ ํ์ต ๊ณก์ ์ด ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํจ
โ zustand ๋ ๊ณต์๋ฌธ์๋ฅผ ๋ณด์์ ๋, ์ง๊ด์ ์ผ๋ก ์ฌ์ฉ๋ฐฉ๋ฒ์ด ์๋ฟ์์.
-
๋ฒ๋ค ์ฌ์ด์ฆ๊ฐ ์์
โ ๋ํ ์๋น์ค๋ ์ฃผ๋ก ๋ชจ๋ฐ์ผ ์น ํ๊ฒฝ์์ ์ฌ์ฉ ๋๋ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ ์์ ๋ฒ๋ค ์ฌ์ด์ฆ๊ฐ ์ค์ํจ
โ zustand ๋ ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊ณผ ๋น๊ตํ์ ๋, ๋ฒ๋ค ์ฌ์ด์ฆ๊ฐ ๊ฐ์ฅ ์์.
-
์๋ฒ ์ปดํฌ๋ํธ ํธํ์ฑ ์ข์
โ React 19, App Router ๊ธฐ๋ฐ์์๋ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
โ ์๋ฒ ์ปดํฌ๋ํธ์์ ์ํ ์ ๊ทผ์ ์ ํ๋์ง๋ง ๊ตฌ์กฐ ์ค๊ณ๋ก ๋ถ๋ฆฌ ๊ฐ๋ฅํ๊ณ ๊ฐ์ด๋๋ ์ ๊ณตํด์ฃผ๊ณ ์์.
-
ํน๋ณํ๊ฒ 5.0.3 ๋ฒ์ ์ ์ ์ ํ ์ด์
โ named export ๋ง ์ง์๋๋๋ก ๋ณ๊ฒฝ ๋์๋๋ฐ, named export ๋ ๋ํ์ ํ๋ก ํธ์๋ ํ export ์ปจ๋ฒค์ ๊ณผ ์ ํฉํจ.
โ React 18 ์ด์, Typescript 4.5 ๋ฒ์ ์์๋ง ๋์ํ๋๋ฐ, ๋ํ ์๋น์ค์์ ์ฌ์ฉํ๋ React, Typescirpt ์ ์๊ตฌ์ฌํญ์ ์ ํฉํจ
โ replace ๊ธฐ๋ฅ์ ์ธ ๋, v4 ๋๋ ํ์ ๊ฒ์ฌ๋ฅผ ํ์ง ์์์ ๋ฐ์ดํฐ๊ฐ ์ ์ค ๊ฐ๋ฅ์ฑ์ด ์์๋๋ฐ v5 ์์๋ ํ์ ์ ์ ํํฌ ์ ์ํด์ค์ผ ์ค๋ฅ๊ฐ ์๋๋๋ก ์ ๋ฐ์ดํธ. ๋ํ ์๋น์ค์์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํผ์ ๊ฐ๋ฐํด์ ๋๊ตฐ๊ฐ ์ค์๋ฅผ ์ฐพ์์ฃผ๊ธฐ ์ด๋ ค์ธ ์๋ ์๋๋ฐ, ํด๋น ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๋ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
- ์๋ฒ ์ปดํฌ๋ํธ์ ๋ถ๋ฆฌ
- ์ง์ ์ ์ธ ์ํ ๊ณต์ ์ฃผ์
- ์ํ ์ด๊ธฐํ ๊ด๋ฆฌ ํ์
- ํ์ผ ๊ตฌ์กฐ ๋ถ๋ฆฌ ( useMapStore, useUserStort ๋ฑ ์ญํ ์ชผ๊ฐ๊ธฐ)
- persist ์ฌ์ฉ ์, ๋ฏผ๊ฐ ์ ๋ณด ์ ์ฅํ์ง ์๋๋ก ์ฃผ์
ํ๊ฐ ๊ธฐ์ค | Zustand | Redux | Recoil | Jotai | MobX |
---|---|---|---|---|---|
์ฃผ์ ํน์ง | โข ๊ฐ๋จํ API โข ์์ ๋ฒ๋ค โข TypeScript ์นํ์ |
โข ์ค์ ์ ์ฅ์ โข ๋ถ๋ณ์ฑ ๊ฐ์กฐ โข ๋ฏธ๋ค์จ์ด/DevTools |
โข ์์ ๋จ์ ๊ด๋ฆฌ โข ๋น๋๊ธฐ ์ฒ๋ฆฌ โข React ์ ์ฉ |
โข ์์ ๊ธฐ๋ฐ ์ค๊ณ โข Suspense ์ง์ โข ๋งค์ฐ ์์ |
โข ์๋ ์ํ ์ถ์ โข ๋ฐ์ํ โข ๊ฐ์ฒด์งํฅ์ |
ํ์ต ๊ณก์ | โญโญโญโญโญ ๋งค์ฐ ์ฌ์ | โญโญ ๋ณต์กํ ๋ณด์ผ๋ฌํ๋ ์ดํธ | โญโญโญโญ ์ง๊ด์ | โญโญโญโญ ๋จ์ํจ | โญโญโญ ๊ด์ฐฐ์ ํจํด ์ดํด ํ์ |
์ฑ๋ฅ | โญโญโญโญโญ ๋งค์ฐ ํจ์จ์ | โญโญโญ ๋ฆฌ๋ ๋๋ง ์ต์ ํ ํ์ | โญโญโญโญ ์๋ ์ต์ ํ | โญโญโญโญโญ ์์ ๋จ์ ์ ๋ฐ์ดํธ | โญโญโญโญ ์๋ ์ต์ ํ |
๋ฒ๋ค ํฌ๊ธฐ | โญโญโญโญโญ ~1KB ์์ | โญโญ ~22KB ํผ | โญโญโญ ~20KB ์ค๊ฐ | โญโญโญโญโญ ~2KB ๋งค์ฐ ์์ | โญโญโญ ~16KB ์ค๊ฐ |
๊ฐ๋ฐ์ ๋๊ตฌ | โญโญโญโญ DevTools ํธํ | โญโญโญโญโญ ๊ฐ๋ ฅํ Redux DevTools | โญโญโญ ๊ธฐ๋ณธ ์ ๊ณต | โญโญโญ ๊ธฐ๋ณธ ์ ๊ณต | โญโญโญโญ MobX DevTools |
TypeScript ์ง์ | โญโญโญโญโญ ์๋ฒฝ ์ง์ | โญโญโญโญ ๋งค์ฐ ์ ์ง์ | โญโญโญโญโญ ๊ธฐ๋ณธ TS ์ง์ | โญโญโญโญโญ ๊ธฐ๋ณธ TS ์ง์ | โญโญโญโญ ๋ฐ์ฝ๋ ์ดํฐ ๊ธฐ๋ฐ |
์ปค๋ฎค๋ํฐ/์ํ๊ณ | โญโญโญโญ ํ๋ฐํ ์ปค๋ฎค๋ํฐ | โญโญโญโญโญ ๋งค์ฐ ํฐ ์ปค๋ฎค๋ํฐ | โญโญโญโญ Meta ๊ธฐ๋ฐ ์ปค๋ฎค๋ํฐ | โญโญโญ ์ฑ์ฅ ์ค | โญโญโญโญ ์์ ์ ์ปค๋ฎค๋ํฐ |
์ ํฉํ ํ๋ก์ ํธ | ๊ฐ๋จํ ์ํ ๊ด๋ฆฌ ๋น ๋ฅธ ๊ฐ๋ฐ ํ์ |
๋๊ท๋ชจ ๋ณต์กํ ์ํ ๊ด๋ฆฌ | ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ง์ React ์ฑ | ์์ ๊ท๋ชจ React ์ฑ | ๋ฐ์ํ ๋ณต์กํ ๋๋ฉ์ธ |
-
์์ฐ์ฑ ํฅ์
โ ํด๋์ค ๋จ์๋ก ์คํ์ผ์ ๋ฐ๋ก ์ ์ฉํ ์ ์์ด ๊ตฌํ ์๋๊ฐ ๋น ๋ฅด๊ณ , ๋ณ๋ css ํ์ผ ์์ด ์ปดํฌ๋ํธ ์์์ ์คํ์ผ๋ง ๊ฐ๋ฅ
โ ๋ํ ์๋น์ค์ MVP ๊ฐ๋ฐ์ 1~2์ฃผ ๋ด์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ์ด ๋์ด์ผ ํจ.
-
์ ํธ๋ฆฌํฐ ํผ์คํธ ์ ๊ทผ
โ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ก ๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ UI ๊ตฌ์ฑ์ด ๊ฐ๋ฅ
-
์ปค์คํฐ๋ง์ด์ง ์ฉ์ด
โ ๋ํ ์๋น์ค๋ ๋ธ๋๋ ์์์ด ์ ํด์ ธ ์๊ณ , ํฐํธ๊ฐ ์ ํด์ ธ์๊ธฐ ๋๋ฌธ์ ํ ๋ง์ฒ๋ผ ์ฌ์ฉ ์์
-
์ฑ๋ฅ ์ต์ ํ
โ ์ค์ ์ฌ์ฉ๋ ํด๋์ค๋ง ์ต์ข CSS ์ ํฌํจ๋๋ฏ๋ก ์ฅ์ ๋ฆฌ์คํธ๊ฐ ๊ธธ์ด์ง๋ค ํ๋๋ผ๋ css ์ ํฌ๊ฒ ๋ถํ๋ฅผ ์ฃผ์ง ์์ผ ๊ฒ์.
-
ํน๋ณํ๊ฒ 4.1 ๋ฒ์ ์ ์ ์ ํ ์ด์
โ v3 ์์ v4 ๋ก ๋์ด์ค๋ฉด์ ๋น๋๊ฐ 3.7๋ฐฐ ๋นจ๋ผ์ ธ์ ๋ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐ ๊ฐ๋ฅ
- ํด๋์ค๊ฐ ๊ธธ์ด์ง๋ฉด JSX๊ฐ ์ง์ ๋ถํด์ ธ์ ๊ฐ๋
์ฑ์ด ์ ํ๋ ์ ์์
- Headwind ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์นํ๊ธฐ
- ๊ณตํต ์คํ์ผ @apply ์ฌ์ฉํ์ฌ ๋ถ๋ฆฌ
ํ๊ฐ ๊ธฐ์ค | Tailwind CSS | CSS-in-JS | CSS Modules | SCSS/SASS | Vanilla CSS |
---|---|---|---|---|---|
์ฃผ์ ํน์ง | โข ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฐ โข ๋์ ์์ฐ์ฑ โข ๋น ๋ฅธ ์ปค์คํฐ๋ง์ด์ง |
โข JS ํตํฉ โข ๋์ ์คํ์ผ๋ง โข ์ปดํฌ๋ํธ ๊ธฐ๋ฐ |
โข ์ง์ญ ์ค์ฝํ โข CSS ๋ฌธ๋ฒ ์ ์ง |
โข ๋ณ์/๋ฏน์ค์ธ โข ์ค์ฒฉ ๋ฌธ๋ฒ โข ์ ์ฒ๋ฆฌ๊ธฐ |
โข ์์ CSS โข ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ์ง์ |
ํ์ต ๊ณก์ | โญโญโญโญ ํด๋์ค ์ด๋ฆ ์ต์ํด์ ธ์ผ ํจ | โญโญโญ JS/React ์ง์ ํ์ | โญโญโญโญโญ ์ต์ํ CSS ๋ฌธ๋ฒ | โญโญโญ ์ ์ฒ๋ฆฌ๊ธฐ ๋ฌธ๋ฒ ํ์ | โญโญโญโญโญ ๋งค์ฐ ์ฌ์ |
์ฑ๋ฅ | โญโญโญโญโญ ์ฌ์ฉํ ํด๋์ค๋ง ํฌํจ | โญโญโญ ๋ฐํ์ ์ค๋ฒํค๋ ์์ | โญโญโญโญ ๋น๋ํ์ ์ต์ ํ | โญโญโญโญ ์ปดํ์ผ ํ ์ฑ๋ฅ ์ข์ | โญโญโญโญโญ ์ต์ ํ ์์ |
๊ฐ๋ฐ ๊ฒฝํ | โญโญโญโญ ๋น ๋ฅธ UI ์์ ๊ฐ๋ฅ | โญโญโญโญโญ ์ปดํฌ๋ํธ ์ค์ฌ | โญโญโญโญ ๊ฐ๋จํจ | โญโญโญโญ ๊ตฌ์กฐํ ์ฉ์ด | โญโญโญ ๋งค์ฐ ๊ธฐ๋ณธ์ |
์ ์ง๋ณด์ | โญโญโญ ํด๋์ค ๊ด๋ฆฌ ํ์ | โญโญโญโญ ์ปดํฌ๋ํธ ๋จ์๋ก ๊น๋ํจ | โญโญโญโญ ๋ชจ๋ํ ์ฌ์ | โญโญโญโญ ๋ช ํํ ๊ตฌ์กฐํ | โญ ์ ์ญ ์ค์ฝํ๋ก ์ถฉ๋ ์ํ |
๋ฒ๋ค ํฌ๊ธฐ | โญโญโญโญโญ ๋งค์ฐ ์์ | โญโญโญ ๋น๊ต์ ํผ | โญโญโญโญโญ ์ต์ํ์ CSS | โญโญโญโญ ์ปดํ์ผ ํ ์ค๊ฐ | โญโญโญโญโญ ๊ฐ์ฅ ์์ |
์ ํฉํ ํ๋ก์ ํธ | ๋น ๋ฅธ ํ๋กํ ํ์
๋์์ธ ์์คํ ์ ์ฉ |
React ๊ธฐ๋ฐ ๋์ ์คํ์ผ๋ง | ๊ฐ๋จํ ์ปดํฌ๋ํธ | ๋ณต์กํ ๋์์ธ ์ค๊ท๋ชจ ์ด์ |
๊ฐ๋จํ ์น์ฌ์ดํธ |

-
Tailwind ์นํ์
โ์ด๋ฏธ ๋ํ ์๋น์ค์์ Tailwind ๋ฅผ ์ฐ๊ธฐ๋ก ํ ์ํ๋ผ ์์ฐ์ค๋ฝ๊ฒ ํตํฉ๋จ
-
๋น ๋ฅธ MVP ๊ฐ๋ฐ
โ ๋ํ ์๋น์ค์ ํ์ํ ๋ฒํผ, ์ ๋ ฅ์ฐฝ, ๋๋กญ๋ค์ด, ํ ๊ธ ๋ฑ ๋ค ๊ฐ์ถฐ์ ธ ์์.
-
ํ์ํ ๊ฒ๋ง ๊ฐ์ ธ์ด
โ ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ง ์๊ณ ํ์ํ ์ปดํฌ๋ํธ๋ง ๋ณต์ฌํด์ ์ฐ๋ ๊ตฌ์กฐ
โ ์ฃผ๋ก ๋ชจ๋ฐ์ผ ์น ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ๋ํ ์๋น์ค๋ ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์ค์ํ๋ฐ ๋ฒ๋ค ํฌ๊ธฐ ์ต์ํ ํ ์ ์์
- ์ผ๋ถ ๋์์ Radix ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ผํ ์ ์๋ค.
- ์ปค์คํฐ๋ง์ด์ง์ด ์์ ๋ก์ ์คํ์ผ ์ผ๊ด๋๋๋ก ์ ๊ฒฝ ์จ์ผ ํ๋ค.
ํ๊ฐ ๊ธฐ์ค | shadcn/ui | MUI (Material UI) | Chakra UI | Radix UI |
---|---|---|---|---|
์คํ์ผ๋ง ๋ฐฉ์ | Tailwind ๊ธฐ๋ฐ | Emotion ๊ธฐ๋ฐ | Emotion ๊ธฐ๋ฐ | Headless (์คํ์ผ ์์) |
๋์์ธ ์ฒ ํ | โญโญโญโญ ์ ์ฐํ๊ณ ๋ฏธ๋๋ฉํ ๊ตฌ์ฑ | โญโญโญโญ ๊ตฌ๊ธ Material Design ์ค์ | โญโญโญ ์ฌ์ด ์ ๊ทผ์ฑ๊ณผ ์ผ๊ด์ฑ ๊ฐ์กฐ | โญโญโญโญ ๊ธฐ๋ฅ ์์ฃผ ๊ตฌ์ฑ ์์ |
์ ๊ทผ์ฑ(a11y) | โญโญโญโญ Radix ๊ธฐ๋ฐ์ผ๋ก ์ฐ์ | โญโญโญโญ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ทผ์ฑ ์ค์ | โญโญโญโญ WAI-ARIA ์ค์ | โญโญโญโญโญ WCAG ๊ธฐ์ค์ ๋ง์ถ ์ค๊ณ |
์ปดํฌ๋ํธ ์ | โญโญโญ ํ์ํ ๊ฒ๋ง ์ ๊ณต | โญโญโญโญโญ ๋งค์ฐ ๋ค์ํ ์ปดํฌ๋ํธ | โญโญโญโญ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ ์์ ํฌํจ | โญโญ ๊ธฐ๋ณธ์ ์ธ ์์ ์์ฃผ |
์ฌ์ฉ ๋์ด๋ | โญโญโญโญ Tailwind์ ์ต์ํ๋ฉด ์ฌ์ | โญโญโญ ๋น ๋ฅธ ์ ์ฉ ๊ฐ๋ฅ | โญโญโญโญ ์ง๊ด์ ์ธ ์ฌ์ฉ | โญโญ ์ง์ ์คํ์ผ๋ง ํ์ |
์ปค์คํฐ๋ง์ด์ง ์์ ๋ | โญโญโญโญโญ ์์ ์์ ๋ก์ด ๊ตฌ์ฑ | โญโญโญ ํ ๋ง ๊ธฐ๋ฐ ์ ์ด | โญโญโญโญ ์์ฌ์ด ํ ๋ง ์ปค์คํฐ๋ง์ด์ง | โญโญโญโญโญ ์์ Headless๋ก ์ ์ฐํจ |
ํ๋ก์ ํธ ์ ํฉ๋ | ๋์์ธ ์์คํ
์ปค์คํฐ๋ง์ด์ง ํ์ํ ๊ฒฝ์ฐ |
๋๊ท๋ชจ ํ๋ก์ ํธ ํ์คํ๋ ๋์์ธ ํ์ |
๋น ๋ฅธ MVP ๋๋ ๋์์ธ ๊ฐํธํ ์ฑ | ๊ธฐ๋ฅ๋ณ UI ๊ตฌ์ฑ ๋์์ธ ์์ ๋กญ๊ฒ ์ค์ ๊ฐ๋ฅ |
์ค์น ์ฉ๋ | โญโญโญโญ ๊ฒฝ๋ ๊ตฌ์ฑ ๊ฐ๋ฅ | โญโญ ์๋์ ์ผ๋ก ๋ฌด๊ฑฐ์ | โญโญโญ ์ ๋นํ ์ค์น ์ฉ๋ | โญโญโญโญ Headless๋ผ ๊ฐ๋ฒผ์ |


use()
โ ์ต์ React 19์ use()
ํ
์ ์ง์ํ์ฌ ๊ฐํธํ ๋ฐ์ดํฐ ํจ์นญ ๊ฐ๋ฅ
โ ๋ํ ์๋น์ค๋ React 19 ์ฌ์ฉํ๋ฏ๋ก, use() ํ ํ์ฉ
โ suspense
์ ํจ๊ป ์ฌ์ฉํด ๋ก๋ฉ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉ์ ์นํ์ ์ผ๋ก ์ฒ๋ฆฌ ํ ์ ์์
โ error
๊ฐ์ฒด๋ฅผ throwํ๋ฉด ์๋์ผ๋ก ์๋ฌ ๊ฒฝ๊ณ ์ฒ๋ฆฌ ๊ฐ๋ฅ
โ ์๋ฒ ์ปดํฌ๋ํธ ํ๊ฒฝ์์ ์๋ฒฝํ๊ฒ ์๋ โ ๋ํ ์๋น์ค์์ ํ์ํ SEO์ ์ฑ๋ฅ ๊ฐ์
โ React ํ ๊ณต์ ์ง์ โ ์ฅ๊ธฐ์ ์ผ๋ก ์ ์ง๋ณด์ ๋ฐ ๋ฐ์ ๊ธฐ๋
โ ๋ํ ์๋น์ค์ ๋ฉ์ธ ์ง๋ ๋ก๋ฉ๊ณผ ์ฅ์ ๋ฆฌ์คํธ์์ ์ฌ์ฉ, ๋น ๋ฅธ ์ด๊ธฐ ๋ ๋ SEO ๋์ ๊ฐ๋ฅ.
โ TanStack Query ๋ SEO ๋์์ ๊ฐ๋ฅํ์ง๋ง, prefetch, dehydrate, hydrate ์ฒ๋ฆฌ๋ก ์ธํด ์ฝ๋ ๋ณต์ก๋๊ฐ ๋์์ง๊ณ Suspense ์ฐ๋๋ ์์ ์ฒ๋ฆฌ๊ฐ ํ์๋ก ํด์ ๋น์ฉ ๋ฐ์ํ๋ฏ๋ก React ๋ด์ฅ ํ ํ์ฉ
TanStack Query (v5)
โ ํด๋ผ์ด์ธํธ ์ฟผ๋ฆฌ์ ๊ฐ๋ ฅํจ (mutation, revalidate, background update ์ฒ๋ฆฌ ๋ฑ)
โ ๋ํ ์๋น์ค์์ ๊ธฐ๋ก ์์ฑ/์์ , ๋ถ๋งํฌ, ์ฅ์ ํํฐ๋ง ๊ธฐ๋ฅ์์ ์ฌ์ฉ ์์ .
โ ๋ํ ์๋น์ค๋ zod ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์งํํ๋๋ฐ, TanStack Query v5 ์ ํตํฉ์ด ์ฐ์ํจ
โ React 18 ์ด์ ์๊ตฌํ๊ณ , ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ ์์กด์ฑ ๋ฌธ์ ์์.
-
ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋
use()
์ฌ์ฉ ๋ถ๊ฐโ TanStack Query ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ๊ณ ๊ทน๋ณต
-
Suspense์ Error Boundary๊ฐ ์ ์ ๋์ด์ผ ํจ โ ๊ตฌ์กฐ์ ์ค๊ณ ํ์
-
streaming ๋ฐฉ์ ์ฌ์ฉ ์ ์ฃผ์ ํ์ (๋ฐ์ดํฐ ํ๋ฆ์ ๋ฐ๋ฅธ ์ปดํฌ๋ํธ ์์น ๊ณ ๋ ค
-
์๋ฒ ์ปดํฌ๋ํธ์์๋ fetch์ ๋ด์ฅ๋ ์บ์ฑ ์ ์ฑ
ํ์ฉ
- ๊ธฐ๋ณธ๊ฐ:
force-cache
- ํ์ ์ ์ต์
์ผ๋ก
no-store
,force-cache
,revalidate
์ค์ ๊ฐ๋ฅ
- ๊ธฐ๋ณธ๊ฐ:
- ์ ์ ์บ์ฑ: build-time์ ๋ฐ์ดํฐ ์์ฑ โ SSG
- ๋์ ์บ์ฑ: runtime์ fetch, TTL ์ค์ ์ผ๋ก stale ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- revalidate ํ๊ทธ๋ก ISR(Incremental Static Regeneration) ๊ตฌํ ๊ฐ๋ฅ
- ํด๋น ๋ถ๋ถ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๊ฒฝํ ์์, ํ์ต ํ์
- ์๋ฒ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์๋ฌ๋ ์๋์ผ๋ก Error Boundary์ ์ ๋ฌ
- Suspense์ ํจ๊ป ํฌํจ๋๋ ๊ตฌ์กฐ์์ ์ค๋ฅ ๊ฒฝ๊ณ์ ๋ก๋ฉ ์ํ๋ฅผ ๋ช ํํ ๋๋ ์ ์์
- ๋น๋๊ธฐ ํจ์์์ throw๋ก ์๋ฌ ๋ฐ์ โ ์ ์ญ ์๋ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ
ํ๊ฐ ๊ธฐ์ค | React use() | SWR | React Query |
---|---|---|---|
์ฃผ์ ์ฌ์ฉ ์์น | โญโญโญโญ ์๋ฒ ์ปดํฌ๋ํธ ์ ์ฉ | โญโญโญโญ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ | โญโญโญโญ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ |
์ค์น ํ์ ์ฌ๋ถ | โญโญโญโญโญ ๋ด์ฅ API | โญโญโญ ๋ณ๋ ์ค์น ํ์ | โญโญโญ ๋ณ๋ ์ค์น ํ์ |
Suspense ์ฐ๋ | โญโญโญโญโญ ์๋ฒฝ ์ฐ๋ | โญโญโญ ์ผ๋ถ ์ง์ | โญ ์ง์ ๋ถ์์ |
์บ์ฑ ์ ๋ต | โญโญโญโญโญ ์๋ ์บ์ฑ | โญโญโญโญโญ Stale-While-Revalidate | โญโญโญโญโญ ์บ์ฑ ์ ๋ต ์ ์ฐ |
ํ์ ์์ ์ฑ | โญโญโญโญ TypeScript ์ง์ | โญโญโญโญ TypeScript ์ง์ | โญโญโญโญโญ TS + Zod ํตํฉ ์ฐ์ |
์๋ฌ ํธ๋ค๋ง | โญโญโญโญโญ Error Boundary ์๋ ์ฐ๋ | โญโญโญโญ ์๋ ์๋ฌ ํธ๋ค๋ง ํ์ | โญโญโญโญ ์๋ ์ค์ ํ์ |
๋ฐ์ดํฐ ๋ฆฌํ์น | โญ ๊ธฐ๋ณธ ์์ (์๋ ๊ตฌํ ํ์) | โญโญโญโญโญ focus/revalidate ์๋ | โญโญโญโญโญ ๋ค์ํ ๋ฆฌํ์น ์ต์ ์ง์ |
ํด๋ผ์ด์ธํธ ์ ํฉ์ฑ | โญ ์๋ฒ ์ ์ฉ | โญโญโญโญโญ ํด๋ผ์ด์ธํธ ์ ์ฉ | โญโญโญโญโญ ํด๋ผ์ด์ธํธ ์ ์ฉ |

-
๋ฌ๋ ์ปค๋ธ ๊ฑฐ์ ์์
โ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ
Zod
์ฌ์ฉ ๊ฒฝํ ์์โ ๋น ๋ฅด๊ฒ ๋์ ๊ฐ๋ฅํ๊ณ ์์ฐ์ฑ ํฅ์
-
ํ์ ์คํฌ๋ฆฝํธ์ ๋์ ํธํ์ฑ
โ
Zod
๋ ๋ฐํ์๊ณผ ํ์ ๋ ๋ฒจ์์ ๋ชจ๋ ํ์ ๊ฒ์ฆ ๊ฐ๋ฅโ
z.infer
๋ฅผ ํตํด API ์๋ต, ํผ ๋ฐ์ดํฐ ๋ฑ์ ํ์ ์์ ์ฑ ํ๋ณด ๊ฐ๋ฅ -
์ผ๊ด๋ ์ ํจ์ฑ ๊ฒ์ฌ ๊ตฌ์กฐ
โ ์๋ฒ์ ํด๋ผ์ด์ธํธ์์ ๋์ผํ ์คํค๋ง๋ก ๊ฒ์ฆ ๊ฐ๋ฅ
โ ์ค๋ณต ๋ก์ง ์์ด ์ ์ง๋ณด์์ ์ ๋ฆฌ
-
๋ค์ํ ๋ฒ์ฉ์ฑ
โ form validation, API ์๋ต ์คํค๋ง ๊ฒ์ฆ, query param validation ๋ฑ
โ ์ ๋ฐ์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ์์ ์ฌ์ฉ ๊ฐ๋ฅ
-
Next.js App Router์์ ๋์ ํธํ์ฑ
โ ๋ํ ์๋น์ค์์ ์ ํํ ์๋ฒ ์ก์ / Route Handler์์ ๋์ผํ ์คํค๋ง ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
-
ํน๋ณํ๊ฒ 3.24.3 ๋ฒ์ ์ ์ ์ ํ ์ด์
โ ๊ฐ์ฅ ์ต์ ์ ์์ ๋ฒ์
โ 2 ๋ฒ์ ์๋ ์์๋ z.custom() ์๊ธฐ๋ฉด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ์ง ์๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ ์ปค์คํ ๊ฐ๋ฅ.
โ ๋ํ ์๋น์ค์๋ ํน๋ณํ ์ปค์คํ ํด์ผ ํ ์ ํจ์ฑ ์ฒ๋ฆฌ๊ฐ ์์ ๊ฒ์ผ๋ก ์์ํ๋, ํ์ ์์ ์ฑ๋ ๊ฐ์ ๋์๊ธฐ ๋๋ฌธ์ v2 ๋ฅผ ์ฌ์ฉ ํ ๋ ผ๋ฆฌ๊ฐ ๋ ๋ถ์กฑํ๋ค๊ณ ํ๋จ.
-
์๋ฒ์ ํด๋ผ์ด์ธํธ ์คํค๋ง ๊ณต์ ์ฌ๋ถ
โ ์ ๋ ฅ๊ฐ ์คํค๋ง๋ฅผ ๊ณตํต์ผ๋ก ์ฌ์ฌ์ฉํ๊ธฐ ์ํด,
zodSchemas
ํด๋ ๋ฑ์ผ๋ก ๋ถ๋ฆฌ -
์๋ฌ ๋ฉ์์ง ์ปค์คํฐ๋ง์ด์ง
โ ๊ธฐ๋ณธ ๋ฉ์์ง ์ธ์ ์ฌ์ฉ์ ์นํ์ ์ธ ์๋ฌ ๋ฉ์์ง ์ปค์คํฐ๋ง์ด์ง ๊ณ ๋ ค ํ์
-
์ฑ๊ณผ
โ ๋ฐํ์ ๊ฒ์ฆ์ด๊ธฐ ๋๋ฌธ์ ๋ฒ๋ค ํฌ๊ธฐ ๊ณ ๋ ค ํ์ (ํ์ง๋ง Zod๋ ๋งค์ฐ ๊ฒฝ๋)
ํ๊ฐ ๊ธฐ์ค | Zod | React Hook Form (RHF) | Yup |
---|---|---|---|
ํ์ ์คํฌ๋ฆฝํธ ํธํ์ฑ | โญโญโญโญโญ ์ต๊ณ ์์ค | โญโญโญโญ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์กฐํฉ | โญโญโญ ํ์ ๋ณด์ ํ์ |
๋ฌ๋ ์ปค๋ธ | โญโญโญโญโญ ์ง๊ด์ API | โญโญโญโญ ์ด๊ธฐ ํ์ต ํ์ | โญโญโญ ์ฝ๊ฐ ๋ ๋ณต์ก |
ํด๋ผ์ด์ธํธ ๊ฒ์ฆ | โญโญโญโญ | โญโญโญโญโญ | โญโญโญโญ |
์๋ฒ/ํด๋ผ์ด์ธํธ ์คํค๋ง ๊ณต์ | โญโญโญโญโญ | โญ๏ธ ๋ถ๊ฐ | โญ๏ธ ๋ถ๊ฐ |
์ปค์คํฐ๋ง์ด์ง ์ ์ฐ์ฑ | โญโญโญโญ | โญโญโญโญโญ | โญโญโญโญ |
์๋ฌ ๋ฉ์์ง ์ปค์คํฐ๋ง์ด์ง | โญโญโญโญ | โญโญโญโญ | โญโญโญโญ |
๋ฒ๋ค ํฌ๊ธฐ ์ํฅ | โญ ์กฐ๊ธ ์์ | โญ๏ธ ๊ฑฐ์ ์์ | โญ๏ธ ๊ฒฐํฉ์ฑ (React Query ๋ฑ) |
๊ฒฐํฉ์ฑ (React Query ๋ฑ) | โญโญโญโญโญ | โญ๏ธ | โญ |

-
์นด์นด์ค๋ถํธ์บ ํ์์ ์ฐ๊ด์ฑ
โ ๋ํ ์๋น์ค๋ ์นด์นด์ค ๋ถํธ์บ ํ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ๋๋ ํ๋ก์ ํธ์ด๋ฉฐ, ์นด์นด์ค์ ์ฐ๊ด์ฑ์ ๊ณ ๋ คํด ์นด์นด์ค๋งต์ ์ฐ์ ์ ์ผ๋ก ์ ํ
-
์ฌ์ฉ์ ์นํ์ ์ธํฐํ์ด์ค
โ ๊ตญ๋ด ์ฌ์ฉ์์๊ฒ ์ต์ํ ์ง๋ UI ์ ๊ณต
โ ์ค์๊ฐ ๊ธธ์ฐพ๊ธฐ, ์ฅ์ ๊ฒ์, ๋ง์ปค ์ปค์คํฐ๋ง์ด์ง ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ ์ ๊ณต
-
JavaScript SDK ๊ธฐ๋ฐ์ ํ๋ก ํธ์๋ ์นํ์ฑ
โ React ํ๊ฒฝ์์ ์ฝ๊ฒ ์ฐ๋ ๊ฐ๋ฅ (e.g.,
useEffect
๊ธฐ๋ฐ ์ง๋ ์ด๊ธฐํ)โ ๋ง์ปค, ํด๋ฌ์คํฐ, ์ธํฌ์๋์ฐ ๋ฑ์ ์์๋ฅผ ์ฝ๋ ๋ ๋ฒจ์์ ์ง์ ์ ์ด ๊ฐ๋ฅ
-
๋น์ฉ ์ธก๋ฉด ์ ๋ฆฌ
โ ๊ธฐ๋ณธ ํ ๋น๋์ด ๋๊ณ , ๊ณผ๊ธ ์ ์ฑ ์ด ๋น๊ต์ ์ ์ฐํจ
โ ๋ฌด๋ฃ๋ก๋ ์ถฉ๋ถํ MVP ๊ฐ๋ฐ ๊ฐ๋ฅ
-
ํน๋ณํ๊ฒ 2.7.5 ๋ฒ์ ์ ์ ์ ํ ์ด์
โ ์๋ฌ ์์ ์ด๋ ๋ด๋ถ ์ฝ๋ ๊ฐ์ ๋ ์ด๋ ฅ ํ์ธ ํ ์ต์ ๋ฒ์ ์ ํ
โ ๊ธฐ๋ฅ์ ๋ํ ํน๋ณ์ ์ ์ฐพ์ ์ ์์์.
-
์ง๋ ๋ก๋ฉ ๋ฐฉ์
- ์ด๊ธฐ ํ์ด์ง ๋ก๋ฉ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ผ๋ฏ๋ก ๋น๋๊ธฐ ๋ก๋ฉ ๋ฐ ๋ก๋ฉ ์ํ ์ฒ๋ฆฌ ํ์
-
Suspense
๋๋ Lazy load๋ฅผ ํตํ ์ง์ฐ ๋ก๋ฉ ๊ณ ๋ ค
-
์ง๋ SDK ๋ฒ์
- ์นด์นด์ค๋งต์ 2D/3D ๋ฒ์ ์ด ์์ผ๋ฉฐ, ๋๋ถ๋ถ์ ์๋น์ค๋ 2D SDK๋ฅผ ์ฌ์ฉ
-
๋ง์ปค, ์ค๋ฒ๋ ์ด, ํด๋ฌ์คํฐ๋ง ๊ตฌํ
- ์ปค์คํ ๋ง์ปค, ๋ค์ค ์ฅ์ ๋ ๋๋ง ์ ์ฑ๋ฅ ์ต์ ํ ๊ณ ๋ ค
- LLM ์๋ต์ ๋ฐ๋ฅธ ๋ง์ปค ๋์ ๊ฐฑ์ ๊ธฐ๋ฅ ๊ตฌํ ์์
-
API ์ ํ ๋ฐ ์ฌ์ฉ๋
- ํ๋ฃจ ํธ์ถ ์ ํ(๊ธฐ๋ณธ 30๋ง ๊ฑด) ์ด๊ณผ ์ ๋๋น์ฑ ํ์
- ํค ๋ณด์ (๋๋ฉ์ธ ์ ํ, ์๋ฒ์ฌ์ด๋ ํ๋ก์) ์ ์ฉ
ํ๊ฐ ๊ธฐ์ค | Kakao Map | Naver Map | Google Map |
---|---|---|---|
๋ก์ปฌํ | โญโญโญโญโญ ํ๊ตญ์ ์ต์ ํ | โญโญโญโญ ํ๊ตญ์ ์ต์ ํ | โญโญโญ ๊ธ๋ก๋ฒ ์์ฃผ |
์ปค๋ฎค๋ํฐ/์ง์ | โญโญโญโญ ๋ถํธ์บ ํ/๊ตญ๋ด ์ปค๋ฎค๋ํฐ | โญโญโญ ๊ตญ๋ด ์ปค๋ฎค๋ํฐ | โญโญโญโญโญ ๊ธ๋ก๋ฒ ๋ฌธ์, ๋ ํผ๋ฐ์ค ํ๋ถ |
๊ธฐ๋ฅ ๋ค์์ฑ | โญโญโญโญ ๋ง์ปค, ํด๋ฌ์คํฐ, ์ฅ์ ๊ฒ์ ๋ฑ ํ๋ถ | โญโญโญโญ ๋น์ทํ ์์ค | โญโญโญโญโญ ํ๋ถํ๋ ์ ๋ฃ |
ํ๋ก ํธ์๋ ์ฐ๋ ํธ์์ฑ | โญโญโญโญ JS SDK, ์ง์ ์ปจํธ๋กค ๊ฐ๋ฅ | โญโญโญ JS SDK ์ ๊ณต | โญโญ SDK ๊ตฌ์กฐ ๋ณต์ก |
๋น์ฉ | โญโญโญโญ ๊ธฐ๋ณธ ๋ฌด๋ฃ, ๊ณผ๊ธ ์ ์ฐ | โญโญโญ ๊ธฐ๋ณธ ๋ฌด๋ฃ, ์ฌ์ฉ๋ ์ ํ | โญ ์ ๋ฃ ๊ธฐ๋ฐ, ๊ณผ๊ธ ํผ |
์ฌ์ฉ์ ๊ฒฝํ | โญโญโญโญโญ ์น์ํ UI, ๊ตญ๋ด ์ต์ ํ | โญโญโญโญโญ ์น์ํ UI, ๊ตญ๋ด ์ต์ ํ | โญ UI ์์ด, ๋ฏ์ค ์ ์์ |
์ง๋ ์ปค์คํฐ๋ง์ด์ง | โญโญโญโญ ๋ง์ปค, ์ค๋ฒ๋ ์ด ์์ ๋ ๋์ | โญโญโญ ์ ์ฝ ์์ | โญโญโญโญโญ ๋ค์ํ ์ต์ ์ ๊ณต |

-
Next.js์ ์ข ์์ ์ด์ง๋ง, ๋ํ ์๋น์ค๋ Next.js ์ฌ์ฉํ๊ณ ์์ด์ ์๋ก์ด ๋น๋ ๋๊ตฌ๋ฅผ ์ค์ ํด์ผ ํ ๋ ผ๋ฆฌ ๋ถ์กฑ.
-
Webpack fallback ๊ธฐ๋ฅ๋ ๊ทธ๋๋ก ์ ์ง๋๊ธฐ ๋๋ฌธ์, Turbopack์ด ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ Webpack์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
โ ์ค์ฉ์ ์ธ ์ ์ฐ์ฑ ํ๋ณด
-
Next.js ํ์์ ์ง์ ๊ด๋ฆฌํ๋ ๋น๋ ํด์ด๊ธฐ ๋๋ฌธ์, ์ต์ ๋ฒ์ ์ ๊ธฐ๋ฅ๊ณผ API๋ค๊ณผ๋ ๊ฐ์ฅ ๋์ ํธํ์ฑ์ ๊ฐ์ง.
-
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ๋ก ๋ฒ๋ค๋ง ์๋, ๋น ๋ฅธ HMR, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฑ Rust ๊ธฐ๋ฐ ์ฑ๋ฅ ํฅ์์ด ์ ์ฉ๋จ.
-
์๋ ํธ๋ฆฌ์์ดํน, ์ด๋ฏธ์ง ์ต์ ํ, ์ฝ๋ ์คํ๋ฆฌํ , ๋ฏธ๋ค์จ์ด ๊ธฐ๋ฐ SSR๊น์ง ๋ชจ๋ ๊ธฐ๋ณธ ์ ๊ณต๋์ด ๋ณ๋ ์ค์ ์ด ๊ฑฐ์ ํ์ ์์.
-
ํน๋ณํ๊ฒ 1.5.3 ๋ฒ์ ์ ์ ์ ํ ์ด์
โ Next.js
15.3.0
์ ํตํฉ๋์ด ํจ๊ป ์ ๊ณต๋๋ ๋ด๋ถ Turbopack ๋ฒ์ โ
1.5.x
๋๋ ์ค์ ๋ก ๋ง์ ์ฌ์ฉ์๋ค์ด ์ค์๋น์ค์ ๋์ ์ค์ธ ์์ ์ฑ ๋์ ๋ฆด๋ฆฌ์ฆ์ด๋ฉฐ, ๋ฒ ํ๋ ์ํ ํ๊ทธ๊ฐ ๋ถ์ ์คํ ๋ฒ์ ์ด ์๋.โ Next.js ํ์์ ์ง์ ๊ด๋ฆฌํ๋ ๋น๋ ํด์ด๊ธฐ ๋๋ฌธ์, ์ต์ ๋ฒ์ ์ ๊ธฐ๋ฅ๊ณผ API๋ค๊ณผ๋ ๊ฐ์ฅ ๋์ ํธํ์ฑ์ ๊ฐ์ง.
- Turbopack์ ์์ง ์์ ํ Webpack ๋์ฒด๋ ์๋. ์ผ๋ถ ์ปค์คํ ์ค์ ์ด๋ ํ๋ฌ๊ทธ์ธ์ ์ ํ์ด ์์ ์ ์์.
ํ๊ฐ ๊ธฐ์ค | Next.js 15.3.0 (Turbopack) | Webpack | Vite |
---|---|---|---|
์๋ | โญโญโญโญ Rust ๊ธฐ๋ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ | โญ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ | โญโญโญโญ ESM + ์บ์ ํ์ฉ |
์ต์ ํ ๊ธฐ๋ฅ | โญโญโญโญ ๊ธฐ๋ณธ ์ ๊ณต | โญ ์ง์ ์ค์ ํ์ | โญโญโญ ํ๋ฌ๊ทธ์ธ ํ์ฉ ํ์ |
์ปค์คํฐ๋ง์ด์ง | โญ ์ ํ์ | โญโญโญโญ ์์ ๋ ๋์ | โญโญโญโญ ๊ฐ๋จํ ์ค์ ์ผ๋ก ๊ฐ๋ฅ |
์ํ๊ณ | โญโญโญ Next.js ์ค์ฌ | โญโญโญโญ ๋ฒ์ฉ | โญโญโญโญ ๋ฒ์ฉ + React ์นํ์ |
ํ๋ก์ ํธ์์ ํธํ์ฑ | โญโญโญโญโญโญโญ Next.js ๊ธฐ๋ณธ ์ ๊ณต | โญ ์ถ๊ฐ ์ค์ ํ์ | โญ Next.js์ ํตํฉ ๋ณต์ก๋ ์์ |