인프라 & 클라우드 · 중급
CI/CD 파이프라인에서 자동화된 테스트가 왜 중요하며, 단위 테스트(Unit Test), 통합 테스트(Integration Test), E2E 테스트(End-to-End Test)가 파이프라인의 어느 단계에서 주로 수행되는지 구체적인 예시와 함께 설명해주세요.
힌트 · 품질 보증, 회귀 방지, 빠른 피드백의 중요성을 강조하고, 각 테스트 유형의 목적과 파이프라인 내에서의 위치를 설명합니다.
피드백 루프결함 조기 발견테스트 자동화배포 속도테스트 피라미드
모범답안
CI/CD 파이프라인에서 자동화된 테스트는 소프트웨어 품질을 보장하고, 개발 속도를 높이는 데 핵심적인 역할을 합니다. 자동화된 테스트를 통해 코드 변경 사항이 기존 기능에 미치는 영향을 빠르게 파악하고(회귀 방지), 잠재적인 결함을 조기에 발견하여 수정 비용을 절감할 수 있습니다. 즉, 빠른 피드백 루프를 구축하여 개발 효율성을 극대화하는 것이죠.
각 테스트 유형은 파이프라인의 특정 단계에서 수행됩니다. 단위 테스트는 개발자가 코드를 작성하는 동안, 또는 빌드 단계에서 개별 함수나 모듈을 테스트합니다. 예를 들어, 로그인 함수의 유효성 검사 로직을 테스트하는 것이죠. 통합 테스트는 빌드 후, 또는 배포 전 단계에서 여러 모듈 간의 상호 작용을 검증합니다. 예를 들어, 로그인 기능이 사용자 데이터베이스와 제대로 연동되는지 확인하는 것입니다. E2E 테스트는 배포 후, 또는 스테이징 환경에서 사용자 시나리오를 기반으로 전체 시스템을 테스트합니다. 예를 들어, 사용자가 로그인부터 상품 구매까지의 전체 과정을 문제없이 수행할 수 있는지 확인하는 것이죠. 이러한 테스트들을 통해 개발 초기 단계에서부터 잠재적인 문제를 발견하고 해결하여 최종 제품의 품질을 높일 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 CI/CD 파이프라인 면접 질문
- CI/CD에서 빌드 자동화가 필요한 이유는 무엇이며, 어떤 작업을 포함하나요?
- 일반적인 CI/CD 파이프라인은 어떤 주요 단계들로 구성되며, 각 단계에서 어떤 작업들이 수행되는지 설명해주세요.
- Jenkins, GitLab CI, GitHub Actions와 같은 CI/CD 도구들이 각각 어떤 장단점을 가지고 있으며, 특정 프로젝트 환경에 따라 어떤 기준으로 도구를 선택할 수 있을지 비교 설명해주세요.
- 무중단 서비스를 위한 대표적인 배포 전략인 롤링 배포(Rolling Deployment), 블루/그린 배포(Blue/Green Deployment), 카나리 배포(Canary Deployment)의 차이점과 각각의 장단점을 설명하고, 어떤 상황에서 어떤 전략이 적합한지 비교하여 설명해주세요.
- Docker와 Kubernetes 같은 컨테이너 기술이 CI/CD 파이프라인과 어떻게 연동되어 애플리케이션의 빌드, 테스트, 배포 과정을 효율화할 수 있는지 설명해주세요.
- Infrastructure as Code(IaC)가 CI/CD 파이프라인에서 어떤 역할을 수행하며, IaC를 CI/CD에 통합했을 때 얻을 수 있는 이점은 무엇인지 설명해주세요.