패스잇
인프라 & 클라우드 · 중급

Docker 이미지 빌드 시 멀티스테이지 빌드를 사용하는 주된 목적과 이점을 설명하고, 실제 프로젝트에서 어떻게 활용할 수 있는지 구체적인 예를 들어 설명해 주세요.

힌트 · 최종 이미지 크기 감소와 빌드 캐시 효율성 증대가 핵심입니다. 개발/빌드 환경과 런타임 환경 분리를 고려하세요.

이미지 크기빌드 캐시보안레이어 최적화의존성 관리

모범답안

멀티스테이지 빌드는 Docker 이미지 크기를 줄이고 빌드 속도를 높이는 데 핵심적인 기술입니다.

주된 목적은 개발/빌드 환경과 런타임 환경을 분리하여 최종 이미지에 불필요한 의존성이나 빌드 도구를 포함시키지 않는 것입니다. 예를 들어, Java 프로젝트를 빌드할 때 JDK가 필요하지만, 런타임에는 JRE만 있으면 됩니다. 멀티스테이지 빌드를 사용하면 JDK를 포함한 빌드 단계를 거친 후, JRE만 포함된 더 작은 이미지를 최종 결과물로 만들 수 있습니다.

이점으로는 이미지 크기 감소로 인한 배포 속도 향상, 보안 강화 (불필요한 도구 제거), 그리고 빌드 캐시 효율성 증대가 있습니다. 각 스테이지별로 캐싱이 가능하기 때문에, 코드 변경이 없는 의존성 설치 단계는 매번 반복하지 않아도 됩니다.

실제 프로젝트에서는, 프론트엔드 빌드 (npm install, build) 후 생성된 정적 파일만 Nginx 이미지에 복사하거나, Go 바이너리를 빌드한 후 scratch 이미지에 복사하는 방식으로 활용할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Docker / Kubernetes 면접 질문

← Docker / Kubernetes 면접 질문 전체 보기