프론트엔드 개발 · 중급
웹 페이지에 많은 이미지가 사용될 때 발생할 수 있는 성능 문제를 해결하기 위한 이미지 최적화 전략들을 3가지 이상 설명하고, 각 전략이 어떤 원리로 성능을 개선하는지 설명해 주세요.
힌트 · 이미지 포맷 선택, 반응형 이미지, 지연 로딩, 압축 및 CDN 활용을 고려하세요.
압축CDNLazy LoadingWebPResizing
모범답안
네, 웹 페이지 이미지 성능 최적화 전략에 대해 설명드리겠습니다.
첫째, 적절한 이미지 포맷 선택이 중요합니다. WebP 포맷은 JPEG나 PNG보다 압축률이 뛰어나 화질 손실 없이 파일 크기를 줄일 수 있습니다. 구형 브라우저를 위해 JPEG나 PNG를 함께 제공하는 것도 좋습니다.
둘째, 반응형 이미지를 사용해야 합니다. <picture> 태그나 srcset 속성을 사용하여 화면 크기에 맞는 이미지를 제공하면 불필요한 데이터 전송을 막을 수 있습니다. 작은 화면에서는 작은 이미지를, 큰 화면에서는 큰 이미지를 보여주는 것이죠.
셋째, **지연 로딩 (Lazy Loading)**을 적용할 수 있습니다. 사용자가 스크롤하여 이미지가 화면에 나타날 때 이미지를 로딩하는 방식입니다. 초기 페이지 로딩 속도를 크게 개선할 수 있으며, loading="lazy" 속성을 사용하면 간단하게 구현할 수 있습니다.
이 외에도 이미지 압축 도구를 사용하여 이미지 용량을 줄이거나, CDN을 사용하여 이미지 전송 속도를 높이는 방법도 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 웹 성능 최적화 면접 질문
- 지연 로딩(Lazy Loading)이란 무엇이며, 어떤 종류의 콘텐츠에 주로 적용되며 웹 성능에 어떤 영향을 미치나요?
- 웹 페이지 렌더링 성능 최적화를 위해 Critical Rendering Path (CRP)를 이해하고 개선하는 것이 중요합니다. CRP의 주요 단계들을 설명하고, 이 경로를 단축하거나 최적화하기 위한 구체적인 방법들을 제시해 보세요.
- `<script>` 태그에 `async`와 `defer` 속성을 사용하는 것이 웹 페이지 성능에 어떤 영향을 미치는지 설명하고, 각각 어떤 상황에서 사용해야 하는지 구체적인 예시와 함께 비교 설명해 주세요.
- 웹 성능 최적화에서 HTTP 캐싱이 중요한 이유를 설명하고, `Cache-Control` 헤더의 주요 지시어(예: `max-age`, `no-cache`, `must-revalidate`)들이 각각 어떤 역할을 하는지 구체적인 시나리오와 함께 설명해 주세요.
- Service Worker를 활용한 캐싱 전략이 HTTP 캐싱과 어떻게 다른지 설명하고, Service Worker를 사용하여 웹 애플리케이션의 오프라인 지원 및 성능 향상을 어떻게 구현할 수 있는지 구체적인 캐싱 전략(예: Cache-First, Network-First)을 들어 설명해 주세요.
- 웹 브라우저의 렌더링 과정에서 발생하는 Reflow(Layout)와 Repaint(Paint)의 개념을 설명하고, 이들이 웹 성능에 미치는 영향과 Reflow/Repaint를 최소화하기 위한 개발 실천 방법들을 제시해 주세요.