본문 바로가기
Next.js

[Next.js14.0.2] Yarn berry v4 적용 후 체감 성능 비교(feat. Yarn berry v3, yarn, 배포: vercel)

by 개발지망생 2023. 11. 28.

※ 비교한 내용만 있을 뿐 적용 방법은 포함되어 있지 않습니다.

※ Next.js 14.0.2 버전이며, Vercel이 아닌 다른 곳에 배포 시 결과가 다를 수 있습니다.

  • 비교 대상: yarn berry v3, yarn
  • 테스트 배포 사이트: Vercel
  • 테스트 항목: 
    • dependency 최초 설치 속도
    • git에 대한 부하
    • Vercel에 배포 시  CI 속도
      1. dependency가 추가 됐을 때
      2. dependency 변경 없을 때

 

Yarn

  • dependency 최초 설치 속도
    Yarn berry v3보다 빠름 ( Yarn berry v3는 처음 dependency를 설치 할 때 캐시를 같이 추가하기 때문으로 보임)
  • git에 대한 부하
    node_modules에 패키지들이 있으며, gitIgnore에 있으므로 git에 대한 부하 없음
  • Vercel에 배포 시  CI 속도(※ server 상황에 따라 약간의 차이는 있을 수 있습니다) 최초 배포 시

최초 배포시 속도 이미지

       dependency 추가 배포 시

dependency 추가 배포 시 속도 이미지

       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 변경 없을 시

dependency 변경 없을 시 배포 속도 이미지

정리

dependency 변경이 없어도 vercel에선 yarn berry를 사용했을 경우 아래와 같이 새로 dependency를 다시 설치함.

pnp가 아닌 nodeLink를 node_modules로 변경을 시도 해봤으나 결과는 똑같음. 그 결과 위의 기본 yarn처럼 시간이 단축되지 않음.

yarn berry v3로 vercel 배포시  dependency install 내역

Yarn berry v4

  • dependency 최초 설치 속도
    현재 비교군에서 제일 빠름
  • git에 대한 부하
    v3의 .yarn/cache 디렉토리가 v4에선 없음. 그로인해 git에 올라가지 않아 git에 대한 부하 없음
  • Vercel에 배포 시  CI 속도(※ server 상황에 따라 약간의 차이는 있을 수 있습니다)

      최초 배포 시

최초 배포시 속도 이미지

 

       dependency 추가 배포 시

dependency 추가 배포 시 속도 이미지

       dependency 변경 없을 시

dependency 변경 없을 시 배포 속도 이미지

정리

위에서 정리한 yarn berry v3와 같으나, dependency를 install하는 속도가 훨씬 빠름. 그로인해 일정하게 빠른 속도로 배포를 하지만, 기본 yarn처럼 캐싱 기능이 지원되는거 보단 느림.

yarn berry v4로 vercel 배포시  dependency install 내역

 

✨ 결론

프로젝트와 프로젝트 팀원들의 성향에 따라 선택의 기준이 달라질거란 생각이 듦. 개인적으론 DX(개발자 경험)을 중시하기 때문에  yarn berry v4가 배포가 캐싱된 yarn의 node_modules보다 조금 느리더라도 dependency를 설치하는 시간이 제일 빠르기 때문에 yarn berry v4를 애용할거 같음

댓글