에듀테크 프로젝트 대시보드
CI/CD 파이프라인
개발자가 코드를 푸시하면, 사람이 손대지 않아도 서버가 자동으로 빌드 → 테스트 → 배포까지 끝낸다. CI(지속적 통합, Continuous Integration)는 여러 사람이 커밋한 코드를 자주 합치고 자동 테스트로 즉시 검증하는 것이고, CD는 그 검증된 결과물을 지속적 전달(Continuous Delivery, 배포 직전까지 자동화하고 배포는 버튼 한 번) 하거나 지속적 배포(Continuous Deployment, 그 버튼조차 없이 자동 배포)하는 것을 뜻한다. 아래에서 파이프라인이 단계별로 진행되는 과정과, 중간에 테스트가 실패하면 무슨 일이 벌어지는지 직접 실행해 보자.
여러 개발자의 브랜치를 자주(하루에도 여러 번) 합치고, 합칠 때마다 자동으로 빌드·테스트를 돌려 "내 코드는 되는데 합치니까 깨진다"를 조기에 잡는다. 여기까지가 CI.
CI를 통과한 결과물을 언제든 배포 가능한 상태로 스테이징까지 자동으로 올려둔다. 다만 프로덕션으로 내보내는 마지막 버튼은 사람이 누른다 (승인 게이트).
승인 게이트마저 없앤다. 테스트를 통과하면 사람 개입 없이 곧바로 프로덕션까지 나간다. 대신 카나리·블루-그린 같은 안전장치가 필수가 된다.
# .github/workflows/ci-cd.yml — 커밋이 push 될 때마다 실행 on: [push] jobs: build-and-test: runs-on: ubuntu-latest steps: - run: lint . # 코드 스타일 검사 - run: build # 컴파일 / 번들링 - run: test --unit # 단위 테스트 - run: test --integration # 통합 테스트 deploy-staging: needs: build-and-test # 앞 단계가 성공해야만 실행 run: deploy --env=staging deploy-production: needs: deploy-staging environment: name: production required-reviewers: ["release-manager"] # 수동 승인 게이트 run: deploy --env=production