이롭게 현명하게

[IT 노트] CI/CD란 무엇인가? 개념부터 파이프라인 이해하기 본문

IT 노트

[IT 노트] CI/CD란 무엇인가? 개념부터 파이프라인 이해하기

dev_y.h 2026. 5. 13. 18:10
728x90
반응형

CI/CD란?

 


 

목차

 

CI/CD란 무엇인가?

CI/CD 파이프라인 구조

환경별 배포 전략

 


 


[CI/CD란?]

CI/CD

CI/CD는 애플리케이션 개발에서 배포까지의 모든 단계를 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 배포할 수 있도록 하는 것을 말한다.

기업에서는 시장과 고객의 요구를 빠르게 분석하고 반응해야 하기 때문에 제품을 출시, 업데이트할 것인지가 가장 큰 과제이다.

프로젝트 규모가 커질수록 단순히 코드를 작성하는 것보다 코드가 안정적으로 동작하고 빠르게 배포되는 것이 중요해진다.

그래서 많은 기업들이 CI/CD 프로세스를 사용하고 있다.

 

<CI(Continuous Integration)>

  • 지속적인 통합
  • 개발자가 작업한 코드를 저장소에 Merge 하고 자동으로 빌드 및 테스트를 실행해 코드 품질을 보장하는 과정이다.
  • 기본 과정
    • 개발자가 코드 커밋 → 버전 관리 시스템(Git 등)
    • 자동 빌드(Build) → 코드가 정상적으로 합쳐지는지 확인
    • 자동 테스트 (Test) → 기존 기능이 깨지지 않는지 검증
CI를 통해 코드가 전체 프로젝트에 문제를 일으키는지 여부를 빠르게 알 수 있다.

 

<CD(Continuous Deployment)>

  • 지속적인 배포
  • 통합된 코드가 자동으로 배포 환경까지 전달되는 과정
  • 코드가 저장소에 Merge 되면 별도의 수동 배포 과정 없이 자동으로 배포되는 것이 핵심
  • Continuous Delivery
    • 배포 준비 상태까지 자동화
    • 사람이 승인하면 배포 진행
  • Continuous Deployment
    • 승인 없이 자동으로 운영 환경까지 배포
    • 빠른 피드백과 릴리즈 속도 장점
Delivery = 배포 준비, Deployment = 배포 완료

 

CI/CD를 통해 테스트와 빌드 및 배포 과정을 자동화할 수 있다.

 

<CI/CD 전체 흐름>

일반적인 CI/CD 단계다.

CI/CD 과정

  • 코드 커밋 푸시 (Commit / Push)
    • 개발자가 새로운 기능이나 수정 사항을 저장소에 올린다.
  • 빌드 (Build)
    • 소스 코드를 실행 가능한 애플리케이션 형태로 변환하는 과정이다.
    • 코드가 정상적으로 컴파일되고 패키징 되는지를 확인
  • 테스트 (Test)
    • 자동화된 테스트를 통해 코드가 정상 동작하는지 확인한다.
    • 이 단계에서 문제가 발생하면 배포 전에 개발자에게 즉시 피드백이 전달된다.
  • 통합 (Merge)
    • 검증된 코드가 메인 브랜치에 합쳐진다.
    • 여러 명의 개발자가 동시에 작업해도 코드 품질을 일정하게 유지할 수 있다.
  • 배포 (Deploy)
    • 최종적으로 운영환경에 반영되어 사용자들이 새로운 기능을 이용할 수 있다.

 

이 과정까지 자동화되면 새로운 기능을 사용자에게 빠르게 제공할 수 있다.

 

<CI/CD가 필요한 이유>

  1. 자동화된 품질 보장 : 빌드와 테스트가 자동으로 실행되어 코드 오류를 조기에 발견할 수 있다.
  2. 빠른 배포 주기 : 코드가 Merge 되면 바로 배포되어 개발 - 테스트 - 운영 사이클이 단축된다.
  3. 안정성 확보 : 브랜치 전략과 결합해 Staging/Production 환경을 분리할 수 있어 안정적인 운영이 가능하다.

 

<CI/CD 장단점>

  • 빠른 피드백 : 버그를 초기에 발견
  • 협업 효율 향상 : 여러 개발자가 동시에 작업해도 안정적
  • 배포 안정성 : 자동 테스트와 단계별 검증으로 오류 감소

 


[CI/CD 파이프라인 구조]

CI/CD의 구체적인 파이프라인은 단순히 빌드와 배포로 끝나지 않는다.

일반적으로 아래와 같은 과정을 거친다.

출처 : https://blog.bytebytego.com/p/a-crash-course-in-cicd

  1. 계획(plan)
    • 개발해야 할 기능이나 수정사항을 정의
  2. 코드(code)
    • 실제 기능 개발과 버전 관리가 이루어지는 단계
  3. 빌드(build)
    • 소스 코드를 실행 가능한 애플리케이션으로 변환
  4. 테스트(test)
    • 자동화된 테스트를 통해 코드의 품질을 보장
  5. 릴리즈(release)
    • 배포 가능한 형태로 패키징하고 승인 프로세스를 거친다.
  6. 배포(deploy)
    • 준비된 애플리케이션을 실제 환에 배포
  7. 운영(operate)
    • 서비스가 정상적으로 동작하는지 운영 단계에서 관리
  8. 모니터링(monitor)
    • 서비스 상태를 지속적으로 관찰하고, 장애나 성능 문제를 빠르게 파악

 


[환경별 배포 전략]

CI/CD에서 중요한 포인트는 개발 환경별로 배포 전략을 나누는 것이다.

크게 3가지 환경(브랜치)으로 나눈다.

  • main 브랜치
  • develop 브랜치
  • feat 브랜치

환경별 브랜치

 

1. feat 브랜치

새로운 기능이나 버그 수정 작업을 하는 개발 브랜치다.

만약 버그를 수정한다면 브랜치는 fix/devA 형식이 된다.

feat 브랜치

 

2. develop 브랜치

feat 브랜치에서 코드를 push 하여 모아두는 브랜치다.

앱을 출시하기 전에 테스트를 할 수 있다.

develop 브랜치

 

3. main 브랜치

Production 환경으로 실제 사용자가 서비스를 이용하는 브랜치다.

항상 안정적인 코드만 존재한다.

main 브랜치

 

 

이제 CI/CD 개념을 이해했다면 실제로 자동 배포가 어떻게 이루어지는지 알아 보록 합시다.

Next.js와 Vercel을 이용해 코드 push 자동 배포 방법 보러가기

 

 


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊

댓글과 좋아요는 큰 힘이 됩니다!

 

더보기

 

728x90
반응형
Comments