인프라 & 클라우드 · 중급
Docker와 Kubernetes 같은 컨테이너 기술이 CI/CD 파이프라인과 어떻게 연동되어 애플리케이션의 빌드, 테스트, 배포 과정을 효율화할 수 있는지 설명해주세요.
힌트 · 일관된 환경 제공, 배포 자동화, 확장성, 이식성 측면에서 컨테이너 기술이 CI/CD에 기여하는 바를 설명합니다.
컨테이너화이미지자동화오케스트레이션불변성
모범답안
Docker와 Kubernetes 같은 컨테이너 기술은 CI/CD 파이프라인을 혁신적으로 개선합니다.
Docker를 통해 애플리케이션과 필요한 모든 의존성을 컨테이너 이미지로 패키징함으로써, 개발, 테스트, 운영 환경에서 일관된 실행 환경을 보장합니다. 이는 "내 컴퓨터에서는 잘 돌아갔는데..." 문제를 해결해줍니다.
CI 단계에서는 Docker 이미지를 빌드하고 테스트를 수행하며, 테스트를 통과한 이미지는 레지스트리에 저장됩니다. CD 단계에서는 Kubernetes를 사용하여 이 이미지를 배포하고 관리합니다. Kubernetes는 컨테이너의 배포, 스케일링, 네트워킹을 자동화하여 배포 과정을 단순화하고, 롤백 및 업데이트를 용이하게 합니다.
컨테이너는 불변성을 가지므로, 배포 과정에서 예상치 못한 변경이 발생할 위험을 줄여줍니다. 또한, 필요에 따라 컨테이너를 쉽게 확장할 수 있어 애플리케이션의 확장성을 향상시킵니다. 이러한 컨테이너 기술 덕분에 CI/CD 파이프라인은 더욱 빠르고 안정적이며 효율적으로 운영될 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 CI/CD 파이프라인 면접 질문
- Jenkins, GitLab CI, GitHub Actions와 같은 CI/CD 도구들이 각각 어떤 장단점을 가지고 있으며, 특정 프로젝트 환경에 따라 어떤 기준으로 도구를 선택할 수 있을지 비교 설명해주세요.
- CI/CD 파이프라인에서 자동화된 테스트가 왜 중요하며, 단위 테스트(Unit Test), 통합 테스트(Integration Test), E2E 테스트(End-to-End Test)가 파이프라인의 어느 단계에서 주로 수행되는지 구체적인 예시와 함께 설명해주세요.
- 무중단 서비스를 위한 대표적인 배포 전략인 롤링 배포(Rolling Deployment), 블루/그린 배포(Blue/Green Deployment), 카나리 배포(Canary Deployment)의 차이점과 각각의 장단점을 설명하고, 어떤 상황에서 어떤 전략이 적합한지 비교하여 설명해주세요.
- Infrastructure as Code(IaC)가 CI/CD 파이프라인에서 어떤 역할을 수행하며, IaC를 CI/CD에 통합했을 때 얻을 수 있는 이점은 무엇인지 설명해주세요.
- CI/CD 파이프라인 구축 시 고려해야 할 보안 취약점과 이를 방지하기 위한 주요 보안 실천 방안에는 어떤 것들이 있는지 설명해주세요.
- 프로덕션 환경에서 무중단 배포 및 위험 최소화를 위해 Blue/Green 또는 Canary 배포 전략을 CI/CD 파이프라인에 통합할 때 고려해야 할 설계 원칙과 기술적 과제는 무엇이며, 이를 어떻게 해결할 수 있습니까?