<aside> 📌 프론트엔드 성능 최적화를 위한 아티클 [FE 최적화] 0. 프론트엔드 최적화 관련 개념 정리 및 간단한 적용 [FE 최적화] 1. 페이지 로드 및 웹 성능 최적화 [FE 최적화] 2. React 렌더링 성능 최적화

</aside>

Performance


이미지 용량 축소

큰 스크린 크기에서도 깨지지않고 보일 수 있을 사이즈로 내보낸 뒤 이미지 압축을 진행했어요.

이미지 재사용 및 사이즈 지정

번들 사이즈 줄이기

첫째로 전체 페이지의 초기 로드되는 데 걸리는 시간을 줄여보려고 해요. 페이지의 로딩 속도는 사이트의 서버, 파일 크기, 이미지 등 다양한 요인으로 인해 발생할 수 있어요. 현재 리액트로 구현한 우리 프로젝트는 맨처음 페이지에 진입하면 웹팩에서 압축한 번들파일을 다운 받기 때문에 로딩 시간이 3.46s 정도로 나타났어요.

로컬 기준, 초기 로딩에 걸리는시간 (3.46s)

로컬 기준, 초기 로딩에 걸리는시간 (3.46s)

SPA의 특징으로 맨처음 로딩할 때, 페이지의 전체 리소스를 다운 받게 돼요. 이때, 우리는 당장 보지 않아도 될 페이지의 리소스까지 기다리게되고, 리소스를 다 다운 받게 되면, 처음 페이지가 렌더링되고 우리 눈에 페이지가 보이게 되어요. 그래서 당장 필요없는 컴포넌트들을 lazy-loading 할 수 있게 만들어 초기 로딩 시간을 줄이기 위해 React.lazySuspense 컴포넌트를 활용해 **코드 분할(code-splitting)**을 진행해보았어요.

결과비교

개선 전

개선 전

개선 후

개선 후