semver 비교기

두 시맨틱 버전(semver)의 크기를 비교하고 버전 범위 표기를 해석합니다.

카테고리: 개발자 도구

언제 사용하나요?

패키지 업데이트 전후 버전 차이를 확인하거나 ^ 범위에 특정 버전이 포함되는지 빠르게 볼 때 사용합니다.

사용 방법

  • 비교할 두 버전을 입력합니다.
  • 범위 표현식을 입력합니다.
  • 크기 비교와 포함 여부를 확인합니다.

입력값 안내

x.y.z 형태의 semantic version과 ^x.y.z 범위를 입력합니다.

계산·변환 기준

major, minor, patch 숫자를 분리해 순서대로 비교하고, caret 범위는 같은 major 안에서 기준 버전 이상인지 확인합니다.

사용 예시

  • 패키지 업데이트 판단 - 업데이트 버전이 현재 범위에 들어오는지 확인합니다.
  • 버전 크기 비교 - 두 버전 중 어느 쪽이 더 최신인지 major·minor·patch 순으로 비교합니다.
  • 의존성 범위 점검 - ^ 범위 표현식에 특정 버전이 포함되는지 확인해 호환 여부를 판단합니다.

예시

  • 1.4.2 vs 1.5.0 → 1.5.0이 더 큼
  • ^1.2.3 범위에 1.5.0이 포함되는지 확인
  • 2.0.0-alpha.1 vs 2.0.0-beta.3 → 프리릴리스 버전 순서 비교
  • ~2.3.4 범위에 2.3.9 포함 여부 → patch 업데이트 안전성 확인
  • react@18.2.0 vs react@19.0.0 → major 버전 차이로 breaking change 가능성 경고
  • 여러 버전 목록 입력 → 최신 버전 자동 정렬 후 최고 버전 표시

주의사항

  • 현재 도구는 기본 비교와 caret(^) 범위 확인을 지원합니다. 틸드(~), 하이픈(-) 범위 등 복잡한 npm range 문법은 semver 라이브러리나 npm 공식 문서를 통해 확인하세요.
  • 프리릴리스(-alpha, -beta) 버전 비교는 semver 규칙에 따르며, 정식 릴리스가 프리릴리스보다 항상 높게 평가됩니다.

자주 묻는 질문

모든 npm range 문법을 지원하나요?

현재 UI는 기본 버전 비교와 간단한 caret(^) 범위 확인에 맞춰져 있습니다. 틸드(~), 하이픈(-) 범위, x 와일드카드 같은 복잡한 npm range 문법은 semver 라이브러리나 npm 공식 문서를 통해 확인하세요.

버전은 어떤 순서로 비교하나요?

major를 먼저 비교하고 같으면 minor, 그다음 patch 숫자를 차례로 비교합니다. 예를 들어 2.0.0 > 1.9.9이며, 1.10.0 > 1.9.0입니다. 각 필드는 숫자로 비교하므로 1.10.0이 1.9.0보다 큽니다.

caret(^) 범위는 어디까지 허용하나요?

^1.2.3은 같은 major(1.x.x) 안에서 1.2.3 이상의 버전을 허용합니다. major가 올라가면(2.0.0) 범위를 벗어납니다. major가 0인 경우(^0.2.3)는 minor도 고정되어 0.2.x 범위만 허용됩니다.

1.0.0과 1.0.0-beta 중 어느 것이 크나요?

semver 규칙상 정식 버전이 프리릴리스보다 큽니다. 즉 1.0.0이 1.0.0-beta보다 최신입니다. 프리릴리스 간 비교는 alpha < beta < rc 순서로 처리됩니다.

관련 도구

  • package.json 정리 도구 - package.json을 붙여넣으면 scripts·dependencies·devDependencies를 알파벳순으로 정렬하고 주요 필드를 한눈에 파악할 수 있게 표시합니다. 패키지 의존성 현황 점검과 신규 프로젝트 리뷰에 유용합니다.
  • JSON 포매터 - JSON 문자열을 보기 좋게 들여쓰기하거나 최소화합니다. 유효성 오류도 함께 표시합니다.
  • UUID 생성기 - 암호학적으로 안전한 UUID v4를 최대 20개까지 한 번에 생성합니다.
  • SQL 포매터 - 압축되거나 뒤섞인 SQL 쿼리를 SELECT·FROM·WHERE·JOIN 등 절 단위로 보기 좋게 정렬합니다. MySQL·PostgreSQL·SQLite 등 주요 DBMS 방언을 지원합니다.
  • HTML 포매터 - 한 줄로 압축되거나 들여쓰기가 엉망인 HTML 코드를 태그 계층에 맞춰 줄바꿈과 들여쓰기로 정리합니다. CMS·API에서 받은 HTML 응답을 분석할 때 특히 유용합니다.
  • CSS 포매터 - minify되거나 뒤섞인 CSS 코드를 선택자·속성별로 줄 분리해 정렬합니다. @media 쿼리와 :root 변수 블록도 계층에 맞게 들여쓰기합니다.