프로그래밍/JAVA Spring

버저닝 ... 2

hectick 2023. 10. 23. 13:27

 

⬇️버저닝 ... 1편⬇️

 

버저닝 ...

안드로이드와 협업을 할 때 버저닝은 필수적이다. 왜냐하면 죽어도 앱 업데이트를 안하는 사람들(대표적으로 나)가 있기 때문 올해 중순까지만 해도 카카오톡 업데이트를 안해서 보이스톡 기능

finger-ineedyourhelp.tistory.com

 

 

포스팅 이후에 팀원들과 버저닝에 대해 토의하는 시간을 한번 더 가졌다.

"호환성"과 "추후에 강제 업데이트하는 상황"에 대해 생각을 더 해보다가 이야기가 나왔던 것인데,

(Major).(Minor).(Patch)에서 Major 버전을 언제 올릴지가 주된 토의 내용이었다.

 

- 기존

특정 기능에 대한 API가 바뀌면 Major를 올린다. 예를들어 회원정보조회 API가 바뀌며 Major 버전을 1에서 2로 올릴때, 서버에서는 1과 2를 모두 지원한다.

 

- 새로운 의견

특정 기능에 대한 API가 바뀌어도, 바뀌기 전과 바뀐 후의 API를 모두 지원한다면, Major를 올리지 않는다. Minor나 Patch를 올리는 선에서 끝난다. 그리고 바뀌기 전 API를 완전히 지원하지 않을 때 Major를 올린다. Major를 올릴 때는 "반드시 강제 업데이트가 필요한 상황"인 것이다.

 

결론은 새로운 의견이 채택되었다!

그래서 우리의 커스텀 어노테이션도 다음처럼 바뀌었다.

컨트롤러는 이렇게 생겼다.

이전의 Major 버전을 표기해주는 방식은 바뀌지 않는 api도 새로운 major 버전을 표기해주어야 했는데,

이번 형태는 바뀌는 api에서만 변경이 가해지는 형태라,

결과적으로는 이전보다 컨트롤러의 변경이 줄어들것 같아서 좋아보인다!

 

변경되지 않는 api

 

변경되는 api

 

버저닝은.. 너무 어렵다