๐ ๋ฐฐํฌ ํ๊ฒฝ๊ณผ ๋ฐฐํฌ ๋๊ตฌ ์์ ์ ๋ณต

์๋น์ค ๊ฐ๋ฐ์ ๋ง์ง๋ง ๋จ๊ณ๋ ๋ฐฐํฌ(Deployment)์ด๋ค.
์๋ฌด๋ฆฌ ์ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์
๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ค๋ฉด ๋ฌด์ฉ์ง๋ฌผ์ด๋ค.
์ค๋์ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ฐ๋
๊ณผ, ์ค๋ฌด์์ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐฐํฌ ๋๊ตฌ๋ค์ ์ ๋ฆฌํ๋ค.
๐ ๋ฐฐํฌ ํ๊ฒฝ์ด๋?
์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋ ์ค์ ์๋ฒ ํน์ ์๋น์ค ํ๊ฒฝ
1. ์ข
๋ฅ
- ๊ฐ๋ฐ(Dev): ๊ฐ๋ฐ์ ํ
์คํธ์ฉ, ๋น ๋ฅธ ๋ฐ์์ด ์ค์
- ์คํ
์ด์ง(Staging): ์ค์ ์๋น์ค์ ์ ์ฌํ ํ
์คํธ ํ๊ฒฝ
- ํ๋ก๋์
(Production): ์ค์ ์๋น์ค๊ฐ ๋์๊ฐ๋ ์ด์ ํ๊ฒฝ
โ๏ธ ๋ฐฐํฌ ์ ๋ต
| ์ ๋ต | ์ค๋ช
|
|---|
| ์๋ ๋ฐฐํฌ | ๋ช
๋ น์ด ํน์ Git ํธ์ ํ ์ง์ ๋ฐฐํฌ |
| CI/CD ์๋ ๋ฐฐํฌ | ์ปค๋ฐ/PR ๋ฐ์ ์ ์๋ ๋ฐฐํฌ๋๋๋ก ์ค์ |
| ๋ธ๋ฃจ-๊ทธ๋ฆฐ | ๋ ๊ฐ์ ํ๊ฒฝ์ ๋ฒ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฌด์ค๋จ ๋ฐฐํฌ |
| ์นด๋๋ฆฌ | ์ผ๋ถ ์ฌ์ฉ์์๊ฒ ๋จผ์ ๋ฐฐํฌํ๊ณ ์ ์ง์ ํ๋ |
๐ ๏ธ ๋ํ์ ์ธ ๋ฐฐํฌ ๋๊ตฌ๋ค
1. Vercel / Netlify
- ์ ์ ์ฌ์ดํธ ๋๋ ํ๋ก ํธ์๋ ๋ฐฐํฌ์ ํนํ
- GitHub์ ์ฐ๋๋์ด ์๋ ๋ฐฐํฌ ๊ฐ๋ฅ
2. GitHub Actions
- CI/CD ํ์ดํ๋ผ์ธ ์์ฑ ๊ฐ๋ฅ (๋น๋/ํ
์คํธ/๋ฐฐํฌ)
- ๋ค์ํ ํ๊ฒฝ๋ณ์ ๋ฐ ์ํฌ๋ฆฟ ์ค์ ์ผ๋ก ์ ์ฐํจ
3. Docker + AWS / GCP
- ์ปจํ
์ด๋ ๊ธฐ๋ฐ ๋ฐฐํฌ๋ก ์ด๋์๋ ๋์ผํ ํ๊ฒฝ ์ ์ง ๊ฐ๋ฅ
- ECS, EKS, GKE ๋ฑ ํด๋ผ์ฐ๋ ๋งค๋์ง๋ ์๋น์ค ํ์ฉ ๊ฐ๋ฅ
๐ GitHub Actions๋ก ๋ฐฐํฌํ๊ธฐ (์์)
name: Deploy to Vercel
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Deploy to Vercel
run: npx vercel --prod --token=${{ secrets.VERCEL_TOKEN }}
โ
๋ฐฐํฌ ์ ์ฒดํฌ๋ฆฌ์คํธ
- ํ๊ฒฝ๋ณ์๋
.env ๋์ ํ๊ฒฝ์ ๋ฐ๋ผ ์ฃผ์
๋๋๋ก ๊ตฌ์ฑ
- ํ
์คํธ๊ฐ ํต๊ณผ๋ ์ปค๋ฐ๋ง ๋ฐฐํฌ๋๋๋ก ์ค์
- ๋ชจ๋ํฐ๋ง ๋๊ตฌ(Grafana, Sentry ๋ฑ) ์ฐ๋ ๊ณ ๋ ค
- ์ฅ์ ๋์์ ์ํ ๋กค๋ฐฑ ์ ๋ต ๋ง๋ จ
๐ง TIL
- ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ ๋ณ๊ฐ๊ฐ ์๋๋ค. ๋ฐฐํฌ๋ฅผ ๊ณ ๋ คํ ๊ฐ๋ฐ์ด ๋์ด์ผ ํ๋ค.
- ํด๋ผ์ฐ๋ ํ๊ฒฝ์์์ ๋ฐฐํฌ๋ ๋จ์ ํ์ผ ์
๋ก๋๊ฐ ์๋๋ผ, ์ธํ๋ผ์ ๋คํธ์ํฌ์ ๋ํ ์ดํด๊ฐ ์๋ฐ๋๋ค.
- ์๋ํ๋ ๋ฐฐํฌ๋ ๋ฐ๋ณต ์์
์ ์ค์ด๊ณ ์ค์๋ฅผ ๋ฐฉ์งํ๋ ์ต๊ณ ์ ๋ฐฉ๋ฒ์ด๋ค.