작성
·
621
0
제가 지금 포폴용으로 프로젝트를 하고있는데 배포 후 업데이트를 하지 않을 생각이어도 버전관리가 꼭 필요한가요?
그리고 버전이라는 것은 업데이트 되는 것을 말한다고 생각했는데, 왜 같은 controller안에 v1과 v2 두 가지 버전이 존재하는지 그리고 왜 도메인의 entitiy가 다른지 것인지 이해가안됩니다.
답변 1
6
안녕하세요, 이도원입니다.
RESTful API를 설계하실 때에는 반드시라고 해도 좋을 만큼 RESTful API Maturity Model(https://restfulapi.net/richardson-maturity-model/)에 대해서 읽어보시고, 학습하신 다음에 개발해 보시기를 권장합니다. 단순하게 API를 선언하는 것 뿐만아니라, 리소스의 목적과 연계된 작업에 대해서도 RESTful API 설계에 포함할 수 있습니다.
버전 관리는 말씀하신 것처럼 애플리케이션의 업데이트에서도 필요하지만, 리소스를 제공하려는 API에서도 필요합니다. 예를 들어, 사용자 목록 가져오기라는 API를 /users 라고 선언하여 사용중이라고 가정해 봅시다. 어떤 시점에 비즈니스 로직의 변경에 따라 사용자의 birthday도 포함하여 전달하기로 결정하고 API의 업데이트가 필요하였다고 가정하면, 이전 버전의 API 및 새로운 버전의 API를 같이 제공하는 것이 고객에게 오류를 덜 발생하면서 새로운 기능을 제공할 수 있는 방법이 될 수 있을 것입니다. 따라서, API를 설계할 때는 /v1/users, /v2/users와 같이 버전에 대한 소개와 어떤 기능이 업데이트 되었는지를 같이 가이드 해주는 것이 좋을 것입니다. 카카오 API나 구글 API를 사용해 보신 적이 있다면, API Documentation을 반드시 확인해 보셨을텐데, 해당 문서에서는 먼저 사용하시려는 버전을 확인하고 나서, 사용 방법을 확인해 보셔야 합니다. 이렇듯인 버전 관리는 애플리케이션의 소스 코드 뿐만 아니라, 제공하려는 서비스의 리소스에 대해서도 관리해 주는 것이 좋습니다.
감사합니다.