Restful한 웹 서비스를 만들 때 API 문서를 자동으로 만들어주고, API를 직접 테스트할 수 있는 UI를 제공해준다.
OpenAPI Specification(REST API에 대한 API 설명 형식으로 직저 소스 코드나 문서를 보지 않고도 이해할 수 있도록 시각화하기 위한 인터페이스 파일의 사양을 말함.)을 기반으로 구축된 오픈 소스이다.
대표적인 라이브러리로는 Springfox Swagger, Springdoc이 존재한다.
Springfox Swagger는 Spring 프레임워크를 사용하는 프로젝트에서 Swagger를 이용해 API 문서를 쉽게 사용할 수 있게 도와주는 라이브러리
Springfox Swagger의 경우 3.00버전을 마지막으로 업데이트가 중단되었다. (Maven Repository 기준 2020년 7월 마지막 업테이트)
Springdoc또한 Springfox Swagger와 같이 스프링 프레임워크로 개발하는 프로젝트의 Swagger문서를 쉽게 작성할 수 있도록 도와주는 라이브러리이며, webflux라는 방식의 웹 개발을 지원하도록 개발되었다.
Springdoc의 경우, yml파일 설정을 통해 그룹 간 API정렬이 가능하다.(가나다순, abc순 모두 가능하다.)
나는 Springdoc을 프로젝트에 사용하기로 했다.
Springfox Swagger의 경우 2020년 7월에 업데이트를 한 이후, 후속 업데이트가 되지 않아 이후 나온 기능들에 대응이 안되는 경우가 종종 생긴다.
또한 그룹간 API 정렬이 가능하다.
https://velog.io/@suzhanlee/Swagger-GroupedOpenApi-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95
위의 글을 보면 그룹간 API가 무엇인지 알 수 있다.
결국 OpenApi를 문서화하기 위해 Swagger를 사용하였고,
Swagger3를 편리하게 사용하기 위해 Springdoc을 사용했다.