패키지 매니저 (2. yarn)

eeensu·2024년 8월 3일
0

javascript

목록 보기
27/31
post-thumbnail

Yarn

Yarn은 npm과 마찬가지로 자바스크립트 프로젝트의 종속성을 관리하는 오픈소스 패키지 관리자이다. 페이스북, 구글, 엑소스케일, 틸드 등 여러 회사의 협력으로 개발된 Yarn은 2016년에 처음 출시된 이후로, 그 성능, 보안성, 사용 편의성으로 인해 널리 사용되고 있다. 이 툴은 패키지 종속성을 설치, 업데이트, 구성 및 제거하는 과정을 간소화하여 프로젝트의 장애물을 줄이고 목표 달성을 가속화하는 데 도움을 준다.


특징과 이점

  • 속도와 효율성
    yarn은 패키지 설치 과정을 병렬로 처리하여 높은 속도를 제공한다. 또한, 한 번 다운로드된 패키지는 로컬 캐시에 저장되어 재사용되므로 후속 설치 시간이 크게 단축된다.

  • 정확성과 호환성
    yarn.lock 파일을 통해 프로젝트의 모든 의존성을 정확하게 관리하고 재현한다. 이 파일은 프로젝트에 필요한 패키지의 정확한 버전을 기록하여 다른 환경에서도 동일한 설치 결과를 보장한다.

  • 보안
    yarn은 패키지의 체크섬을 검증하여 소스 코드의 무결성을 확인한다. 이는 패키지가 원본 서버에서 제공한 것과 동일한지 확인함으로써, 코드 변조를 방지하고 보안을 강화한다.

  • 개발자 경험
    yarn은 모든 명령어를 재구현하여 npm과는 독립적으로 운영된다. 이는 개발자가 더 향상된 사용성과 안정성을 경험할 수 있게 하며, 일관된 개발자 환경을 제공한다.


다양한 기능

  • 워크스페이스 (Workspaces)
    워크스페이스는 대규모 프로젝트에서 여러 서브 프로젝트(모듈, 라이브러리)를 통합하여 관리할 수 있게 하는 기능이다. 워크스페이스를 사용하면, 각 서브 프로젝트를 독립적으로 관리할 필요 없이, 한 번의 설정으로 모든 서브 프로젝트의 종속성을 처리할 수 있다.

    예를 들어, 하나의 대형 웹 애플리케이션 프로젝트에서 프론트엔드, 백엔드, 그리고 공통으로 사용되는 유틸리티 라이브러리를 각각 다른 서브 프로젝트로 분리하여 관리할 수 있다. yarn 워크스페이스를 사용하면, 이 모든 서브 프로젝트의 종속성을 한 곳에서 관리하며, 공통으로 사용되는 패키지는 중복 설치하지 않고 공유할 수 있다.

  • 오프라인 캐싱
    오프라인 캐싱은 패키지를 한 번 다운로드하면 로컬 캐시에 저장해 두고, 인터넷 연결이 없거나 불안정할 때도 이전에 다운로드한 패키지를 사용하여 설치할 수 있게 한다.
    덕분에 개발자가 항공편 중이나 외진 지역에서 작업을 해야 하는 상황에서도, 이전에 설치했던 패키지를 Yarn의 캐시에서 찾아 설치할 수 있다.

  • 대화형 명령
    대화형 명령은 Yarn이 명령 수행 중에 선택사항을 제공하여, 사용자가 그 상황에 최적의 결정을 내릴 수 있도록 지원한다. 패키지 업그레이드 시 yarn은 사용 가능한 버전들을 보여주고, 사용자에게 어떤 버전으로 업그레이드할 것인지 선택할 수 있게 한다. 이는 개발자가 프로젝트의 요구 사항에 맞게 특정 버전을 선택할 수 있게 하여, 버전 호환성 문제를 최소화한다.

    yarn upgrade-interactive lodash
    ? Choose a version of "lodash" (Use arrow keys)
    ❯ lodash@4.17.21 ❬current: 4.17.19❭
      lodash@4.17.20
      lodash@4.17.19
      Other (specify a version...)
    
  • 강화 모드 (Plug'n'Play)
    전통적인 node_modules 방식 대신, Plug'n'Play는 종속성을 파일 시스템에 설치하는 대신 직접 로드하여 사용한다. 이 방식은 디스크 사용량을 줄이고, 설치 속도를 향상시키며, 종속성 관리의 정확성을 개선한다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글