ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ Next.js ํ๊ฒฝ ๋ณ์ ์ค์ ๊ฐ์ด๋
Next.js์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๋ค์ํ ํ๊ฒฝ์ ๋ง์ถฐ ์ค์ ๊ฐ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ, ํ
์คํธ, ํ๋ก๋์
ํ๊ฒฝ์ ๋ฐ๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ณ์ ๊ฐ์ ์ง์ ํ์ฌ ์ ์ฐํ ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.
โ 1. ๊ธฐ๋ณธ ํ๊ฒฝ ๋ณ์ ์ค์
ํ๊ฒฝ ๋ณ์ ํ์ผ ๊ตฌ์กฐ
Next.js์์๋ ๋ค์๊ณผ ๊ฐ์ ํ์ผ ์ด๋ฆ์ผ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค:
.env # ๊ธฐ๋ณธ ํ๊ฒฝ (๊ฐ๋ฐ)
.env.local # ๋ก์ปฌ ํ๊ฒฝ (Git์ ์ถ๊ฐํ์ง ์์)
.env.development # ๊ฐ๋ฐ ํ๊ฒฝ
.env.production # ํ๋ก๋์
ํ๊ฒฝ
.env.test # ํ
์คํธ ํ๊ฒฝ
ํ๊ฒฝ ๋ณ์ ํ์ผ ์์
.env
NEXT_PUBLIC_API_URL=https://api.example.com
SECRET_KEY=mysecretkey
ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ
Next.js์์๋ process.env ๊ฐ์ฒด๋ฅผ ํตํด ํ๊ฒฝ ๋ณ์๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
// app/page.tsx
export default function HomePage() {
return (
<div>
<h1>API URL: {process.env.NEXT_PUBLIC_API_URL}</h1>
</div>
);
}
โ 2. ํ๊ฒฝ ๋ณ์๋ช ๊ท์น
Next.js์์ ํด๋ผ์ด์ธํธ์์ ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์๋ ๋ฐ๋์ NEXT_PUBLIC_ ์ ๋์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ ๋์ด ์์ด ์ ์ธ๋ ๋ณ์๋ ์๋ฒ ์ธก์์๋ง ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์
NEXT_PUBLIC_ANALYTICS_ID=123456
์๋ชป๋ ์
API_SECRET_KEY=mysecretkey # ํด๋ผ์ด์ธํธ์์ ์ ๊ทผ ๋ถ๊ฐ
โ 3. ํ๊ฒฝ ๋ณ์ ๋ก๋ฉ ์์
- .env.local
- .env.development, .env.production, .env.test
- .env
์ฃผ์:
.env.local์ ํญ์ ๊ฐ์ฅ ์ฐ์ ์ ๋๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ์์ ์ ์ธํด์ผ ํฉ๋๋ค.
.env.production ํ์ผ์ ํ๋ก๋์ ๋น๋ ์์๋ง ์ฌ์ฉ๋ฉ๋๋ค.
โ 4. ์๋ฒ์์ ์ฌ์ฉํ๊ธฐ
์๋ฒ ์ ์ฉ ํ๊ฒฝ ๋ณ์๋ NEXT_PUBLIC_ ์ ๋์ด ์์ด ์ค์ ํ ์ ์์ต๋๋ค.
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
์ฌ์ฉ ์์
// app/api/data/route.ts
import { NextResponse } from 'next/server';
export async function GET() {
const dbUrl = process.env.DATABASE_URL;
return NextResponse.json({ url: dbUrl });
}
โ 5. ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๊ธฐ
ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋ NEXT_PUBLIC_ ์ ๋์ด๋ฅผ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
// app/page.tsx
export default function HomePage() {
return (
<div>
<h2>API Endpoint: {process.env.NEXT_PUBLIC_API_URL}</h2>
</div>
);
}
โ 6. ํ๊ฒฝ ๋ณ์ ์ค์ ๋ฐฉ๋ฒ
๊ฐ๋ฐ ํ๊ฒฝ
npm run dev
ํ๋ก๋์ ํ๊ฒฝ
npm run build
npm start
๋น๋ ์ ํ๊ฒฝ ๋ณ์ ์ค์
๋น๋ ์ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
NEXT_PUBLIC_API_URL=https://api.prod.com npm run build
๋ฐํ์ ์ ํ๊ฒฝ ๋ณ์ ์ค์
NEXT_PUBLIC_API_URL=https://api.prod.com npm start
โ 7. Vercel ํ๊ฒฝ ๋ณ์ ์ค์
Vercel์ ๋ฐฐํฌํ ๋๋ Vercel ๋์๋ณด๋์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์ ํ
- Settings → Environment Variables
- ํค์ ๊ฐ์ ์ ๋ ฅํ๊ณ ์ ์ฅ
๋ฐฐํฌ ํ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ์ฌ๋ฐฐํฌ๊ฐ ํ์ํฉ๋๋ค.
โ 8. ๋ฌธ์ ํด๊ฒฐ
ํ๊ฒฝ ๋ณ์๊ฐ ์ ๋ณด์ผ ๋
- ํ๊ฒฝ ๋ณ์ ์ด๋ฆ ์์ NEXT_PUBLIC_๊ฐ ์๋ ๊ฒฝ์ฐ
- ๋น๋ ํ ๊ฐ์ด ๋ฐ์๋์ง ์์ ๊ฒฝ์ฐ
- .env.local ํ์ผ์ด ์๋ ๊ฒฝ์ฐ
ํ์ธ ๋ฐฉ๋ฒ
npm run build && npm start
๋ธ๋ผ์ฐ์ ์์ ๋ค์์ ํ์ธํฉ๋๋ค:
API URL: https://api.prod.com
โ 9. ๋ณด์ ๊ณ ๋ ค ์ฌํญ
- ํด๋ผ์ด์ธํธ ๋ ธ์ถ ๋ฐฉ์ง: ๋ฏผ๊ฐํ ์ ๋ณด๋ NEXT_PUBLIC_ ์์ด ์ค์ ํ์ฌ ์๋ฒ ์ ์ฉ์ผ๋ก ์ฌ์ฉ
- ํ๊ฒฝ ๋ณ์ ๊ด๋ฆฌ: ๋ก์ปฌ ๊ฐ๋ฐ๊ณผ ํ๋ก๋์ ํ๊ฒฝ์ ๊ตฌ๋ถํ์ฌ ๊ด๋ฆฌ
- ๋น๋ฐํค ๊ด๋ฆฌ: .env.local์ Git์ ์ปค๋ฐ๋์ง ์๋๋ก .gitignore์ ์ถ๊ฐ
.gitignore
.env.local
โ ์์ฝ
ํญ๋ชฉ ์ค๋ช
ํ๊ฒฝ ๋ณ์ ํ์ผ ๊ตฌ์กฐ | .env, .env.local, .env.development ๋ฑ ๊ด๋ฆฌ |
ํด๋ผ์ด์ธํธ ์ ๊ทผ | NEXT_PUBLIC_ ์ ๋์ด ํ์ |
์๋ฒ ์ ์ฉ ๋ณ์ | ์ ๋์ด ์์ด ์ฌ์ฉ ๊ฐ๋ฅ |
Vercel ๋ฐฐํฌ ์ค์ | Vercel ๋์๋ณด๋์์ ํ๊ฒฝ ๋ณ์ ์ค์ ๊ฐ๋ฅ |
๋ณด์ ๊ณ ๋ ค ์ฌํญ | ๋ฏผ๊ฐ ์ ๋ณด๋ NEXT_PUBLIC_ ์ ๋์ด ์ฌ์ฉ ๊ธ์ง |
Next.js, ํ๊ฒฝ ๋ณ์, ํ๊ฒฝ ์ค์ , ํ๊ฒฝ ๋ณ์ ๊ด๋ฆฌ, ํด๋ผ์ด์ธํธ ํ๊ฒฝ ๋ณ์, ์๋ฒ ํ๊ฒฝ ๋ณ์, Vercel ํ๊ฒฝ ๋ณ์, ํ๊ฒฝ ๋ณ์ ๋ณด์, ์ค์ ํ์ผ ๊ด๋ฆฌ, ํ๊ฒฝ ๋ณ์ ๋๋ฒ๊น
'framework > NextJS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ Next.js์์ JSON-LD ์ฌ์ฉ ๊ฐ์ด๋ (0) | 2025.05.21 |
---|---|
๐ Next.js Instrumentation ๊ฐ์ด๋: ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ๊ด์ธก์ฑ ์ค์ (0) | 2025.05.20 |
๐ Next.js Draft Mode ์ฌ์ฉ ๊ฐ์ด๋ (0) | 2025.05.14 |
๐ชฒ Next.js ๋๋ฒ๊น ๊ฐ์ด๋ (0) | 2025.05.13 |
๐ ๏ธ Next.js์์ ์ปค์คํ ์๋ฒ(Custom Server) ๊ตฌ์ถํ๊ธฐ (0) | 2025.05.12 |
- Total
- Today
- Yesterday
- Next.js
- REACT
- ํ๋ก ํธ์๋
- ๋ฅ๋ฌ๋
- nextJS
- SEO ์ต์ ํ
- AI์ฑ๋ด
- seo ์ต์ ํ 10๊ฐ
- NestJS
- JAX
- ์น๊ฐ๋ฐ
- ๋ฐฑ์๋๊ฐ๋ฐ
- flax
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก ํธ์๋๋ฉด์
- Ktor
- nodejs
- gatsbyjs
- fastapi
- CI/CD
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- Prisma
- PostgreSQL
- llm
- Docker
- rag
- App Router
- SEO์ต์ ํ
- kotlin
- Python
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |