더북(TheBook)

새 버전을 배포한 후에는 그 버전의 내용을 절대 수정하면 안 됩니다. 만약 수정 사항이 생기면 major 버전, minor 버전, patch 버전 중 하나를 의미에 맞게 올려서 새로운 버전으로 배포해야 합니다. 배포된 버전 내용이 바뀌지 않기 때문에 패키지 간 의존 관계에 큰 도움이 됩니다. 특정 버전이 정상적으로 동작하고, 같은 버전을 사용한다면 어떠한 경우라도 정상적으로 동작할 것이라 믿을 수 있습니다.

버전의 숫자마다 의미가 부여되어 있으므로 다른 패키지를 사용할 때도 버전만 보고 에러 발생 여부를 가늠할 수 있습니다. 의존하는 패키지의 major 버전이 업데이트되었다면 기존 코드와 호환이 되지 않을 확률이 크기 때문에 미리 주의를 기울여야 합니다. minor나 patch 버전 업데이트는 비교적 안심하고 버전을 올릴 수 있습니다.

package.json에는 SemVer식 세 자리 버전 외에도 버전 앞에 ^~ 또는 >, < 같은 문자가 붙어있습니다. 이 문자는 버전에는 포함되지 않지만 설치 또는 업데이트 시 어떤 버전을 설치해야 하는지 알려줍니다.

가장 많이 보는 기호는 ^입니다. minor 버전까지만 설치 또는 업데이트합니다. npm i express@^1.1.1이라면 1.1.1 < = 버전 < 2.0.0까지 설치됩니다. 2.0.0은 설치되지 않습니다. 1.x.x와 같이 표현할 수도 있습니다.

~ 기호를 사용한다면 patch 버전까지만 설치 또는 업데이트합니다. npm i express@~1.1.1이라면 1.1.1 < = 버전 < 1.2.0까지 설치됩니다. 1.1.x와 같은 표현도 가능합니다. ~보다 ^가 많이 사용되는 이유는 minor 버전까지는 하위 호환이 보장되기 때문입니다.

>, <, > =, < =, =는 알기 쉽게 초과, 미만, 이상, 이하, 동일을 뜻합니다. npm i express@>1.1.1처럼 사용합니다. 반드시 1.1.1 버전보다 높은 버전이 설치됩니다.

추가로 @latest도 사용하는데, 항상 최신 버전의 패키지를 설치합니다. x로도 표현할 수 있습니다(예: npm i express@latest 또는 npm i express@x).

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