더북(TheBook)

5.3 패키지 버전 이해하기

노드 패키지들의 버전은 항상 세 자리로 이뤄져 있습니다. 심지어 노드의 버전도 세 자리입니다. 버전이 세 자리인 이유는 SemVer 방식의 버전 넘버링을 따르기 때문입니다.

SemVer는 Semantic Versioning(유의적 버전)의 약어입니다. 버전을 구성하는 세 자리가 모두 의미를 갖고 있다는 뜻입니다.

각각의 패키지는 모두 버전이 다르고 패키지 간의 의존 관계도 복잡합니다. 어떤 패키지의 버전을 업그레이드했는데, 그것을 사용하는 다른 패키지에서 에러가 발생한다면 문제가 됩니다. 많은 패키지가 서로 얽히다 보면 이 문제는 점점 더 심각해집니다. 따라서 버전 번호를 어떻게 정하고 올려야 하는지를 명시하는 규칙이 등장했습니다. 이것이 바로 SemVer입니다.

버전의 첫 번째 자리는 메이저(major) 버전입니다. 메이저 버전이 0이면 초기 개발 중이라는 뜻입니다. 1부터는 정식 버전을 의미합니다. 메이저 버전은 하위 호환이 안 될 정도로 패키지의 내용이 수정되었을 때 올립니다. 예를 들어 1.5.0에서 2.0.0으로 올렸다는 것은, 1.5.0 버전 패키지를 사용하고 있던 사람들이 2.0.0으로 업데이트했을 때 에러가 발생할 확률이 크다는 뜻입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.