개발자

First Load JS shared by all(번들 사이즈)를 줄이는 방법

2022년 10월 18일조회 880

실무에서 사용중인 next.js를 빌드하면 페이지가 공통으로 사용하는 번들의 용량이 나오는데 용량이 커서 그런지 빨간색으로 볼드처리 되어있습니다. 현재는 페이지로드 시간이 느리진 않는데 점점 코드가 많아지면 문제가 생길 수 있어서 번들 사이즈를 줄이려고 합니다. 번들 사이즈를 확인하고, 사이즈를 줄일 수 있는 좋은 방법이 있을까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

성원님의 프로필 사진

안녕하세요:) 제가 적용했던 몇가지 방법을 알려드리자면 1. 번들 사이즈를 확인해서 잘 사용하지 않는 라이브러리 제거 또는 대체하기 next/bundle-analyzer라는 라이브러리를 사용하면 번들을 구성한 파일, 라이브러리의 세부 용량을 확인할 수 있습니다. 용량이 큰 라이브러리의 경우 사용하지 않으면 제거하고, 대체할 수 있다면 라이브러리를 사용하지 않고 직접 구현하여 용량을 줄일 수 있습니다. 저도 실무에서 pdf를 보여주는 뷰어 컴포넌트를 만들어야 했었는데 pdf를 보여주기 위해 사용하는 react-pdf의 용량이 너무 커서 iframe을 통해 직접 뷰어를 구현했던 경험이 있습니다. 큰 용량을 차지하지만 잘 사용하지 않는 라이브러리가 있다면 대체하는 것도 한가지 방법이 될 것 같아요. 2. import cost를 확인하여 라이브러리에서 필요한 코드만 가져오기 vscode를 사용중이시면 import cost라는 익스텐션을 통해 각 파일이 import하는 모듈의 사이즈를 확인할 수 있습니다. module의 사이즈가 크고 해당 모듈에서 사용하는 코드가 한정적이라면 직접 코드를 Import하는 습관을 들이면 평소에서 용량에 많은 리소스를 줄일 수 있습니다. 예를 들어 lodash를 사용할 경우 export default를 통해 lodash 모듈을 불러오면 71.5kb 이고 ex) import _ from 'lodash'; join 함수만 가져오면 720b입니다. ex) import join from 'lodash/join'; 요약하면 1. 현재 프로젝트의 번들을 구성하는 모듈의 사이즈를 확인 -> 불필요한 라이브러리는 삭제하고, 대체할 수 있으면 대체한다. 2. 평소에 번들 사이즈를 키우지 않는 코딩 습관을 기른다 -> import cost를 통한 비용 체크 더 좋은 방법을 알아내시면 답변으로 저에게도 공유해주세요~

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!