TIL

TIL - CI/CD 개념이해 및 CI구축

kinim329 2026. 2. 27. 15:34

오늘은 배달 앱 사이트 개발을 위한 프로젝트를 시작하기 위해 Github에 Organization을 생성하고 CI/CD 개념을 학습한 뒤 CI환경을 구축 했다.

CI / CD란?

CI/CD는 코드 변경→ 자동 빌드/테스트→ 자동배포까지 이어지는 자동화 시스템이다.

개발자가 코드를 push하거나 pull request를 생성하면, 미리 설정된 파이프라인에 따라 자동으로 검증과 배포 과정이 실행된다.

 

CI(Continuous Integration)

CI( Continuous Integration)는 여러 개발자가 작성한 코드를 하나의 저장소에 통합할 때,

코드를 push하거나 pr을 생성하면 자동으로 빌드와 테스트를 실행하여 코드의 안정성을 검증하는 과정이다.

이 과정을 통해 빌드 오류나 테스트가 실패된 코드가 main 브랜치에 반영되는것을 방지할 수 있다.

 

CD(Continuous Delivery / Deployment

CD는 CI에서 통과된 코드를 실제 서버에 배포하는 과정을 자동화 하는 과정이다.

CI가 코드가 문제없는지 확인하는 단계라면 CD는 코드를 실제 서버에 배포하는 단계라고 볼 수 있다.

 

왜 CI/CD를 사용하는가?

팀 프로젝트에서는 여러 개발자가 동시에 작업하기 때문에 코드 충돌, 오류같은 문제들이 발생하기 쉽다.

이런 문제들을 매번 사람이 확인하기에는 실수의 가능성을 무시하지 못하고, 많은 시간이 소요되기도 한다.

CI를 도입하면 코드가 반영되는 즉시 자동으로 빌드, 테스트가 수행되며 그 과정에서 문제를 빠르게 확인할 수 있다.

또한 CD를 통해 배포 과정을 자동화하면 수동으로 배포를 하는 과정에서 발생하는 실수를 줄일 수 있고 시간도 단축할 수 있다.

결과적으로 CI/CD는 안정성과 속도를 한번에 챙길수 있는 장점이 있다.

 

왜 CI를 개발 초반에 구축하고 CD는 중,후반에 구축하는가?

CI는 자동으로 빌드와 테스트를 실행하여 코드의 안정성을 검증하는 단계이다.

여러 개발자가 동시에 기능을 개발하는 경우 개발 초기부터 코드 충돌이나 빌드 오류가 발생할 가능성이 존재하기 때문에 CI는 초반에 구축하는것이 좋다.

 

반면에 CD는 CI를 통과한 코드를 실제 서버에 배포하는 과정을 자동화하는 단계이다.

프로젝트 초기에는 기능이 충분히 구현되지 않아쏘, 서비스 구조도 정리되지 않은 경우가 많다.

이 시점에서 CD구축을 하더라도 활용도가 낮기 때문에 일반적으로는 프로젝트가 어느정도 완성되어 실제로 배포할 수준의 서비스가 만들어진 이후에 CD를 도입한다.

 

이번 프로젝트에서도 이러한 흐름에 맞춰서 개발 초반에는 CI를 통해 코드 통합 과정에서 발생할 수 있는 오류를 확인하고, 이후 프로젝트가 어느정도 완성되고 배포환경이 이루어지면 CD를 추가하여 실제 서버 배포까지 자동화 할 계획이다.