소프트웨어 버전이란?

발행: (2026년 2월 16일 오후 07:03 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Cover image for What are Software Versions?

저는 소프트웨어 버전이 매 업데이트마다 바뀌는 연속적인 숫자라고 생각했었습니다.
v1.1에서 v1.2로 바뀔까요?
왜 갑자기 v2.0으로 뛰어오를까요?
그날 개발자가 그냥 드라마틱하게 느꼈던 걸까요?

그러다 작은 앱을 만들면서 어느 순간 깨달았습니다.

The First Release

우리 둘이 TaskNest라는 간단한 앱을 만든다고 상상해 보세요.
작업을 만들고 완료 표시를 할 수 있습니다. 특별한 기능은 없습니다.

우리는 자랑스럽게 이렇게 출시합니다:

v1.0.0

첫 번째 “1”은 강력한 의미를 가집니다. 그것은 말합니다:

“이것은 실제입니다. 이것은 안정적입니다. 이것은 준비되었습니다.”

0들은? 아직 추가된 것이 없다는 뜻일 뿐입니다.

이 형식은 실제로 Semantic Versioning이라는 간단한 아이디어를 따릅니다.

A Bug Appears

다음 날, 누군가 보고합니다:

“빈 작업을 만들면 앱이 충돌합니다.”

우리는 즉시 고칩니다. 새로운 기능도 없고, 디자인 변경도 없습니다. 단지 수리일 뿐입니다.

버전은 이렇게 됩니다:

v1.0.1

마지막 숫자만 바뀌어, 다음을 알립니다:

“걱정 마세요. 새로운 것이 없습니다. 작은 수정뿐입니다.”

다른 작은 문제를 또 고친다면:

v1.0.2

작은 수리 = 작은 번호 변화.

A Feature Grows

일주일 후, 사용자들이 묻습니다:

“작업에 마감일을 추가할 수 있을까요?”

그건 수정이 아니라 성장입니다. 마감일을 추가하고, 다른 모든 것이 그대로 작동하도록 합니다.

이제는:

v1.1.0

중간 숫자가 증가하면서 속삭입니다:

“새로운 것이 들어왔습니다.”

나중에 카테고리를 추가한다면:

v1.2.0

더 많은 기능, 여전히 안전하고 호환됩니다.

The Big Decision

몇 달이 흐릅니다. 앱이 성장합니다. 그리고 우리는 작업이 내부적으로 저장되는 방식을 재설계하기로 결정합니다.

  • 기존에 저장된 데이터가 작동하지 않음.
  • API가 변경됨.
  • 우리 통합을 사용하는 개발자들은 코드를 업데이트해야 함.

이번은 심각하므로 우리는 출시합니다:

v2.0.0

1에서 2로의 점프는 자존심 때문이 아니라 영향력 때문입니다. 세계에 이렇게 알리는 방법이죠:

“조심하세요. 이것이 깨질 수도 있습니다.”

And That’s It

이것이 버전 관리입니다: 세 개의 숫자, 세 개의 신호.

  • 마지막 숫자 → 작은 수정
  • 중간 숫자 → 새로운 기능
  • 첫 번째 숫자 → 파괴적 변화

무작위가 아닙니다. 소통입니다.

v2.1.3을 보면 단순히 숫자를 보는 것이 아니라 역사를 보는 것입니다.

이제 무언가를 배포할 때마다 저는 묻지 않습니다:

“어떤 번호를 골라야 할까?”

제가 묻는 것은:

“스토리를 얼마나 바꿨나요?”

0 조회
Back to Blog

관련 글

더 보기 »

Vue Composition API: Computed와 Ref 프로퍼티 설명

안녕하세요, 사랑스러운 독자 여러분. Vue 3와 TypeScript를 사용하고 있다면 `ref`와 `computed`를 여러 번 보았을 것입니다. 이들은 튜토리얼은 물론 실제 프로젝트에서도 자주 등장합니다.