본문 바로가기
DevOps

[DevOps] CI/CD란? 개발부터 배포까지 자동화의 핵심

by 임혁진 2025. 4. 19.

출처:  https://pnghut.com/png/c3TiGwsLkJ/devops-business-process-software-development-deployment-technical-support-kms-technology-vietnam-transparent-png

CI/CD란?

CI/CD는 "지속적인 통합(Continuous Integration)"과
"지속적인 전달 또 배포 (Continuous Delivery / Deployment)"를 의미합니다.

복잡하고 반복적인 "배포" 과정을 자동화하여
더 빠르고 안정적인 소프트웨어 개발 주기를 가능하게 해줍니다.


🔧 용어 간단 정리

 

약어 의미 설명
CI Continuous Integration 개발자가 작성한 코드를 자주 통합하고, 테스트까지 자동화하는 과정
CD (1) Continuous Delivery 테스트를 마친 코드를 자동으로 배포 가능한 상태까지 준비
CD (2) Continuous Deployment 준비된 코드를 자동으로 운영 환경까지 배포하는 단계

 


CI/CD가 필요한 이유

  • ✅ 수동 배포의 불안정성 해결
  • ✅ 버그를 빠르게 발견하고 수정
  • ✅ 실시간 사용자 피드백에 빠르게 대응
  • ✅ 협업 개발 시 통합 충돌을 최소화
  • ✅ 개발-운영-테스트 간 경계 해소 (DevOps)

CI/CD 파이프라인 구조

전 과정 자동화!

단순 반복 작업을 줄이고, 개발자는 "개발"에만 집중


 예시 도구들

단계 도구
CI GitHub Actions, Jenkins, GitLab CI, Travis CI
CD ArgoCD, Spinnaker, GitHub Actions, AWS CodeDeploy
기타 Docker, Kubernetes, Ansible, Terraform 등

실제 예시 - GitHub Actions

# .github/workflows/main.yml

name: CI/CD Pipeline

on:
  push:
    branches: [ main ]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Build Docker image
        run: docker build -t myapp .

      - name: Deploy to Server
        run: |
          ssh user@server "docker pull myapp && docker-compose up -d"

코드 Push → Docker 이미지 빌드 → 서버 배포까지 자동으로 진행

 


CI와 CD의 관계 (비유)

마치 자동차 공장과 같음.

  • CI는 자동차를 조립하는 "생산 라인"
  • CD는 완성된 자동차를 검사하고 "운전까지 직접 해주는 단계"

즉, CI는 준비, CD는 실제 출고 과정이라 보면 됩니다.


마무리

CI/CD는 현대 소프트웨어 개발의 표준입니다.

  • 빠른 개발 사이클
  • 자동화된 품질 보증
  • 실수 없는 배포

도입이 처음엔 어렵게 느껴질 수 있지만, 한 번 적용하면 속도, 안정성, 효율성 모두 얻을 수 있습니다.

 

'DevOps' 카테고리의 다른 글

[DevOps] Blue-Green 전략으로 무중단 배포 하기  (1) 2025.04.19