[DevCamp] ๐Ÿš€ CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ

๋™๊ฑดยท2025๋…„ 5์›” 16์ผ
0

DevCamp

๋ชฉ๋ก ๋ณด๊ธฐ
66/85

๐Ÿš€ CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ

CD(Continuous Delivery ๋˜๋Š” Continuous Deployment)๋Š”
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๋˜๋Š” ์ผ๋ จ์˜ ํ๋ฆ„์„ ์˜๋ฏธํ•œ๋‹ค.

์˜ค๋Š˜์€ CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์†Œ๊ฐœํ•œ๋‹ค.


๐Ÿงฑ CD ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€?

CD ํŒŒ์ดํ”„๋ผ์ธ์€ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋ฐฐํฌ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์ž๋™ํ™”๋œ ํ๋ฆ„์ด๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ํฌํ•จํ•œ๋‹ค:

  1. ์ฝ”๋“œ ํ‘ธ์‹œ(Commit)
  2. ์ž๋™ ๋นŒ๋“œ(Build)
  3. ํ…Œ์ŠคํŠธ(Test)
  4. ๋ฐฐํฌ(Deploy)

์ด๋ฅผ ํ†ตํ•ด ๋ฆด๋ฆฌ์ฆˆ ์ฃผ๊ธฐ๋ฅผ ๋‹จ์ถ•ํ•˜๊ณ , ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์‹ ์†ํ•œ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.


๐Ÿ”ง ๋„๊ตฌ ๊ตฌ์„ฑ ์˜ˆ์‹œ

  • GitHub: ์ฝ”๋“œ ์ €์žฅ์†Œ
  • Jenkins / GitHub Actions: CI/CD ์ž๋™ํ™” ๋„๊ตฌ
  • Docker: ์ปจํ…Œ์ด๋„ˆํ™”
  • Kubernetes / AWS / Vercel ๋“ฑ: ๋ฐฐํฌ ํ™˜๊ฒฝ

โš™๏ธ GitHub Actions๋กœ CD ๊ตฌ์„ฑ ์˜ˆ์‹œ

๊ฐ„๋‹จํ•œ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Vercel๋กœ ๋ฐฐํฌํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

# .github/workflows/deploy.yml
name: Deploy to Vercel

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Code
      uses: actions/checkout@v3

    - name: Install Dependencies
      run: npm install

    - name: Build Project
      run: npm run build

    - name: Deploy to Vercel
      uses: amondnet/vercel-action@v20
      with:
        vercel-token: ${{ secrets.VERCEL_TOKEN }}
        vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
        vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
        working-directory: ./

๐Ÿ“Œ ์ฃผ์˜ํ•  ์ 

  • ๋ฐฐํฌ ํ† ํฐ ๋ฐ ๋ฏผ๊ฐ ์ •๋ณด๋Š” GitHub Secrets์— ์ €์žฅํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • ๋นŒ๋“œ ์‹คํŒจ ์‹œ ๋ฐฐํฌ๊ฐ€ ์ค‘๋‹จ๋˜๋„๋ก ์กฐ๊ฑด ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

โœ… CD ๊ตฌ์ถ•์˜ ์žฅ์ 

  • ์ž๋™ํ™”๋กœ ๊ฐœ๋ฐœ ํšจ์œจ ํ–ฅ์ƒ
  • ์‹ ์†ํ•œ ๋ฐฐํฌ ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ๋‹จ์ถ•
  • ์—๋Ÿฌ ๊ฐ์†Œ: ์‚ฌ๋žŒ ์†์ด ๋‹ฟ์ง€ ์•Š๊ธฐ์— ์‹ค์ˆ˜ ์ค„์–ด๋“ฆ

๐Ÿ”จ TIL

  • GitHub Actions๋กœ CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šตํ•จ
  • vercel-action์„ ์ด์šฉํ•ด ์™ธ๋ถ€ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์— ์ž๋™ ๋ฐฐํฌํ•˜๋Š” ํ๋ฆ„์„ ๊ตฌ์„ฑํ•จ
  • CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ตฌ์กฐ์™€ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ฒŒ ๋จ
profile
๋ฐฐ๊ณ ํ”ˆ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€