본문 바로가기
개발 공부/서버

[서버 기초] CI/CD란? 개발 → 배포를 자동으로 만드는 비밀

by 악마의 개발자 2025. 4. 15.
반응형


💡 “코드 수정했는데, 매번 배포하기 너무 귀찮다…”

개발을 하다 보면 이런 상황 많죠?

✅ 로컬에서 테스트
✅ Git에 커밋 & 푸시
❌ 그런데… 서버에는 아직 반영 안 됨
❌ 수동으로 배포하고, 버전 맞추고, 실수 생기고…

 

이런 귀찮음과 실수를 줄여주는 게 바로 CI/CD 시스템이에요! 😊


🧩 CI/CD란?

용어 핵심 기능
CI Continuous Integration 자동 테스트 & 코드 병합
CD Continuous Deployment 자동 배포 (또는 Continuous Delivery)

즉, “코드를 푸시하면 자동으로 테스트하고, 서버에 바로 반영까지 해주는 시스템”이에요!


🔁 CI/CD 전체 흐름

1. 개발자가 Git에 코드 푸시
2. 테스트 자동 실행 (CI)
3. 빌드/패키징
4. 서버에 자동 배포 (CD)
5. 웹사이트에 반영 완료!

이 과정을 자동화하면 개발 속도 향상 + 에러 감소 + 팀워크 강화 효과가 생겨요!


🛠️ CI/CD를 구현하는 주요 도구들

✅ 1. GitHub Actions

  • 깃허브에서 직접 제공하는 CI/CD 툴
  • .github/workflows 폴더에 yml 파일 작성
  • 무료 + 쉬운 설정 → 개인 프로젝트에 강력 추천

✅ 2. Jenkins

  • 오픈소스 CI/CD 툴
  • 커스터마이징이 매우 강력하지만 설치와 설정이 복잡
  • 기업에서 많이 사용

✅ 3. GitLab CI/CD

  • GitLab에서 제공
  • GitHub Actions와 유사
  • 자체 호스팅 프로젝트에 적합

✅ 4. Vercel / Netlify

  • 프론트엔드 프로젝트에 특화된 CI/CD 서비스
  • Git에 푸시하면 자동 배포 완료! (Next.js, React 등)

📦 GitHub Actions 예시

 
name: Deploy App

on:
  push:
    branches: [ main ]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install
      - run: npm run build
      - run: npm run deploy

이 설정만 해두면,

main 브랜치에 푸시할 때마다 자동으로 빌드 & 배포!


✅ CI/CD 도입의 장점

장점 설명
🚀 배포 자동화 수동 배포의 실수 줄이기
🧪 테스트 자동화 코드 품질 유지
⏱️ 속도 향상 개발 → 배포 시간 단축
🧑‍💻 협업 강화 누가 언제 뭘 했는지 명확

🤔 실무에서 주의할 점

  • 테스트가 깨진 상태로 배포되면 큰일! → CI에서 반드시 테스트 먼저!
  • 배포 환경 변수, 보안 키는 별도로 관리 (.env, GitHub Secrets 등)
  • 운영 서버에 바로 배포하는 경우, 롤백 시스템도 고려해야 함

🧠 정리 한마디!

  • CI: 코드를 Git에 푸시하면 자동으로 테스트하고
  • CD: 그 결과를 서버에 자동으로 반영
  • 도구: GitHub Actions, Jenkins, Vercel 등 다양
  • 개발 효율성과 협업 품질을 폭발적으로 끌어올리는 핵심 시스템!

📌 다음 예고: 17편 – “Reverse Proxy란? Nginx는 왜 꼭 필요할까?”

  • 여러 서버를 하나의 도메인에 연결하려면?
  • 리버스 프록시의 개념과 구조
  • 실무에서 Nginx가 쓰이는 이유 완전 정리!
 

[서버 기초] 리버스 프록시란? Nginx는 왜 항상 등장할까?

💡 “도메인은 하나인데, 서버는 여러 개일 땐 어떻게 해?”요즘 웹 서비스는 백엔드 서버, 프론트 서버, 이미지 서버, DB 서버 등기능별로 서버가 나뉘어져 있는 경우가 많아요.그런데 질문! ❓

it-afternoon.tistory.com

 

반응형