CI/CD 도구

커밋으로 체인지로그 생성버전, 체인지로그, 빌드 번호를 한 번에

커밋을 붙여넣고 현재 버전을 입력하면 다음 버전 제안, 체인지로그 초안, 빌드 번호를 받을 수 있습니다.

커밋으로 체인지로그 생성

커밋(한 줄에 하나의 header)

커밋과 버전 번호는 브라우저에서만 해석됩니다. 업로드되지 않으며 Git이나 CI 서비스도 호출하지 않습니다.

결과

커밋을 붙여넣거나 버전을 입력하면 시작됩니다.

옵션

인식되지 않은 줄도 계산을 막지 않습니다. 이 옵션은 체인지로그 초안의 “Other” 항목에 표시할지만 결정합니다.

커밋을 붙여넣거나 버전을 입력하면 시작됩니다.

릴리스에 태그를 붙이기 전에는 보통 다음 버전 번호가 무엇인지, 체인지로그에 무엇을 적을지, 이번 배포에 어떤 빌드 번호를 쓸지를 직접 정해야 합니다. 이 도구는 같은 커밋 묶음으로 커밋으로 체인지로그 생성과 함께 버전 제안, 빌드 번호까지 한 번에 이끌어내므로 세 결과가 서로 어긋나지 않습니다.

이는 직접 버전을 올리거나 CHANGELOG.md에 항목을 옮겨 적는 것과 다릅니다. 모든 제안은 Conventional Commit Builder와 동일한 문법으로 커밋 header를 해석한 결과이며, diff를 추측하거나 AI 서비스를 호출하지 않습니다. 붙여넣은 내용은 브라우저 밖으로 나가지 않으며, 이 도구는 태그를 만들거나 push하거나 Git·CI API를 호출하는 일도 전혀 하지 않습니다——오직 여러분이 사용할 텍스트만 만들어 줍니다.

왜 이 커밋으로 체인지로그 생성 도구를 써야 할까요

버전, 체인지로그, 빌드 번호가 모두 같은 커밋에서 나오면 무엇이 달라지는지 보세요.

AI 추측이 아닌 결정론적 제안

일부 릴리스 계산기는 변경 사항을 자유 텍스트로 설명하게 하고 이를 AI에 보내 버전을 추측합니다. 이 도구는 대신 Conventional Commit Builder와 동일한 문법으로 각 커밋의 header를 해석하므로, 같은 입력에서는 항상 같은 제안이 나오고 네트워크 요청은 전혀 발생하지 않습니다.

type, scope, 주요 변경 표시가 해석되어 네트워크 요청 없이 버전 영향 배지로 바뀌는 모습

버전, 체인지로그, 빌드 번호가 같은 숫자를 공유

독립된 버전 계산기, 체인지로그 생성기, 빌드 번호 생성기는 서로의 결과를 모릅니다. 여기서는 제안된 버전이 체인지로그 제목과 빌드 번호 템플릿의 {version} 자리표시자에 곧바로 전달되어 세 가지가 서로 어긋나지 않습니다. 생성된 체인지로그는 그대로 릴리스 노트 생성에도 쓸 수 있습니다.

제안된 버전 번호가 체인지로그 제목과 빌드 번호 템플릿 양쪽으로 흘러가는 모습

배포 전 ENV diff로 바로 이동

결과가 만들어지면 결과 패널이 ENV diff 도구로 바로 연결됩니다. 배포 전에 환경 변수를 비교하는 이 단계는 비교했던 독립적인 체인지로그·빌드 번호 도구에는 없었습니다.

생성된 릴리스 계획에서 ENV diff 도구로 이어지는 링크가 있는 결과 패널

처음에 헷갈리기 쉬운 세 가지

첫 커밋 묶음을 붙여넣기 전에 알아두면 좋은 것들입니다.

01

커밋 header를 한 줄에 하나씩 붙여넣기

