개발자 도구

Semver 계산기버전 순서와 범위 일치를 구분하세요

의존성 범위를 검사하고 두 버전을 비교하거나 다음 버전을 계산하세요.

Semver 계산기

버전 목록 (한 줄에 하나)

입력은 이 브라우저에서 처리되며 서버로 전송되지 않습니다.

결과

입력하거나 예시를 불러오세요.

옵션

엄격한 SemVer 2.0.0 버전만 허용합니다. 앞뒤 공백, v 접두사, 생략된 부분은 허용하지 않습니다. 핵심 버전 숫자와 숫자로만 된 사전 릴리스 식별자는 선행 0을 허용하지 않지만 빌드 식별자는 허용합니다.

npm 범위는 ^, ~, 비교 연산자, x, 하이픈 범위, ||를 지원합니다. 빈 범위와 빈 OR 분기는 와일드카드로 처리합니다.

같은 그룹의 비교 조건에 동일한 major.minor.patch의 사전 릴리스가 명시되지 않으면 사전 릴리스를 제외합니다.

빌드 메타데이터는 우선순위에 영향을 주지 않습니다. 같은 우선순위는 입력 순서를 유지합니다.

도구 제한: 1000줄, UTF-16 코드 단위 100000개, 버전 256자, 범위 4096자. 핵심 버전 숫자와 숫자로만 된 사전 릴리스 식별자는 9007199254740991 이하여야 합니다. 빌드 식별자에는 이 숫자 한도를 적용하지 않습니다.

입력 또는 옵션이 변경되었습니다. 결과를 갱신한 뒤 내보내세요.

Semver 계산기는 더 최신인 beta가 의존성 범위에 포함되지 않는 이유를 살펴볼 때 유용합니다. 범위를 바꾸기 전에 시맨틱 버전의 우선순위와 범위 조건을 따로 확인하세요.

문자열 정렬은 1.10.0을 1.9.0보다 앞에 놓을 수 있습니다. 버전 비교에서는 숫자와 사전 릴리스 식별자를 각각의 규칙으로 비교합니다.

Semver 계산기를 사용하는 이유

제외된 beta의 이유 확인

Semver 계산기는 확장한 npm 조건과 각 줄의 결과를 함께 보여줍니다. 숫자 경계를 만족해도 기본 사전 릴리스 규칙 때문에 제외될 수 있습니다.

안정 버전은 범위를 통과하고 사전 릴리스는 별도 경로로 향합니다.

빌드 번호와 우선순위 구분

1.2.3+build.1과 1.2.3+build.7은 우선순위가 같습니다. 정렬해도 입력 순서를 유지하며 빌드 번호를 새 버전으로 취급하지 않습니다.

두 빌드 표시가 같은 계단에 놓인 버전 목록입니다.

계산 전 세 가지 확인

01

버전과 범위를 나눠 입력

버전에는 숫자 세 부분이 모두 필요합니다. 범위에는 1.2와 ^0.2.3 같은 축약형을 쓸 수 있습니다. 빈 범위와 빈 OR 분기는 와일드카드입니다.

02

사전 릴리스 옵션 확인

기본값은 꺼짐입니다. 켜면 범위 판정만 바뀌며 엄격한 버전 구문은 유지됩니다. 특히 0.x 범위에서 확장한 조건을 확인하세요.

03

교체하기 전에 검토

예제와 지우기는 전체 입력과 설정을 미리 보여줍니다. 적용 후 실행 취소가 가능합니다. 자동 계산은 350ms 기다리며 수동 모드는 Ctrl/Cmd+Enter를 지원합니다.

네 가지 릴리스 검사

일괄 범위 검사기

한 줄에 버전 하나씩 입력하고 비교 연산자, ^, ~, 와일드카드, 하이픈 범위와 OR를 검사합니다.

우선순위 비교

주 버전, 부 버전, 패치, 사전 릴리스 순으로 비교합니다. 빌드 메타데이터는 순위에 영향을 주지 않습니다.

