인프라 & 클라우드 · 심화
멀티 스테이지 빌드(multi-stage build)는 어떤 문제를 해결하며, 빌더 스테이지와 런타임 스테이지를 분리할 때 이미지 크기와 보안 측면에서 어떤 이점이 있는지 설명해주세요.
힌트 · 빌드 산출물만 최종 이미지로 복사해 빌드 도구·시크릿 노출을 줄이는 관점에서 접근하세요.
이미지 크기보안빌더 스테이지런타임 스테이지종속성
모범답안
멀티 스테이지 빌드는 주로 두 가지 문제를 해결합니다. 첫째, 최종 컨테이너 이미지에 불필요한 빌드 도구나 종속성이 포함되어 이미지 크기가 커지는 문제를 해결합니다. 둘째, 빌드 과정에서 사용된 민감한 정보나 시크릿이 최종 이미지에 노출될 위험을 줄여 보안을 강화합니다.
빌더 스테이지와 런타임 스테이지를 분리하면, 빌더 스테이지에서는 애플리케이션을 빌드하고 필요한 아티팩트만 생성합니다. 이후 런타임 스테이지에서는 이 빌드 산출물만을 복사하여 최종 이미지를 만듭니다.
이러한 분리는 이미지 크기를 크게 줄여줍니다. 왜냐하면 컴파일러, SDK, 테스트 도구 등 빌드에만 필요한 요소들이 런타임 이미지에 포함되지 않기 때문입니다. 또한, 빌드 시 사용된 API 키나 비밀번호 같은 민감한 정보가 런타임 이미지에 남지 않아 보안 측면에서도 훨씬 안전해집니다. 결국, 더 작고 안전한 이미지를 얻을 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 DevOps / CI·CD 면접 질문
- 서비스 메시(Service Mesh)란 무엇이며, 어떤 문제를 해결하나요?
- Kubernetes의 네트워크 정책(Network Policy)에 대해 설명해주세요.
- 동일한 Dockerfile로 빌드했는데도 CI 환경마다 빌드 캐시가 거의 적중하지 않아 빌드 시간이 길어지는 상황입니다. 레이어 캐시가 무효화되는 원인과, 캐시 적중률을 높이기 위한 Dockerfile 작성 전략을 설명해주세요.
- 컨테이너는 호스트 커널을 공유하는데, namespace와 cgroup이 각각 어떤 격리와 자원 제어를 담당하는지, 그리고 이것이 VM 대비 격리 수준이 약하다고 평가되는 이유를 설명해주세요.
- 쿠버네티스에서 Deployment의 롤링 업데이트가 진행되는 도중 일부 트래픽이 5xx를 반환하는 현상이 보고됐습니다. readinessProbe, terminationGracePeriod, preStop 훅이 이 문제와 어떻게 연관되는지 설명해주세요.
- 쿠버네티스의 Service 타입 중 ClusterIP 트래픽이 실제 파드까지 전달되는 과정을 kube-proxy(iptables 또는 IPVS 모드) 관점에서 설명하고, 두 모드의 성능 차이가 발생하는 이유를 설명해주세요.