`git log --pretty=format:%s`가 출력하는 형식 그대로, 한 줄에 `type(scope)!: subject` 하나씩 붙여넣습니다. 본문이나 `BREAKING CHANGE:` 꼬리말이 있는 여러 줄짜리 커밋 메시지는 여기서 해석되지 않습니다. 주요 변경은 type이나 scope 바로 뒤에 `!`를 붙여 표시하세요.

  • 자신의 커밋을 붙여넣기 전에 예시를 먼저 불러와 header 문법을 확인해보세요.
계산기로 이동
02

현재 버전과 빌드 번호 템플릿 설정

현재 버전을 엄격한 semver 형식(예: 1.4.2)으로 입력하고, 필요하면 빌드 번호 템플릿을 수정하세요. 기본값 `{version}+{yyyyMMdd}.{count}`는 제안된 버전, 오늘 날짜, 직접 입력하는 빌드 카운트를 사용합니다——이 도구에는 CI 실행 환경이 없어 실제 빌드 번호를 읽을 수 없습니다.

자동 생성을 끄면 여러 필드를 먼저 수정한 뒤 Ctrl/Cmd+Enter로 한 번에 실행할 수 있습니다.

03

영향 배지를 확인한 뒤 내보내기

배지(메이저, 마이너, 패치, 변경 없음)는 어떤 커밋이 버전을 끌어올렸는지 보여줍니다——주요 변경 표시는 언제나 일반 feat나 fix보다 우선합니다. 태그를 붙이기 전에 체인지로그를 복사하거나 다운로드하고, 빌드 번호를 복사하거나 ENV diff 링크를 따라가 보세요.

입력이 바뀌면 이전 결과가 흐려지고, 다시 생성할 때까지 복사와 다운로드가 비활성화됩니다.

해석되지 않는 내용 보기

이 도구가 커밋으로 하는 일

커밋 header 묶음을 바로 쓸 수 있는 릴리스 초안으로 바꾸는 네 가지 요소입니다.

header만 읽는 Conventional Commit 파서

이 도구는 Conventional Commit Builder와 동일한 문법으로 `type(scope)!: subject` 줄을 읽고, 인식된 각 줄의 영향도를 매겨 가장 높은 것을 채택합니다——배치 어딘가에 `!` 하나 또는 `feat` 하나만 있어도 전체 릴리스가 끌어올려집니다.

주요 변경을 맨 위에 두는 Keep a Changelog 형식 초안

인식된 커밋은 Breaking Changes, Features, Fixes, Other 네 그룹으로 분류되어 복사하거나 CHANGELOG.md로 다운로드할 수 있는 Markdown으로 렌더링됩니다——주요 변경 항목은 항상 맨 위에 나옵니다.

직접 조정하는 빌드 번호 템플릿

`{version}`, `{yyyy}`, `{yyyyMM}`, `{yyyyMMdd}`와 직접 입력하는 `{count}`를 조합해 파이프라인이 필요로 하는 어떤 빌드 번호 형식이든 만들 수 있습니다. 알 수 없는 자리표시자는 그대로 남고 경고만 표시될 뿐, 조용히 사라지지 않습니다.

인식되지 않은 줄이 결과를 막지 않음

유효한 커밋 header가 아닌 줄은 버전 제안 계산에서 건너뛰고 별도로 집계할 뿐, 전체 계산을 멈추지 않습니다——“무시” 옵션을 끄면 체인지로그의 Other 항목에서 해당 줄을 볼 수 있습니다.

이 도구가 해석하는 것과 하지 않는 것

실제 릴리스의 커밋을 붙여넣기 전에 알아둘 만한 경계 조건입니다.

