[FE] npm프로젝트를 pnpm프로젝트로 마이그레이션

선영·2025년 1월 22일
0

Front-End

목록 보기
6/8
post-thumbnail

회사의 어드민 웹 페이지 프로젝트의 패키지 매니저를 npm에서 pnpm으로 변경하고자 했다. 그 이유는 npm은 의존성을 설치하는 과정에서 CI/CD 빌드 파이프라인 시간이 늘어나 배포 효율이 감소하고 PR리뷰에 영향을 받았다.

개선된 부분

  1. node_modules 폴더 크기 350mb(0.35gb)가 305mb로 줄었다.

    • 중복 파일을 줄여 디스크 공간을 절약했다.
  2. time 명령어를 사용하여 출력된 시간을 비교했다. (최소 3~5회 테스트 후 평균 값을 계산하면 더 정확하다.)

    # Clean the environment
    rm -rf node_modules package-lock.json pnpm-lock.yaml
    
    # Test npm
    time npm install
    
    # Clean again
    rm -rf node_modules package-lock.json pnpm-lock.yaml
    
    # Test pnpm
    time pnpm install

    참고로, npm과 pnpm 모두 이전 설치 기록을 기반으로 캐시된 데이터를 사용하기 때문에 node_modules, package-lock.json, pnpm-lock.yaml 이 존재하면 새로 설치하는 대신 기존 데이터를 활용하므로 실제 설치 속도를 측정하지 못한다. 그래서 rm -rf 명령어로 해당 파일들을 제거한 상태에서 테스트해야 정확한 비교가 가능하다.

    npm install 16.26s user 17.42s system 47% cpu 1:11.66 total

    • total 값(총 경과 시간)
      • 실제 사용자 입장에서 체감하는 작업의 소요 시간이다.
      • 총 1분 11.66초 동안 작업이 실행됐다.
    • 사용자 vs 시스템 시간
      • 시스템 시간이 사용자 시간보다 길다는 것은 파일 시스템 작업이나 네트워크 통신 등 I/O 작업이 많았다는 것을 나타낸다.
    • CPU 사용
      • 사용자 모드에서 16.26초, 시스템 모드에서 17.42초
    • CPU 활용도 (병렬 작업과 CPU 활용 효율성이 반영된 결과)
      • CPU 리소스의 47%를 사용했다.

    pnpm install 7.80s user 15.12s system 86% cpu 26.589 total

    • total 값(총 경과 시간)
      • 실제 사용자 입장에서 체감하는 작업의 소요 시간이다.
      • 총 26.589초 동안 작업이 실행됐다.
    • 사용자 vs 시스템 시간
      • 시스템 시간이 사용자 시간보다 길다는 것은 파일 시스템 작업이나 네트워크 통신 등 I/O 작업이 많았다는 것을 나타낸다.
    • CPU 사용
      • 사용자 모드에서 7.8초, 시스템 모드에서 15.12초
    • CPU 활용도 (병렬 작업과 CPU 활용 효율성이 반영된 결과)
      • CPU 리소스의 86%를 사용했다.

참고

npm에서 pnpm으로 마이그레이션하기

profile
Superduper-India

0개의 댓글

관련 채용 정보