Jenkins, GitLab CI, GitHub Actions와 같은 CI/CD 도구들이 각각 어떤 장단점을 가지고 있으며, 특정 프로젝트 환경에 따라 어떤 기준으로 도구를 선택할 수 있을지 비교 설명해주세요.
힌트 · 각 도구의 특징, 유연성, 관리 용이성, 클라우드 통합, 비용 등을 고려하여 비교하고 선택 기준을 제시합니다.
모범답안
면접관님, CI/CD 도구 선택은 프로젝트의 특성과 요구사항에 따라 달라질 수 있습니다.
Jenkins는 가장 오래된 도구 중 하나로, 풍부한 플러그인 생태계를 가지고 있어 높은 유연성을 제공합니다. 하지만 설정과 관리가 복잡하고, 자체 서버를 운영해야 하는 부담이 있습니다.
GitLab CI는 GitLab과 긴밀하게 통합되어 있어 사용이 편리하고, YAML 기반 설정 파일로 파이프라인을 정의할 수 있습니다. 하지만 Jenkins만큼 다양한 플러그인을 제공하지는 않습니다.
GitHub Actions는 GitHub 저장소와 완벽하게 통합되어 있으며, 사용이 간편하고 이벤트 기반으로 동작합니다. 하지만 공개 저장소에서는 무료로 사용할 수 있지만, 비공개 저장소에서는 사용량에 따라 비용이 발생할 수 있습니다.
도구 선택 시에는 팀의 숙련도, 필요한 기능, 인프라 환경, 그리고 예산을 고려해야 합니다. 예를 들어, 복잡한 커스터마이징이 필요하고 팀이 Jenkins에 익숙하다면 Jenkins를, GitLab을 사용하고 있고 간단한 CI/CD 파이프라인이 필요하다면 GitLab CI를, GitHub 저장소를 사용하고 있고 서버 관리에 대한 부담을 줄이고 싶다면 GitHub Actions를 선택하는 것이 합리적일 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 CI/CD 파이프라인 면접 질문
- CI/CD 파이프라인에서 자동화된 테스트(예: 단위 테스트, 통합 테스트)는 왜 중요한가요?
- CI/CD에서 빌드 자동화가 필요한 이유는 무엇이며, 어떤 작업을 포함하나요?
- 일반적인 CI/CD 파이프라인은 어떤 주요 단계들로 구성되며, 각 단계에서 어떤 작업들이 수행되는지 설명해주세요.
- CI/CD 파이프라인에서 자동화된 테스트가 왜 중요하며, 단위 테스트(Unit Test), 통합 테스트(Integration Test), E2E 테스트(End-to-End Test)가 파이프라인의 어느 단계에서 주로 수행되는지 구체적인 예시와 함께 설명해주세요.
- 무중단 서비스를 위한 대표적인 배포 전략인 롤링 배포(Rolling Deployment), 블루/그린 배포(Blue/Green Deployment), 카나리 배포(Canary Deployment)의 차이점과 각각의 장단점을 설명하고, 어떤 상황에서 어떤 전략이 적합한지 비교하여 설명해주세요.
- Docker와 Kubernetes 같은 컨테이너 기술이 CI/CD 파이프라인과 어떻게 연동되어 애플리케이션의 빌드, 테스트, 배포 과정을 효율화할 수 있는지 설명해주세요.