나만의 학습 기록

최종 목적은 기술 블로그💩

백엔드 공부

CI/CD(1) - CI/CD란 무엇인가?

밈밍민믹 2026. 5. 18. 14:46

안녕하세요. 벌써 점심시간이네요. 주말동안 깁스한 상태로 열심히 걸었더니 잘때쯤 아파서 힘들었어요....고통을 후불로 정산받는 느낌이더라고요. 

그래도 주말동안 잘 쉬었으니 이번 한 주도 힘이 넘치네요. 그럼 학습 시작해보도록 합시다!


CI/CD가 등장한 배경

서비스 개발에서는 코드 수정이 계속 발생합니다. 새로운 기능을 추가하기도 하고, 기존 기능의 오류를 수정하기도 하며, 성능 개선이나 구조 변경을 진행하기도 합니다. 이 과정에서 코드 변경이 많아질수록 사람이 직접 확인해야 하는 작업도 함께 늘어난다는 점입니다.

 

예를 들어 코드를 수정한 뒤 다음과 같은 과정을 매번 직접 수행해야 한다고 가정해보겠습니다.

  1. 코드를 수정한다.
  2. 테스트를 실행한다.
  3. 프로젝트를 빌드한다.
  4. 서버에 접속한다.
  5. 비드 파일을 서버에 업로드한다.
  6. 기존 애플맄케이션을 중지한다.
  7. 새 애플리케이션을 실행한다.
  8. 정상적으로 동작하는지 확인한다.

작은 프로젝트에서는 이 과정을 직접 수행해도 큰 문제가 없습니다. 하지만 서비스 규모가 커지고 배포 횟수가 늘어나면 반복 작업이 많아지고, 사람이 실수로 인해 배포 오류가 발생할 가능성도 높아집니다.

CI/CD는 이러한 문제를 줄이기 위해 등장한 방식입니다.

 

CI란

CI(Continuous Integration)는 지속적 통합을 의미합니다. 여러 개발자가 작성한 코드를 자주 통합하고, 통합된 코드가 정상적으로 빌드되고 테스트를 통과하는지 자동으로 확인하는 과정입니다.

 

즉, CI는 "코드를 합쳤을 때 문제가 없는지 자동으로 확인하는 과정"이라고 볼 수 있습니다.

 

예를 들어 개발자가 GitHub에 코드를 push하거나 pull request를 생성했을 때, 자동으로 다음 과정이 실행될 수 있습니다.

  1. 프로젝트 의존성 설치
  2. 코드 빌드
  3. 테스트 코드 실행
  4. 테스트 실패 여부 확인

이 과정에서 테스트가 실패하거나 빌드가 실패하면 문제가 있는 코드가 병합되기 전에 확인할 수 있습니다.

 

CD란

CD(Continuous Delivery)는 빌드와 테스트를 통과한 코드를 언제든 배포할 수 있는 상태로 만들어두는 방식입니다. 실제 운영 서버에 반영하는 최종 배포는 사람이 승인할 수 있습니다. 반면 Continuous Deployment는 테스트를 통과한 코드가 자동으로 운영 환경까지 배포되는 방식입니다.

 

즉, CD는 "검증된 코드를 배포 가능한 상태로 만들거나, 실제 서버에 자동으로 반영하는 과정"입니다.

 

CI/CD 파이프라인의 기본 흐름

CI/CD 파이프라인은 코드 변경 이후 실행되는 자동화 흐름입니다.

개발자가 코드를 작성하고 GitHub에 Push하면 미리 설정된 파이프라인이 실행됩니다. 파이프라인에서는 프로젝트를 빌드하고 테스트를 실행한 뒤 문제가 없다면 배포 단계로 넘어갑니다. 

 

이처럼 CI/CD는 개발자가 반복적으로 수행하던 작업을 자동화하여 코드 변경 사항을 더 빠르고 안정적으로 반영할 수 있도록 도와줍니다.

 

수동 배포와 CI/CD의 차이

수동 배포는 배포 흐름을 직접 이해하는 데 도움이 될 수 있습니다. 하지만 배포가 반복될수록 같은 명령어를 계속 입력해야 하고, 사람이 직접 처리하는 과정에서 실수가 발생할 가능성도 있습니다. 

CI/CD는 이러한 반복 작업을 자동화하여 배포 과정의 안정성을 높이는 데 도움을 줍니다.

구분 수동 배포 CI/CD
테스트 실행 사람이 직접 실행 코드 변경 시 자동 실행
빌드 직접 명령어 실행 파이프라인에서 자동 실행
서버 접속 직접 SSH 접속 자동화 가능
배포 직접 파일 반영 및 실행 설정된 흐름에 따라 자동 반영
장점 흐름을 직접 이해하기 쉬움 반복 작업과 실수 감소
단점  반복 작업이 많고 실수 가능성 있음 초기 설정이 필요함

 

백엔드 개발자가 CI/CD를 알아야 하는 이유

백엔드 개발자는 단순히 API를 구현하는 것에서 끝나지 않고, 작성한 코드가 안정적으로 빌드되고 배포되는 흐름도 이해해야 합니다. 특히 서버 애플리케이션은 데이터베이스, 인증, 외부 API, 서버 환경 등 여러 요소와 연결되기 때문에 코드 변경이 실제 서비스에 어떤 영향을 주는지 확인하는 과정이 중요합니다.

 

CI/CD를 이해하면 다음과 같은 장점이 있습니다.

  1. 코드 변경 이후 빌드와 테스트를 자동으로 확인할 수 있습니다.
  2. 배포 과정에서 발생할 수 있는 사람의 실수를 줄일 수 있습니다.
  3. 반복적인 배포 작업을 줄이고 개발에 더 집중할 수 있습니다.
  4. 서비스 운영 환경에 더 안정적으로 변경 사항을 반영할 수 있습니다.

오늘은 CI/CD에 대해서 간략하게 알아보았습니다. 다음 시간에는 CI/CD의 GitHub Action, Jenkins 등 자세히 알아보도록 합시다. 수고하셨습니다.