^ 기호와 ~ 기호오늘은 dependencies 버전 앞 ^기호와 ~기호에 대해 알아보겠습니다.
사실 여태까지 뭔 뜻인지도 모르고 쓰는 분들도 있을 거라 생각합니다.

여기서는
^기호가 쓰였네요

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