한 줄짜리 커밋 header만 읽습니다
본문이나 `BREAKING CHANGE:` 꼬리말이 있는 여러 줄짜리 커밋 메시지는 지원하지 않습니다——메시지를 한 줄씩 이어 붙이면 빈 줄로 구분되는 꼬리말 경계를 다음 커밋의 header와 확실히 구분할 수 없기 때문입니다. 주요 변경은 대신 `!`로 표시하세요.
한 번에 최대 1,000줄 또는 100,000자
이를 초과해 붙여넣으면 커밋을 조용히 잘라내는 대신 오류를 반환합니다——아주 큰 릴리스 범위는 더 작은 단위로 나눠 처리하세요.
현재 버전은 엄격한 semver 문자열이어야 합니다
`v1.4.2`, `1.4`, 앞에 0이 붙은 버전 등은 위치가 표시된 오류로 거부됩니다. `1.4.2`와 같은 형식이 될 때까지 제안란은 비워둡니다.
게시, 태그 생성, CI 읽기를 전혀 하지 않습니다
저장소에서 커밋을 가져오지 않고, 태그도 만들지 않으며, `{count}`가 실제 빌드 번호에서 읽히는 일도 없습니다——이 도구는 붙여넣은 텍스트를 버전, 체인지로그 초안, 빌드 번호 문자열로 바꿔줄 뿐입니다.

커밋으로 체인지로그 생성 FAQ

커밋 기반 버전 제안을 믿기 전에 실제로 많이 하는 질문입니다.

커밋 메시지에 따라 패치 버전이 올라가지 않는 이유는?

해당 줄이 `type(scope)!: subject` 형식과 정확히 일치하는지 확인하세요. 콜론 누락, 불필요한 공백, 지원하지 않는 문법이 있으면 그 줄 전체가 인식되지 않고, 인식되지 않은 줄은 버전 제안에 전혀 반영되지 않습니다. 결과 아래의 인식된 줄 수를 보면 실제로 몇 줄이 해석됐는지 알 수 있습니다.

BUILD_NUMBER를 버전에 반영하려면 어떻게 해야 하나요?

옵션에서 빌드 번호 템플릿을 수정하세요. 기본값 `{version}+{yyyyMMdd}.{count}`는 이 도구가 제안한 버전, 오늘 날짜, 직접 입력하는 카운트를 조합합니다——여기에는 CI 실행 환경이 없어 실제 빌드 번호를 읽을 수 없으므로 `{count}`는 수동으로 입력해야 합니다.

버전 번호와 빌드 번호의 차이는 무엇인가요?

버전 번호(1.5.0 같은)는 시맨틱 버저닝을 따르며 커밋의 영향도로 결정됩니다. 빌드 번호는 템플릿에서 생성되는 별도의 문자열로, 같은 버전이라도 빌드마다 구분하고 싶은 CI 시스템에 유용합니다——`{version}`을 포함할 수도 있지만 날짜와 직접 입력하는 `{count}`도 함께 조합됩니다.

체인지로그를 자동으로 생성하는 좋은 방법이 있나요?

커밋을 한 줄에 하나의 header로 붙여넣기만 하면, 이 도구가 커밋으로 체인지로그 생성을 진행해 feat·fix·주요 변경별로 묶은 Keep a Changelog 형식 초안을 만들어줍니다. 복사하거나 CHANGELOG.md로 다운로드하면 되므로 손으로 옮겨 적을 필요가 없습니다.

커밋이 규칙을 따르지 않으면 어떻게 되나요?

`type(scope)!: subject` 형식과 맞지 않는 줄은 “인식되지 않음”으로 집계될 뿐, 버전 제안 계산에는 쓰이지 않습니다. 기본적으로 “인식되지 않은 줄 무시”가 켜져 있어 체인지로그 초안에도 표시되지 않습니다——표시하고 싶다면 이 옵션을 꺼 주세요.

원하는 답을 찾지 못했나요?

지금 커밋으로 체인지로그 생성 사용하기

커밋을 붙여넣고 현재 버전을 확인하기만 하면 몇 초 만에 버전 제안, 체인지로그 초안, 빌드 번호를 얻을 수 있습니다.

모든 처리는 브라우저에서 로컬로 이루어집니다——가입도, 업로드도 필요 없고 태그나 배포가 대신 실행되는 일도 없습니다.

모든 해석은 브라우저에서 로컬로 이루어지며, 태그 생성이나 게시를 대신하지 않습니다.