LCP는 가장 큰 콘텐츠가 화면에 렌더링 되는 시간을 측정한 지표입니다. lighthouse로 측정한 결과 LCP(이미지)가 느림으로 측정되었습니다.
LCP가 낮게 측정되었다는 것은 화면에 콘텐츠가 늦게 렌더링 된다는 얘기입니다. 이는 사용자 경험(UX)에 큰 영향을 줄 수 있고 이탈로까지 이어질 수 있습니다. Next.js에서 제공하는 Image 컴포넌트를 사용해 해당 이슈를 해결해 보겠습니다.
이슈를 해결하기 전에 html img 태그를 사용했을 때 결과를 먼저 측정해 보겠습니다.
img 태그 (제약 없음, Slow 4G, 3G)



50kB의 작은 용량임에도 이미지를 내려받는데 4G 환경에서는 3.5초, 3G 환경에서는 12초가 소요됩니다. 이는 사용자에게 부정적인 경험을 줄 수 있습니다.
이제 Next.js의 Image 컴포넌트를 사용해 이미지를 최적화해보겠습니다.
Image 컴포넌트 적용 및 결과
<Image
src={thumbnail}
className="object-cover transition-transform duration-300 will-change-transform group-hover:scale-105"
fill
sizes={sizes}
alt={alt}
priority
onLoad={() => setIsLoading(false)}
/>;
- 자동 크기 조정 : fill 속성을 사용하여 다양한 화면 크기에서 비율을 유지하며 최적의 크기로 이미지를 표시했습니다.
- 포맷 최적화: 최신 이미지 포맷(WebP)으로 자동 변환하여, 이미지 파일 크기를 줄이고 로딩 속도를 개선했습니다.
- 불필요한 이미지 로드 방지 : sizes 속성을 설정하여 디바이스 크기에 맞는 이미지만 로드하도록 하여 데이터 사용량을 줄였습니다.
- 우선 로딩: priority 속성을 사용하여 페이지의 주요 콘텐츠가 빠르게 표시되도록 했습니다.



Image 컴포넌트를 적용한 후의 성능 측정 결과는 다음과 같았습니다.
- 용량 : 50kB에서 12kB로 75% 감소
- 이미지 로딩 속도 : No Throttling 기준 280ms에서 52ms로 약 80% 감소


lighthouse의 성능 점수는 최적화 전 65점에서 최적화 후 81점으로 개선되었습니다.
참고 자료 - Next.js | Image Optimization
Optimizing: Images | Next.js
Optimize your images with the built-in `next/image` component.
nextjs.org
'프로젝트 > Next+TypeScript' 카테고리의 다른 글
[맛길] Zustand + sessionStorage로 맛집 리스트 캐싱하기 (0) | 2025.03.07 |
---|---|
[맛길] 접근성, SEO 개선 (1) | 2025.02.28 |
[맛길] 안드로이드(AOS) 위치 정보(Geolocation API) 지연 문제 해결 (1) | 2025.02.26 |
[맛길] Naver Directions API를 이용한 길 찾기 기능 개발 (0) | 2025.02.21 |
[Coworkers] 접근 권한 관련 이슈 해결 (0) | 2025.02.15 |