^
기호와 ~
기호오늘은 dependencies 버전 앞 ^
기호와 ~
기호에 대해 알아보겠습니다.
사실 여태까지 뭔 뜻인지도 모르고 쓰는 분들도 있을 거라 생각합니다.
여기서는
^
기호가 쓰였네요
여기서는
~
기호가 쓰였습니다.
차이는 뭘까요? 사실 차이는 아주 간단합니다. 저 기호들은 버전 앞에 붙이는 접두사(prefix)라고 볼 수 있는데요. 간단하게 말하자면 프로젝트 내부 dependency의 버전을 제한할 것인지 여부를 나타내는 기호입니다.
사실 ^
와 ~
기호의 진짜 뜻을 이해하기 위해서 먼저 공부해야 하는 것이 하나 있습니다.
그건 바로 시멘틱 버전(semantic versioning) 인데요, 매우 중요한 것이기 때문에 모르신다면 꼭 알아두시는 것이 좋습니다.
시멘틱 버전이란 우리가 디펜던시에서 볼 수 있는 버전의 표현 방식을 이야기합니다. 위에서 react
의존성의 시멘틱 버전은 16.8.6
인데요. .
으로 구분된 3가지 숫자는 그냥 존재하는 것이 아니라 각각의 숫자마다 의미를 갖고 있습니다.
간단하게 정리하자면 각각의 숫자가 갖는 의미는 다음과 같습니다.
^
기호와 ~
기호가 시멘틱 버전에서 갖는 의미일단 dependency에 ^
기호나 ~
기호가 없고 그저 버전만 있다면 정확하게 일치하는 버전의 의존성을 사용하게 됩니다. 하지만 ^
기호나 ~
기호가 있다면 정확하게 일치하는 버전을 사용하기보다 제한된 버전 내에서 최신 버전을 사용하게 됩니다. 참고로 알아두시면 좋은 것은 --save
옵션을 이용하여 디펜던시를 추가했을 때는 자동으로 ^
기호가 붙습니다.
^
기호가 의존성 버전 앞에 쓰여졌을 때^16.8.6
의 버전을 기준으로 16.*.*
의 버전을 가져올 수 있습니다.17.
으로 시작하는 버전을 가져오는 것은 불가능합니다.~
기호가 의존성 버전 앞에 쓰여졌을 때~16.8.6
의 버전을 기준으로 하면 16.8.*
의 버전을 가져올 수 있다고 생각하시면 됩니다.의존성 버전 앞에는 상황에 맞게 적당한 옵션을 선택하여 사용하시면 되겠습니다.
읽어주셔서 감사합니다.