배포 / 자동화
CI/CD(Continuous Integration / Continuous Delivery · Deployment)
CI/CD는 코드 변경을 자주 검사하고, 배포할 수 있는 상태로 준비하거나 실제 배포까지 자동화하는 개발 방식입니다.
쉬운 설명
GitHub에 코드를 올렸더니 검사 결과가 표시되고, 배포가 진행되는 모습을 볼 수 있어요. CI는 여러 변경을 합칠 때 테스트와 빌드 등으로 문제가 없는지 자주 확인하는 지속적 통합이에요. CD는 검사를 통과한 변경을 배포 가능한 상태로 준비하는 지속적 제공, 또는 운영 배포까지 자동으로 진행하는 지속적 배포를 뜻해요. 어떤 작업이 자동으로 실행되는지는 프로젝트에 설정한 조건에 따라 달라요.
이런 상황에서 만나요
스터디 사이트의 신청 기능을 고쳐 올렸는데 새 버전이 공개되지 않는다고 해 볼게요. 자동화 실행 내역을 열어 보면, 테스트가 실패해서 뒤의 빌드와 배포를 건너뛴 상황일 수 있어요.
배포가 시작되지 않았다면 앞선 검사부터 봐요
신청 테스트 실패
기대 상태: 신청 완료
실제 상태: 처리 중
테스트 성공 후 실행하도록 설정됨
빌드 성공 후 실행하도록 설정됨
- 1동작 검사에서 기대와 다른 결과가 나왔어요.
- 2이 예시에서는 앞선 테스트가 실패해 빌드를 실행하지 않았어요.
- 3실행되지 않은 배포와 실행 중 실패한 배포는 구분해요.
어느 변경의 실행 결과인지 확인하고, 처음 실패한 작업의 기록을 읽어요. 아래 예시에서는 배포 설정을 바꾸기 전에 신청 테스트가 왜 실패했는지 확인해야 해요. 수정한 코드를 올린 뒤 새 실행 결과와 공개 사이트의 버전을 확인해요.
헷갈리기 쉬운 점
CI가 초록색이면 배포도 끝난 건가요?
CI가 검사만 실행하도록 되어 있다면 배포 여부는 따로 확인해야 해요. CD에도 배포 준비까지만 자동화하거나 운영 반영 전에 승인을 기다리는 구성이 있어요. 성공 표시가 무엇의 성공인지 작업 이름과 배포 환경을 함께 확인해요.
검사를 통과해도 검사에 포함되지 않은 기능은 실패할 수 있어요. 미리보기 배포와 운영 배포를 구분하고, 공개된 주소에서 핵심 기능을 확인해요.
왜 알아야 할까요?
검사 실패, 빌드 실패, 승인 대기, 배포 실패를 나누어 볼 수 있어요. AI에게도 “배포가 안 돼요” 대신 어느 작업의 어떤 기록을 확인할지 구체적으로 요청할 수 있어요.
조금 더 자세히
CI는 Continuous Integration의 약자입니다. CD는 Continuous Delivery 또는 Continuous Deployment를 가리킵니다. 두 CD는 운영 반영까지 자동으로 진행하는지에서 차이가 있으므로 문서의 의미를 확인합니다.
GitHub Actions 같은 도구에서는 코드 push나 PR 생성 같은 사건을 조건으로 작업을 실행합니다. 테스트 성공 후 빌드·배포를 실행하려면 작업 사이의 의존 관계와 실패 시 동작을 설정해야 합니다. 단순히 이름을 test, build, deploy로 붙인다고 순서가 보장되지는 않습니다.
직접 사용할 때 확인해 보세요
- 어느 변경과 환경의 실행 결과인지 확인한다
- 처음 실패한 작업의 기록을 읽는다
- 운영 배포 여부와 공개 기능을 확인한다