쉬운·기술사전비유로 이해하는 AI·개발 용어
배포와 운영

CI/CD

CI/CD

코드를 수정할 때마다 로봇이 자동으로 테스트를 돌리고, 앱을 빌드하고, 배포까지 끝내줘요. 사람이 손댈 일이 없어요.

CI/CD 개념 다이어그램

코드를 수정할 때마다 로봇이 자동으로 그 변경사항을 받아 모든 테스트를 실행하고, 앱을 빌드하고, 배포까지 처리해 줘요. 사람이 손댈 일이 없어요. 그 로봇 조립 라인이 바로 CI/CD예요.

CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Delivery 또는 Continuous Deployment)의 줄임말이에요. 전문 용어를 걷어내면 핵심은 하나예요. "코드를 변경했다"에서 "서비스에 반영되어 작동한다"까지의 전 과정을 자동화해서, 사람이 각 단계를 일일이 챙기지 않아도 되게 만드는 거예요. 작업물을 개발자 손에서 사용자에게 전달하는 컨베이어 벨트예요.

두 단계는 각각 다른 문제를 해결해요.

공장 라인을 머릿속에 그려 보세요. 원자재(코드 변경)가 한쪽 끝에 들어오면 스테이션을 자동으로 통과해요. 합치고, 테스트하고, 빌드하고, 배포해요(또는 배포 준비를 마쳐요). 어느 스테이션에서라도 실패하면 — 테스트가 깨지거나 빌드가 컴파일에 실패하면 — 벨트가 멈추고 정확히 어디서 문제가 생겼는지 모두에게 알려져요. 모든 스테이션을 통과하면 완제품이 반대편으로 굴러 나와요. 누가 손으로 들어 나를 필요가 없어요.

CI/CD가 현대 소프트웨어 개발에서 조용한 승수 효과를 내는 이유가 있어요. 배포를 지루하게 만들기 때문이에요. 좋은 의미에서요. CI/CD가 없으면 릴리즈는 긴장되는 수동 의식이에요. 테스트를 직접 돌리거나(아니면 그냥 기도하거나), 빌드하고, 서버에 복사하고, 제발 잘 되길 바라는 거예요. 그러니 팀은 드물게, 긴장하며 배포할 수밖에 없어요. CI/CD가 있으면 배포는 그냥 "변경사항을 머지하고 라인이 돌게 두는 것"이에요. 로봇이 매번 똑같은 방식으로 모든 걸 검사하기 때문에 하루에도 여러 번 차분하게 배포할 수 있어요. 테스트 실행, 빌드, 배포, 스테이징 환경 선반영, 그리고 혹시 문제가 생기면 롤백까지, 앞서 다룬 거의 모든 요소가 여기서 연결돼요.

"파이프라인에 올라갔다" 또는 "CI가 green이다"라는 말을 해독하면 이런 뜻이에요. 자동화 라인이 이 변경사항을 검사했고 전부 통과했다는 거예요. (Green은 기계가 만족했다는 신호예요. 실제 서비스 반영 전에 사람의 코드 리뷰나 최종 승인이 필요할 수도 있어요.) CI/CD는 팀이 빠르게 움직이면서도 무언가를 망가뜨리지 않게 해주는 기계예요. 검사가 절대 생략되지 않고, 지치지도 않으니까요.

머지가 작업을 하나로 합치는 것이라면, CI/CD는 그 이후를 맡는 로봇 라인이에요. 자동으로 합치고, 테스트하고, 빌드하고, 배포해요. 소프트웨어 릴리즈를 손에 땀을 쥐는 행사가 아닌 평범한 일상으로 만들어 줘요.