본문 바로가기

봄보라

CI/CD: 개발팀이 빠르고 안정하게 일하는 이유

개발팀의 업무 흐름에서 자주 등장하는 용어가 있습니다


바로 CICD입니다


비개발자라도 이 흐름을 이해하면 팀 전체의 협업을 더 효과적으로 할 수 있습니다

 

 

 

CI (Continuous Integration) - 지속적 통합

CI는 여러 명의 개발자가 동시에 코드를 작성할 때 서로의 작업이 충돌하지 않도록 하기 위한 습관에서 시작됐습니다

코드를 올릴 때마다

  • 자동으로 테스트(개발자가 만들어놓은 테스트 소스)가 돌고
  • 코드가 합쳐지고
  • 오류 여부가 즉시 알려집니다

이를 통해 '나중에 한꺼번에 통합하다가 망가지는' 상황을 방지할 수 있습니다

 

 

CD (Continuous Delivery / Deployment) - 지속적 배포

CI를 통해 잘 통합된 코드는 CD 과정을 거쳐 실제 서비스에 적용됩니다

  • Continuous Delivery는 배포 직전 단계까지 자동화한 상태입니다
  • Continuous Deployment는 실제 서비스 반영까지 자동으로 이루어집니다

이 과정은 제품을 자주, 안정적으로 출시할 수 있게 만들어 줍니다

 

개발팀은 코드 변경 사항을 실시간에 가깝게 사용자에게 전달할 수 있습니다

 

 

 

 

 

 

 

CI/CD가 필요한 이유

  • 자주 변경되는 기능들을 빠르게 반영하고 싶을 때
  • 사람의 실수를 줄이고 싶을 때
  • 테스트와 배포 과정을 자동화하고 싶을 때

CI/CD는 현대적인 소프트웨어 팀의 기본 운영방식이 되고 있습니다

 

단순한 기술이 아니라, 팀의 품질과 속도를 좌우하는 핵심입니다

 

 

 

 

 

CI/CD 툴 5가지와 간단한 장단점

🔧 1. Jenkins

  • 장점: 오픈소스이며 플러그인이 풍부해 다양한 커스터마이징이 가능함
  • 단점: 설정과 유지 관리가 복잡하며, 러닝커브가 있음

🔧 2. GitHub Actions

  • 장점: GitHub과 완벽하게 통합되며, 설정이 간단하고 시작이 쉬움
  • 단점: 복잡한 워크플로 구성 시 문법이 다소 제한적일 수 있음

🔧 3. GitLab CI/CD

  • 장점: GitLab과 통합된 환경에서 코드 관리부터 배포까지 가능함
  • 단점: 셀프호스팅 시 리소스 관리와 설정 부담이 있음

🔧 4. CircleCI

  • 장점: 빠른 실행 속도와 클라우드 기반으로 손쉬운 설정 제공
  • 단점: 무료 요금제에서 리소스 제한이 있음

🔧 5. Bitbucket Pipelines

  • 장점: Bitbucket 사용자에게 최적화된 환경 제공, 쉬운 설정
  • 단점: 대규모 프로젝트에는 기능적으로 한계가 있을 수 있음