패스잇
인프라 & 클라우드 · 기초

Dockerfile로 이미지를 빌드할 때 레이어 캐시(build cache)는 어떻게 동작하며, 캐시를 잘 활용하려면 명령어 순서를 어떻게 배치하는 것이 좋은가요?

힌트 · 변경이 적은 레이어를 앞에, 자주 바뀌는 부분을 뒤에 두는 캐시 무효화 원리 관점에서 접근하세요.

레이어해시변경불변성최적화

모범답안

Dockerfile로 이미지를 빌드할 때 레이어 캐시는 각 명령어 실행 결과를 이미지 레이어로 저장하고 재사용하는 메커니즘입니다. Docker는 각 레이어의 명령어와 해당 명령어에 사용된 파일(예: COPY, ADD)의 해시 값을 계산하여 캐시 히트를 결정합니다. 만약 명령어와 파일의 해시 값이 이전 빌드와 동일하면, 해당 레이어는 캐시에서 가져와 사용하며 빌드 시간을 단축시킵니다.

캐시를 효과적으로 활용하려면 변경이 적고 자주 사용되는 명령어(예: OS 패키지 설치, 라이브러리 의존성 설치)를 앞에 배치하고, 자주 변경될 수 있는 애플리케이션 소스 코드 복사(COPY)와 같은 명령어는 뒤에 배치하는 것이 좋습니다. 이렇게 하면 애플리케이션 코드가 변경되어도 이전 레이어의 캐시를 그대로 활용할 수 있어 빌드 속도를 크게 향상시킬 수 있습니다. 즉, 변경에 덜 민감한 부분을 먼저 빌드하여 캐시를 최대한 활용하는 것이 핵심입니다.

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

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

함께 보는 DevOps / CI·CD 면접 질문

← DevOps / CI·CD 면접 질문 전체 보기