Node와 패키지 관리

SilverBeen·2023년 2월 1일
1
post-thumbnail

Node.js의 필요성 🧐

  • 빌드 자동화
  • 개발 환경 커스터마이징 CRA의 자동화된 도구도 존재하지만,
    각 프로젝트마다 상황이 있기에 그대로 사용하기에는 무리가 될 수 있다.

외부 패키지를 관리하는 방법

1. CDN을 이용한 방법

CDN(Content Delivery Network): 컨텐츠 전송 네트워크

  • script 태그로 삽입하여 사용한다.
  • 단점 : 네트워크가 불안정하면 패키지를 가져올 수 없다. (외부적 요인이 발생)
// 개발용으로 적합하며 배포용 버전에는 적합하지 않는다.
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>

// React의 용량 및 성능 최적화된 배포용 버전
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>

2. 직접 다운로드 하는 방법

로컬에 직접 다운로드 하는 것으로 네트워크가 불안정 하더라고 패키지는 정상적으로 동작한다.

하지만 라이브러리를 계속 업데이트 될 것이고 프로젝트도 최신 버전으로 업데이트 해주어야 한다.
직접 다운로드 하는 것은 매우 귀찮을 일이 되고, 휴먼 에러가 발생 할 여지가 많다.

3. NPM으로 의존성을 관리하는 방법

npm install react

버전 번호를 관리하기 위한 규칙이 필요한데 이 체계를 '유의적 버전'이라고 한다.
NPM은 유의전 버전(Sementic Version) 을 따르는 전제 아래 패키지 버전을 관리한다.

ex) v16.12.0

  • 주 버전(Major Version) : 기존 버전과 호환되지 않게 변경한 경우 ex) 16.12.0
  • 부 버전(Minor Version) : 기존 버전과 호환되면서 기능이 추가된 경우 ex) v16.12.0
  • 수 버전(Patch Version) : 기존 버전과 호환되면서 버그를 수정한 경우 ex) v16.12.0

틸트(~)

x.y.z 중 z 범위 내에서 버전 업데이트

  • 틸트는 요즘 잘 사용하지 않는다.

캐럿(^)

x.y.z 중 x 이하 하위호환성이 보장되는 범위 내에서 버전 업데이트

  • Node.js 모듈이 위 규약을 따른다는 것을 신뢰한다는 가정하에 동작한다.
    • Minor, patch 버전은 하위호환성이 보장되어야 하므로 업데이트를 한다.
  • Major버전이 바뀌지 않고, 하위호환성을 유지하기 때문에 실무에서 가장 많이 사용한다!

만약 특수기호가 없다면?

해당하는 버전이 고정된다.

0개의 댓글