Semantic Versioning
소프트웨어 관리를 위해서는 의존성에 유의해야하는데 버전 번호를 어떻게 정하고 올려야 하는지 규칙과 요구사항을 제안 합니다.
버전은 .을 기준으로 3개로 구분합니다.
Major . Minor . Patch
- 기존 버전과 호환되지 않게 API가 바뀌면 Major의 숫자를 올립니다.
- 기존 버전과 호환되면서 새로운 기능을 추가할 때는 Minor의 숫자를 올립니다.
- 기존 버전과 호환되면서 버그를 수정한 것이면 Patch의 숫자를 올립니다.
즉 최초 출시로 1.0.0 에서 이전 버전과 호환되는 버그 수정은 Patch를 수정하여 1.0.1로 업데이트 하고,
여기서 이전 버전과 호환되는 새로운 기능을 추가하면 Minor를 증가시키고 Patch를 0으로 (1.1.0) 업데이트 합니다.
그리고 이전 버전과 호환되지 않는 변경이 있다면 Major를 증가시키고 나머지를 0으로 업데이트 합니다. 2.0.0
해당 내용은 https://semver.org/lang/ko/ 에서 더 자세하게 확인할 수 있습니다.
Tilde( ~ )
해당 패키지의 Patch를 변경하겠다는 의미 입니다.
요즘 잘 사용하지 않지만 틸드는 Minor는 증가시키지 않고 최신 Patch까지 업데이트합니다.
~1.7.1
은 < 1.8.0
까지 즉 1.7.x 릴리즈를 사용합니다.
Caret( ^ )
패키지의 Minor와 Patch까지 변경합니다.
캐럿은 ^1.0.0 이라면 1.0.0을 포함해서 2.0.0 전 까지의 버전, 즉 1.x.x 내에서 하위 호환성이 보장되므로 그 안에서는 모두 업데이트 하겠다는 의미입니다.
^1.7.1
은 < 2.0.0
까지의 릴리즈를 사용합니다.
초기 개발 단계에서는 Major를 0으로 두면 캐럿이 조금 다르게 동작합니다.
초기 개발 단계는 잦은 업데이트가 일어나기 때문에 틸드처럼 동작하게 됩니다.
이 단계에서는 0.1.0 으로 시작하는 것을 권장하고 캐럿은 0.1.x 로 릴리즈합니다.
'react' 카테고리의 다른 글
React 18 자동 배칭, Automatic batching (0) | 2022.03.03 |
---|---|
React18 Suspense SSR 아키텍쳐 (0) | 2022.02.17 |
[webpack] package.json package-lock.json 차이 (0) | 2022.02.14 |
[React] 클래스형 컴포넌트 LifeCycle 정리 (0) | 2021.12.09 |
Webpack이 뭔데!!(6) (0) | 2021.09.14 |
댓글