CI(Continuous Integration)란

CI(Continuous Integration)는 지속적 통합을 의미한다. 코드가 작성되고 변경될 때마다 자동으로 빌드하고 테스트하는 과정이다. 쉽게 말해, 여러 개발자들이 작성한 코드를 자동으로 통합하는 과정이라고 할 수 있다.

CI의 작동 방식

  1. 개발자가 코드를 수정한다
  2. 코드를 저장소(예: GitHub)에 올린다
  3. CI 도구가 자동으로 코드를 가져와 빌드한다
  4. 테스트를 실행한다
  5. 결과를 개발자에게 알려준다

CI의 장점

  • 코드 문제를 빨리 발견할 수 있다
  • 수동으로 빌드하고 테스트하는 시간을 줄일 수 있다
  • 품질 높은 코드를 유지할 수 있다

CD(Continuous Deployment)란

CD(Continuous Deployment)는 지속적 배포를 의미한다. CI 과정을 통과한 코드를 자동으로 서비스에 반영하는 과정이다. 즉, 개발한 내용을 사용자가 바로 사용할 수 있게 만드는 과정이다.

CD의 작동 방식

  1. CI 과정을 통과한 코드를 받는다
  2. 자동으로 배포 과정을 시작한다
  3. 서비스에 새로운 코드를 적용한다
  4. 배포 결과를 확인한다

CD의 장점

  • 수동 배포 과정이 필요 없다
  • 배포 실수를 줄일 수 있다
  • 빠르게 새로운 기능을 제공할 수 있다

대표적인 CI/CD 도구들

  • Jenkins: 가장 널리 사용되는 도구
  • GitHub Actions: GitHub과 잘 연동되는 도구
  • GitLab CI: GitLab에서 제공하는 도구
  • AWS CodePipeline: AWS에서 제공하는 도구

정리

CI/CD는 개발부터 배포까지의 과정을 자동화하는 것이다. CI는 코드를 통합하고 테스트하는 과정을, CD는 이를 실제 서비스에 반영하는 과정을 자동화한다. 이를 통해 개발자는 코드 작성에 더 집중할 수 있고, 사용자는 더 빠르게 새로운 기능을 사용할 수 있다.