Semver 도구 (파서·비교기·범프)
npm·Cargo·Go 모듈 등 어떤 패키지 생태계든 시맨틱 버전 문자열을 다루는데 — 1.10.0이 1.9.0보다 작다고 잘못 비교하거나 prerelease 태그를 놓치는 식의 실수는 몇 시간을 날리는 종류. 이 도구는 두 버전을 컴포넌트(major·minor·patch·prerelease·build)로 파싱, semver.org 공식 스펙대로(prerelease 순서 포함) 비교, 각 버전에 원클릭 범프 버튼 제공. 그 아래 범위 확장기는 가장 흔한 npm 범위 문법(^1.2.3·~1.2.3·~1.2·불안정 API용 ^0.x.y)을 명시적 ≥하한 <상한으로 변환 — 컴퍼레이터 스타일만 받는 도구에 그대로 복사 가능.
비교
B가 A보다 큼
매치
≥ 1.2.3·< 2.0.0사용법
- Version A·B 입력에 버전 문자열 타이핑 — 파싱 결과와 비교가 라이브 업데이트.
- 각 버전 아래 범프 버튼(메이저/마이너/패치/프리릴리스) 클릭으로 다음 버전 계산 — 릴리스 계획에 유용.
- 범위 확장기에 ^1.2.3·~1.2 같은 범위 입력 → 하한·상한 표시, Copy로 ≥a.b.c <x.y.z 문자열 복사.
자주 묻는 질문
- Prerelease 순서는 어떻게?
- 스펙대로 prerelease 있는 버전(1.0.0-alpha)이 없는 같은 버전(1.0.0)보다 작음. Prerelease 내부에선 식별자를 왼쪽부터 비교 — 숫자는 숫자로, 영숫자는 사전순으로, 같은 위치에서 숫자는 항상 영숫자보다 낮은 순위. 그래서 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0.
- 왜 ^0.2.3이 <0.3.0으로 확장? <1.0.0 아님?
- npm의 캐럿은 0.x.y에 대해 특별 처리 — pre-1.0 API는 불안정으로 간주, 0.x의 범프는 breaking으로 처리. 그래서 ^0.2.3은 0.2.x만, ^0.0.3은 0.0.3만 정확히 매치. npm 자체와 동일한 동작.
- Build 메타데이터가 비교에 영향?
- 아니요 — 스펙상 +build 메타데이터는 정보 전용이며 버전 비교 시 무시. 1.0.0+abc와 1.0.0+xyz는 같음.
- 여기서 지원하는 범위 문법은?
- 확장기는 ^x[.y[.z]], ~x[.y[.z]], 그리고 단독 x·x.y(각각 ~x·~x.y처럼 동작) 처리. '>=1.0.0 <2.0.0' 같은 조합 범위나 '1.x' 같은 와일드카드는 확장되지 않음 — 각 버전을 따로 파싱하는 건 여전히 가능.
관련 도구
단위 가격 비교기
g당·mL당·개당 가격으로 마트 상품을 비교. 무게·부피·개수 그룹 및 미터법·야드파운드법 단위 지원.
목록 비교 — 교집합, 합집합, 차집합
두 목록을 줄 단위로 비교: 공통 항목, 각 목록 고유 항목, 합집합 또는 대칭 차집합을 브라우저에서 찾습니다.
UUID 인스펙터 (버전·변형·시간)
임의의 UUID를 붙여넣어 버전(1~8)·변형, 그리고 시간 기반 v1·v6·v7의 경우 내장된 생성 타임스탬프·클록 시퀀스·노드(MAC)까지 디코딩 — 브라우저에서.
Conventional Commit 메시지 빌더
타입, 스코프, 호환성 깨짐, 푸터가 포함된 Conventional Commits 메시지를 브라우저에서 만듭니다.
JSON Patch 빌더 (RFC 6902)
source/target 쌍에서 RFC 6902 JSON Patch 생성, 또는 기존 patch를 문서에 적용. add·remove·replace·move·copy·test 작업 지원.
JSON Diff 뷰어
두 JSON을 구조적으로 비교 — 어떤 키가 추가·삭제·변경됐는지 정확히 보여 줍니다.