yarn

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2026.01.23
조회수
7
버전
v2

📋 문서 버전

이 문서는 2개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.

Yarn

YarnJavaScript 생태계에서 사용되는 패키지 관리자(Package Manager)로, Node.js 기반 프로젝트의 의존성(Dependencies)을 효율적으로 설치, 관리, 공유할 수 있도록 설계된 도구입니다. npm(Node Package Manager)의 대안으로 등장했으며, 속도, 보안성, 일관성, 사용자 경험 측면에서 개선된 기능을 제공합니다. Facebook, Google, Tilde 등 주요 기술 기업들이 공동으로 개발하였으며, 오픈소스 프로젝트로 공개되어 있습니다.

Yarn은 대규모 프로젝트에서의 안정적인 의존성 관리가 필요한 개발자들에게 널리 사용되며, 특히 [yarn.lock](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EB%B2%84%EC%A0%84%20%EA%B4%80%EB%A6%AC/yarn.lock) 파일을 통해 의존성 버전을 정확히 고정함으로써 팀 내 일관성 있는 개발 환경을 보장합니다.


개요

JavaScript 프로젝트는 수많은 외부 라이브러리(패키지)에 의존하며, 이러한 패키지를 수동으로 관리하는 것은 비효율적입니다. Yarn은 이러한 문제를 해결하기 위해 등장한 도구로, 다음과 같은 주요 기능을 제공합니다:

  • 빠른 설치 속도: 병렬 다운로드 및 캐시 기능으로 설치 속도 향상
  • 의존성 일관성: yarn.lock 파일을 통해 모든 환경에서 동일한 버전의 패키지 설치 보장
  • 오프라인 설치 지원: 캐시된 패키지를 활용한 오프라인 작업 가능
  • 보안성: 패키지 무결성 검사의존성 트리 검증 기능 제공
  • 다양한 명령어 지원: 설치, 업데이트, 스크립트 실행 등 개발 흐름을 지원하는 CLI 도구

주요 기능

1. 의존성 설치 속도 향상

Yarn은 기존 npm보다 빠른 설치 속도를 제공합니다. 주요 원인은 다음과 같습니다:

  • 병렬 패키지 다운로드: npm은 순차적으로 패키지를 설치하지만, Yarn은 여러 패키지를 동시에 다운로드합니다.
  • 로컬 캐시 시스템: 설치된 패키지는 로컬 캐시에 저장되며, 동일한 패키지 재설치 시 네트워크 요청 없이 캐시에서 불러옵니다.
  • yarn.lock 파일 생성: 정확한 버전 정보를 기록하여 의존성 트리의 재현 가능성을 보장합니다.

2. yarn.lock 파일

Yarn은 프로젝트 루트에 yarn.lock이라는 잠금 파일을 생성합니다. 이 파일은 설치된 모든 패키지와 하위 의존성의 정확한 버전을 기록합니다. 이를 통해:

  • 팀원 간 동일한 환경 구성 가능
  • CI/CD 파이프라인에서 일관성 있는 빌드 보장
  • 예기치 않은 버전 업그레이드 방지

예시:

"lodash@^4.17.0":
  version "4.17.21"
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#..."

⚠️ yarn.lock 파일은 버전 관리 시스템(예: Git)에 포함되어야 합니다.

3. 스크립트 실행 및 관리

package.json 파일 내에 정의된 스크립트를 Yarn을 통해 쉽게 실행할 수 있습니다:

yarn run dev
yarn start
yarn test

또한, Yarn 2+부터는 Plug'n'Play(PnP) 모드를 지원하여 [node_modules](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%20%EA%B5%AC%EC%A1%B0/node_modules) 폴더를 생성하지 않고도 모듈을 로드할 수 있습니다. 이는 디스크 공간 절약과 설치 속도 향상에 기여합니다.


설치 방법

Yarn은 여러 방식으로 설치할 수 있습니다.

npm을 통한 설치

npm install -g yarn

공식 스크립트를 통한 설치 (Unix)

curl --compressed -o- -L https://yarnpkg.com/install.sh | bash

macOS (Homebrew)

brew install yarn

Windows (Chocolatey)

choco install yarn

설치 후 버전 확인:

yarn --version


주요 명령어

명령어 설명
[yarn init](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EA%B0%9C%EB%B0%9C%20%ED%99%98%EA%B2%BD/yarn%20init) 새로운 package.json 파일 생성
[yarn add](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20add) [package] 패키지를 프로젝트에 추가 (devDependencies 포함 시 --dev)
yarn add [package] --dev 개발용 의존성 추가
[yarn remove](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20remove) [package] 패키지 제거
[yarn install](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EB%B9%8C%EB%93%9C%20%EB%B0%8F%20%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20install) package.jsonyarn.lock 기반으로 의존성 설치
[yarn upgrade](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20upgrade) [package] 특정 패키지 업그레이드
[yarn run](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9E%90%EB%8F%99%ED%99%94/yarn%20run) [script] package.json에 정의된 스크립트 실행
[yarn list](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20list) 설치된 패키지 목록 출력
[yarn outdated](/doc/%EA%B8%B0%EC%88%A0/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EA%B0%9C%EB%B0%9C/%EC%9D%98%EC%A1%B4%EC%84%B1%20%EA%B4%80%EB%A6%AC/yarn%20outdated) 업데이트 가능한 패키지 확인

Yarn 1.x vs Yarn 2+ (Berry)

Yarn은 2020년부터 Yarn Berry(Yarn 2+)로 마이그레이션을 진행했습니다. 주요 차이점은 다음과 같습니다:

항목 Yarn 1.x (Classic) Yarn 2+ (Berry)
node_modules 사용 선택적 (PnP 사용 시 미생성)
성능 향상됨 더 빠름 (PnP 기반)
플러그인 시스템 미지원 확장 가능한 플러그인 아키텍처
설정 파일 yarn.lock .yarnrc.yml
호환성 높음 일부 레거시 도구와 충돌 가능

Yarn 2+로 마이그레이션하려면:

yarn set version berry


참고 자료 및 관련 문서

Yarn은 현대적인 JavaScript 개발에서 필수적인 도구 중 하나이며, 특히 협업 프로젝트나 대규모 애플리케이션에서 그 가치가 두드러집니다. 지속적인 업데이트와 커뮤니티 지원을 바탕으로, 안정성과 효율성을 동시에 추구하는 개발 환경을 제공합니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?