안정적인 목록 정렬

오름차순과 내림차순을 지원합니다. 유효하지 않은 줄은 원래 줄 번호와 함께 끝에 남고 같은 우선순위는 입력 순서를 유지합니다.

일곱 가지 버전 증가

major, minor, patch, premajor, preminor, prepatch, prerelease를 지원하며 원본 버전을 고치지 않고 결과를 보여줍니다.

구문과 계산 한도

엄격한 버전 문자열
엄격한 SemVer 2.0.0 버전만 허용합니다. 앞뒤 공백, v 접두사, 생략된 부분은 허용하지 않습니다. 핵심 버전 숫자와 숫자로만 된 사전 릴리스 식별자는 선행 0을 허용하지 않지만 빌드 식별자는 허용합니다. 빌드 메타데이터는 우선순위에 영향을 주지 않습니다. 같은 우선순위는 입력 순서를 유지합니다.
npm 범위 규칙
npm 범위는 ^, ~, 비교 연산자, x, 하이픈 범위, ||를 지원합니다. 빈 범위와 빈 OR 분기는 와일드카드로 처리합니다. 같은 그룹의 비교 조건에 동일한 major.minor.patch의 사전 릴리스가 명시되지 않으면 사전 릴리스를 제외합니다.
입력과 숫자 한도
도구 제한: 1000줄, UTF-16 코드 단위 100000개, 버전 256자, 범위 4096자. 핵심 버전 숫자와 숫자로만 된 사전 릴리스 식별자는 9007199254740991 이하여야 합니다. 빌드 식별자에는 이 숫자 한도를 적용하지 않습니다.
증가 동작
버전 증가 시 빌드 메타데이터를 제거합니다. 새 사전 릴리스 번호는 0부터 시작합니다. 식별자가 비어 있으면 기존 식별자를 유지하고 번호를 늘립니다.
입력만 계산
레지스트리 검색, 의존성 설치, 프로젝트 수정은 하지 않습니다. 빈 줄은 유효하지 않으며 마지막 줄바꿈 하나는 종료 기호입니다. 범위 일치가 API 호환성을 보장하지는 않습니다.

Semver 계산기 질문

package.json에서 ~와 ^는 어떻게 다른가요?

~1.2.3은 1.2.3 이상 1.3.0 미만, ^1.2.3은 2.0.0 미만의 안정 버전을 허용합니다. ^는 가장 왼쪽의 0이 아닌 부분을 고정하므로 ^0.2.3은 0.3.0 미만, ^0.0.3은 0.0.4 미만입니다.

최신 사전 릴리스가 ^ 범위에 포함되나요?

보통은 아닙니다. Semver 계산기는 npm처럼 옵션이 꺼져 있으면 같은 그룹의 조건에 동일한 major.minor.patch의 사전 릴리스가 명시되어야 허용합니다. 최신 공개 버전인지는 관계없습니다.

빌드 메타데이터는 어디에 쓰나요?

빌드나 커밋을 식별할 수 있지만 우선순위에는 영향이 없습니다. + 뒤만 다른 버전은 동등하며 정렬에서도 원래 순서를 유지합니다.

여러 형식의 버전 태그를 섞어 정렬할 수 있나요?

엄격한 SemVer만 정렬합니다. v1.2.3이나 1.10-alpine3는 유효하지 않은 줄로 끝에 보존하며 다른 문자열로 자동 변환하지 않습니다.

버전에 alpha 접미사를 붙이려면 어떻게 하나요?

사전 릴리스 증가를 선택하고 식별자를 alpha로 설정하세요. 1.2.3에 premajor를 적용하면 2.0.0-alpha.0입니다. 기존 식별자를 유지하며 번호를 늘리려면 식별자를 비워 두세요.

예상과 다른 버전 결과인가요?

Semver 계산기로 확인하기

Semver 계산기에 릴리스 목록을 넣고 범위 설명을 검토한 뒤 현재 보고서를 저장하세요.