yarn berry를 사용하는 이유

2025. 1. 25. 17:35·Frontend/전체
목차
  1. NPM을 안쓰는 이유?
  2. yarn berry의 Plug & Play (PnP) 방식
💡 yarn berry를 사용하는 이유에 대해서 알아보자!

 

NPM을 안쓰는 이유?

🙋 무겁고 복잡한 node_modules

프로젝트의 node_modules 폴더의 용량이 20기가나 차지하는 매직을 볼 수 있다...

회사 컴퓨터의 용량이 256기가여서 매번 용량이 부족하면 node_modules를 지워줘야한다. 😱

 

🙋 비효율적인 의존성 검색 & 비효율적인 설치 

npm은 여러 패키지들이 동일한 라이브러리의 의존성을 가지고 있다.

그 라이브러리들이 각각 다른 버전을 사용한다고 했을 때 npm은 중복된 라이브러리를 설치한다.

이는 디스크 공간을 많이 차지하게 되고, 설치나 업데이트에 많은 시간이 들게 한다.

 

 

🙋 유령의존성

npm은 중복된 패키지 의존성을 최소화하여 공간을 절약하고 패키지 설치시간을 줄이기 위해 호이스팅을 일으키게 된다.

호이스팅이 일어나게 되면 package.json에 명시적으로 의존성을 관리하고 있지 않은 패키지에서도 접근 가능하게 된다.

이는 의존성 관리 시스템을 혼란스럽게 만들고, 버전이 명확하지 않기 때문에, 다른 사용자에게는 버전 호환 실패로 인한 오류를 발생시킬 수도 있다.

 

yarn berry의 Plug & Play (PnP) 방식

🍎 node_modules 폴더를 생성하지 않음

node_modules 폴더를 순회하지 않는다.

대신 pnp.cjs 에서 패키지의 위치와 버전 정보를 기록하여 관리한다.

그리고 pnp 시스템에서 각 의존성은 zip-archive로 관리되어진다. 이는 압축파일로 관리하기 때문에 설치 시간을 단축할 수 있고, 효율적인 디스크 용량 확보가 가능해진다.

 

🍎 의존성 호이스팅 X

모든 패키지 설치정보를 git과 같은 버전관리 시스템에 기록하고 저장한다.

프로젝트를 clone한 후 패키지를 설치할 필요없이 바로 사용이 가능하다.

이를 zero-install 이라고 한다.

반응형
저작자표시 (새창열림)

'Frontend > 전체' 카테고리의 다른 글

ESLint v9 적용하기 (eslint.config.mjs 사용법), eslint 충돌 해결법  (0) 2025.02.02
React 프로젝트에 ESLint와 Prettier 적용하기  (0) 2025.01.25
yarn berry 프로젝트 생성하기  (1) 2025.01.25
[http] HTTP 요청, 응답, 메서드, 안전한 통신이란?  (1) 2024.08.20
[보안] Javascript 보안에 대해서 (+추천 사이트)  (0) 2024.08.10
  1. NPM을 안쓰는 이유?
  2. yarn berry의 Plug & Play (PnP) 방식
'Frontend/전체' 카테고리의 다른 글
  • React 프로젝트에 ESLint와 Prettier 적용하기
  • yarn berry 프로젝트 생성하기
  • [http] HTTP 요청, 응답, 메서드, 안전한 통신이란?
  • [보안] Javascript 보안에 대해서 (+추천 사이트)
전예방
전예방
  • 전예방
    예방이의 개발일기
    전예방
  • 전체
    오늘
    어제
    • All (125)
      • Info & Tip (2)
      • 유용한 사이트들 (5)
      • Mark Up & StyleSheet (23)
        • HTML (6)
        • CSS & SCSS (10)
        • 반응형 (6)
      • Frontend (66)
        • 전체 (10)
        • JavaScript & Jquery (18)
        • TypeScript (0)
        • React (26)
        • Next.js (3)
        • 성능최적화 (2)
        • 웹접근성 (2)
      • Backend (13)
        • Python (1)
        • JAVA (2)
        • node.js (0)
        • PHP (7)
        • 패키지매니저 (3)
      • Markdown (0)
      • SCM (1)
        • Git&Github (1)
        • SVN (0)
      • IDE (4)
        • VSCode (2)
        • IntelliJ (1)
        • Ecplise (1)
      • 취미생활 (3)
      • 정보처리기사 (2)
      • 코딩자율학습단 (5)
        • 12기 (파이썬) (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • velog
    • github
  • 공지사항

  • 인기 글

  • 태그

    React Swiper
    파이썬
    php
    코딩자율학습단
    react
    Python
    나도코딩
    NPM
    회원가입
    yarn berry
    관리자 페이지
    반응형
    CSS
    Chart.js
    Admin
    swiper.js
    frontend
    TypeScript
    리액트
    코딩자율학습
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
전예방
yarn berry를 사용하는 이유

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.