ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ Next.js Multi-Zones: ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ์ํ ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋ ์ ๋ต
octo54 2025. 6. 2. 10:58
๐ Next.js Multi-Zones: ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ์ํ ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋ ์ ๋ต
Next.js๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ ์ฑ์ ๊ธฐ์ค์ผ๋ก ๋์ํ์ง๋ง, ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ๊ธฐ๋ฅ์ ์ฌ๋ฌ ๊ฐ์ ์ฑ์ผ๋ก ๋๋ ์ผ ํ ํ์๊ฐ ์๊น๋๋ค. ์ด๋ ์ ์ฉํ ๊ธฐ๋ฅ์ด ๋ฐ๋ก Multi-Zones์ ๋๋ค.
โ Multi-Zones๋?
Multi-Zones๋ ํ๋์ ๋๋ฉ์ธ(์: example.com)์์ ์ฌ๋ฌ ๊ฐ์ Next.js ์ฑ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก์ ๋ฐฐ์นํ์ฌ ํ๋์ ํตํฉ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ์ ๊ณตํ๋ ๊ตฌ์กฐ์ ๋๋ค.
์์:
- / → main-app
- /blog → blog-app
- /admin → admin-app
๊ฐ ์ฑ์ ์๋ก ์์ ํ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ·๋ฐฐํฌํ ์ ์์ผ๋ฉด์๋, ์ฌ์ฉ์์๊ฒ๋ ํ๋์ ์ฌ์ดํธ์ฒ๋ผ ๋ณด์ ๋๋ค.
โ ์ธ์ ์ฌ์ฉํ๋?
- ํ๋ณ๋ก ์ฑ์ ๋ถ๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ๊ธฐ๋ฅ ๋จ์๋ก ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋๋๊ณ ์ถ์ ๊ฒฝ์ฐ
- ๋ค์ํ ๊ธฐ์ ์คํ์ ์กฐํฉํด ์ด์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ (์: ํ ์ฑ์ Next.js, ๋ค๋ฅธ ์ฑ์ Astro)
โ ์ค์ ๋ฐฉ๋ฒ
1. ์ฑ ๋ถ๋ฆฌ
์๋ฅผ ๋ค์ด:
npx create-next-app main-app
npx create-next-app blog-app
2. ๊ฐ ์ฑ์ basePath ์ค์
// blog-app/next.config.js
module.exports = {
basePath: '/blog',
assetPrefix: '/blog',
};
3. ๋ฉ์ธ ์ฑ์์ ํ๋ก์ ์ค์
// main-app/next.config.js
module.exports = {
async rewrites() {
return [
{
source: '/blog/:path*',
destination: 'http://localhost:3001/blog/:path*',
},
];
},
};
์ด๋ ๊ฒ ํ๋ฉด example.com/blog/*๋ก ๋ค์ด์ค๋ ์์ฒญ์ blog-app์ผ๋ก ํ๋ก์ํ๊ฒ ๋ฉ๋๋ค.
โ ๋ค๋น๊ฒ์ด์ ์ฒ๋ฆฌ
- ๊ฐ์ ์ฑ(Zone) ๋ด์์๋ <Link> ์ฌ์ฉ
- ๋ค๋ฅธ ์ฑ์ผ๋ก ์ด๋ํ ๋๋ <a href="/blog"> ๊ฐ์ ์ ์ฒด ํ์ด์ง ๋ฆฌ๋ก๋ ๋ฐฉ์ ์ฌ์ฉ
โ ์ฝ๋ ๊ณต์ ๋ ์ด๋ป๊ฒ?
์ฌ๋ฌ ์ฑ ๊ฐ์ ์ปดํฌ๋ํธ๋ ์ ํธ์ ๊ณต์ ํ๋ ค๋ฉด ๋ชจ๋ ธ๋ ํฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. apps/, packages/ ๊ตฌ์กฐ๋ก ๋๋๊ณ , pnpm, yarn workspaces, turborepo ๋ฑ์ ํ์ฉํ์ธ์.
โ ์์ฝ
ํญ๋ชฉ ์ค๋ช
์ํคํ ์ฒ | ์ฑ์ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌ (Zone) |
๋ค๋น๊ฒ์ด์ | ๊ฐ์ Zone: Link, ๋ค๋ฅธ Zone: a |
๋ฐฐํฌ ์ ๋ต | ์ฑ๋ณ ๋ ๋ฆฝ ๋ฐฐํฌ ๊ฐ๋ฅ |
์ฝ๋ ๊ณต์ ๋ฐฉ์ | ๋ชจ๋ ธ๋ ํฌ ๊ธฐ๋ฐ ํจํค์ง ๊ณต์ |
ํ์ฉ ์์ | ๋๊ท๋ชจ SaaS, Admin ๋ถ๋ฆฌ, ๋ค์ํ ๋ ๋๋ง ๋ฐฉ์ ํผํฉ ์ด์ |
๐ ๋ง๋ฌด๋ฆฌ
Multi-Zones๋ ๋จ์ํ ๊ตฌ์กฐ์ Next.js ์ฑ์๋ ํ์ํ์ง ์์ง๋ง, ํ๋ก์ ํธ๊ฐ ์ปค์ง๊ณ ์กฐ์ง์ด ๋ถํ๋ ์๋ก ๋งค์ฐ ์ ์ฉํด์ง๋๋ค. ํนํ ๋ชจ๋ ธ๋ ํฌ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์์ ์ก์ ์ ์์ต๋๋ค.
Next.js, App Router, Multi-Zones, ๋ชจ๋ ธ๋ ํฌ, ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋, ๊ธฐ๋ฅ ๋ถ๋ฆฌ, ๋ ๋ฆฝ ๋ฐฐํฌ, Nginx Proxy, basePath, assetPrefix, SaaS ๊ตฌ์กฐ, ๋๊ท๋ชจ ํ๋ก ํธ์๋ ์ํคํ ์ฒ
'framework > NextJS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- NestJS
- seo ์ต์ ํ 10๊ฐ
- PostgreSQL
- Ktor
- llm
- Python
- rag
- Next.js
- ํ๋ก ํธ์๋
- ์น๊ฐ๋ฐ
- ํ๋ก ํธ์๋๋ฉด์
- Webpack
- nodejs
- SEO ์ต์ ํ
- ๋ฅ๋ฌ๋
- ๋ฐฑ์๋๊ฐ๋ฐ
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- App Router
- gatsbyjs
- Docker
- fastapi
- nextJS
- Prisma
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
- kotlin
- CI/CD
- REACT
- SEO์ต์ ํ
- JAX
- AI์ฑ๋ด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |