💡 핵심 인사이트
앞서 배운 CI(지속적 통합)가 여러 개발자의 코드를 깃허브에 모아 에러 없이 '조립(빌드)'하는 과정이었다면, CD(지속적 배포)는 그 잘 조립된 완성품을 포장하여 '실제 라이브 서버(운영 환경)'까지 버튼 하나로, 혹은 로봇이 100% 자동으로 쏴주는 자동화의 완성형 파이프라인입니다.
CI와 CD가 합쳐져 현대 개발의 심장인 CI/CD 파이프라인을 완성합니다.
Ⅰ. CD의 두 가지 뉘앙스 (Delivery vs Deployment)
둘 다 약자는 'CD'지만, 마지막 라이브 서버에 올릴 때 "인간이 개입하느냐 마느냐"에 따라 미세하게 나뉩니다.
1. 지속적 제공 (Continuous Delivery) - 인간의 마지막 허락
- 파이프라인: 개발자 커밋 ➔ 자동 빌드 ➔ 자동 테스트 ➔ 최종 출시 대기(Staging 서버).
- 작동: 코드가 완벽하게 테스트를 통과해서 언제든 시장에 나갈 준비가 된 '출하 대기장'까지 봇이 올려놓습니다. 하지만 진짜 고객이 쓰는 라이브 서버로 넘길지 말지는, PO(제품 책임자)나 보안팀이 쓱 훑어보고 수동으로 '승인(Approve)' 버튼을 눌러야만 배포됩니다. (비즈니스적 릴리즈 통제).
2. 지속적 배포 (Continuous Deployment) - 로봇의 100% 독주
- 파이프라인: 개발자 커밋 ➔ 자동 빌드 ➔ 자동 테스트 ➔ 라이브 서버 자동 배포!
- 작동: 개발자가 금요일 오후 3시에 코드를 올렸는데 자동화된 테스트(TDD)를 무사히 통과했다면? **인간의 허락 따위는 묻지도 따지지도 않고, 그 즉시(몇 분 내로) 전 세계 고객이 쓰는 라이브 서버의 코드를 교체(배포)**해 버립니다.
- 아마존이나 넷플릭스가 하루에 수천 번 배포할 수 있는 궁극의 자동화 상태입니다.
Ⅱ. CD의 마법이 가져오는 비즈니스 기적
과거 ITIL 시대에는 "새 버전 1.0 릴리즈합니다!" 라며 주말 밤에 엔지니어 10명이 서버실에 모여 철야 작업을 하며 코드를 복사했습니다. (빅뱅 배포). 실수하면 다음 날 대국민 사과문이 떴습니다.
하지만 완벽한 CD 파이프라인이 뚫리면 '배포의 공포'가 0으로 수렴합니다.
- 코드를 하루에도 수십 번씩 조금씩(스몰 배포) 서버에 밀어 넣습니다.
- 만약 배포했는데 에러가 터졌다? CD 로봇(예: ArgoCD 등)이 실시간으로 에러율을 감시하다가, "어? 서버 뻗는다!" 싶으면 인간이 개입하기도 전에 자기가 알아서 **5초 만에 과거의 정상적인 코드로 롤백(자동 복구)**시켜버립니다. 고객은 에러가 난 줄도 모릅니다.
Ⅲ. CD를 위한 무중단 배포 기법
CD가 성공하려면 배포하는 그 10초의 순간에도 웹사이트가 멈추면 안 됩니다. (Downtime Zero).
- 블루/그린 (Blue/Green): 구버전 서버(블루)와 텅 빈 신버전 서버(그린)를 나란히 두고, 그린에 배포를 마친 뒤 공유기의 방향만 스위치처럼 1초 만에 그린으로 틀어버리는 기법.
- 롤링 배포 (Rolling): 10대의 서버가 있으면, 2대씩 순차적으로 구버전을 빼고 신버전을 꽂아 넣으며 조금씩 전진하는 방식.
📢 섹션 요약 비유: CI가 공장 안에서 불량 부품을 골라내며 완벽한 자동차를 **'조립'**하는 과정이라면, CD는 완성된 자동차를 탁송 트럭에 태워 고객의 집 문 앞까지 **'배송'**하는 과정입니다. Delivery는 집 앞에 차를 두고 가버려 주인이 키를 돌려야 시동이 걸리고, Deployment는 자율주행으로 내 차고에 주차까지 완벽히 끝낸 뒤 알아서 시동을 걸어두는 마법의 택배 기사입니다.