Spring boot에서 API Docs를 만들기 위해 많이 사용하는 Swagger를 이용해서 이런저런 시도를 해보고 있다. 구글링으로 나온 자료들을 따라해보고 막히면 삽질도 해보고 하던 도중 개념을 확실하게 짚어야 할 부분이 있어서 기록한다.
나와 같은 경우에는 Springfox Swagger를 사용하다가, 지원되지 않는 부분(그룹핑, 정렬)에 한계를 느껴 현재 Springdoc으로 넘어온 상태다. 막히는 부분을 검색할 때도 Springdoc에 대한 정보가 상대적으로 더 많게 느껴졌다.
2011년에 처음 나왔다.
RESTFul 웹 서비스를 만들 때 API 문서를 자동으로 만들어주고, 직접 테스트할 수 있는 UI를 제공한다.
공식 홈페이지
Swagger UI
Spring framework를 사용하는 프로젝트에서 Swagger를 이용할 수 있게 도와주는 라이브러리

mvnrepository 기준 2015년에 처음 나와 2020년 7월에 3.0.0 버전을 마지막으로 업데이트 되고 있지 않다.
2018년까지 많은 사용자가 사용한 것으로 보이나 2018년 6월을 기점으로 업데이트가 2년 간 중단되었다.
Springfox Swagger와 마찬가지로 Swagger를 이용할 수 있게 도와주는 라이브러리
Springfox가 업데이트를 중단한 사이(2019년 7월)에 처음 나왔다.

mvnrepository 기준 비교적 최근인 2022년 5월까지 업데이트되었다.
여기서부터는 내가 직접 사용하고 느꼈던 차이점이다.
(Springfox를 얕게 사용하고 Springdoc으로 넘어간 나는 어느 쪽이 훨씬 낫다!고 체감한 건 사실 많이 없다.)
Springdoc에서는 클래스단위로 @Tag 어노테이션을 사용해서 그룹핑할 수 있는데, Springfox에서는 클래스뿐만 아니라 메소드 단위로도 같은 어노테이션을 넣어줘야해서 별 거 아니지만 중복되는 코드 양이 많았다.Springfox에서는 api 간 정렬이 되지 않는다.Springdoc에서는 properties 파일을 이용해서 그룹 간, api 간 정렬이 가능하다. (abc순, method순)