[Korean FE Article] 에포크 시맨틱 버전(Epoch Semantic Versioning)
소개
여러분은 어떠한 방식으로 버전 번호를 부여하고 계신가요? 아마도 대부분의 프로젝트에서는 시맨틱 버전을 사용하고 있을 것이라 생각합니다. 시맨틱 버전은 가장 널리 알려진 버전 체계중 하나로, MAJOR.MINOR.PATCH 형태의 버전을 사용합니다. 기존과 호환되지 않는 API 변경(breaking change)이 있는 경우는 MAJOR, 기존 버전과 호환 되며 새로운 기능이 추가되는 경우 MINOR, 기존 버전과 호환 되며 버그를 수정한 경우에는 PATCH 버전을 올리게 됩니다. 간단한 규칙으로 명확하게 변경 사항에 대한 정보를 전달할 수 있지만 완벽하지는 않습니다.
시맨틱 버전에서는 이전 버전과 호환 되지 않는다면 작은 변경이든 큰 변경이든 관계 없이 MAJOR 버전을 올리게 됩니다. 때문에 사소한 변경 임에도 업데이트를 꺼리게 만들거나, MAJOR 버전이 지나치게 높아지는 경우 중요한 변경이 사소한 변경 처럼 보이게 되어 변경 사항의 중요성을 전달하기 어려워 지기도 합니다.
이 글에서는 이러한 문제점을 해결하기 위한 새로운 규칙을 제안하고 있습니다. 이 규칙은 시맨틱 버전의 형식을 확장하는 형태로, 기존 시맨틱 버전 체계를 따르는 도구들에 영향을 주지 않으면서 문제점을 해결할 수 있도록 고안된 점이 특징입니다. 평소 버전 관리에 있어서 고민이 있으셨다면 읽어 보시길 추천드립니다.
목차
버전(Versioning)
시맨틱 버전(Semantic Versioning)
점진적(Progressive)
제로 메이저 버전 방식(Leading Zero Major Versioning)
에포크 시맨틱 버전(Epoch Semantic Versioning)
앞으로의 계획