※ 비교한 내용만 있을 뿐 적용 방법은 포함되어 있지 않습니다.
※ Next.js 14.0.2 버전이며, Vercel이 아닌 다른 곳에 배포 시 결과가 다를 수 있습니다.
- 비교 대상: yarn berry v3, yarn
- 테스트 배포 사이트: Vercel
- 테스트 항목:
- dependency 최초 설치 속도
- git에 대한 부하
- Vercel에 배포 시 CI 속도
- dependency가 추가 됐을 때
- dependency 변경 없을 때
Yarn
- dependency 최초 설치 속도
Yarn berry v3보다 빠름 ( Yarn berry v3는 처음 dependency를 설치 할 때 캐시를 같이 추가하기 때문으로 보임) - git에 대한 부하
node_modules에 패키지들이 있으며, gitIgnore에 있으므로 git에 대한 부하 없음 - Vercel에 배포 시 CI 속도(※ server 상황에 따라 약간의 차이는 있을 수 있습니다) 최초 배포 시
dependency 추가 배포 시
dependency 변경 없을 시
정리
dependency 변경이 없는 경우 vercel에서 Next.js 배포에서 지원하는 node_modules 캐싱 최적화로 인해 시간 단축이 많이 됨
Yarn berry v3
- dependency 최초 설치 속도
최초 dependency를 설치 할 때 캐시 추가로 인해 다른 비교군에서 제일 느림 - git에 대한 부하
pnp 방식과 zero-install을 적용했기 때문에 .yarn/cache 디렉토리에 생기는 zip 파일들로 인해 굉장히 부하가 큼 - Vercel에 배포 시 CI 속도(※ server 상황에 따라 약간의 차이는 있을 수 있습니다)
최초 배포 시
dependency 추가 배포 시
dependency 변경 없을 시
정리
dependency 변경이 없어도 vercel에선 yarn berry를 사용했을 경우 아래와 같이 새로 dependency를 다시 설치함.
pnp가 아닌 nodeLink를 node_modules로 변경을 시도 해봤으나 결과는 똑같음. 그 결과 위의 기본 yarn처럼 시간이 단축되지 않음.
Yarn berry v4
- dependency 최초 설치 속도
현재 비교군에서 제일 빠름 - git에 대한 부하
v3의 .yarn/cache 디렉토리가 v4에선 없음. 그로인해 git에 올라가지 않아 git에 대한 부하 없음 - Vercel에 배포 시 CI 속도(※ server 상황에 따라 약간의 차이는 있을 수 있습니다)
최초 배포 시
dependency 추가 배포 시
dependency 변경 없을 시
정리
위에서 정리한 yarn berry v3와 같으나, dependency를 install하는 속도가 훨씬 빠름. 그로인해 일정하게 빠른 속도로 배포를 하지만, 기본 yarn처럼 캐싱 기능이 지원되는거 보단 느림.
✨ 결론
프로젝트와 프로젝트 팀원들의 성향에 따라 선택의 기준이 달라질거란 생각이 듦. 개인적으론 DX(개발자 경험)을 중시하기 때문에 yarn berry v4가 배포가 캐싱된 yarn의 node_modules보다 조금 느리더라도 dependency를 설치하는 시간이 제일 빠르기 때문에 yarn berry v4를 애용할거 같음
'Next.js' 카테고리의 다른 글
[Error] Next.js14.0.3에서 three/drei 라이브러리 에러 (0) | 2023.11.27 |
---|---|
Next.js 13 에서 NextResponse 사용 방법 (0) | 2023.05.17 |
Next.js에서 Next-Auth의 AuthOptions구성 할 때, Callbacks 옵션에 타입주기 (0) | 2023.05.07 |
댓글