Everyday Dev System

스프링 부트 버전에 따른 Swagger 활용 차이 본문

내배캠 주요 학습/TIL : Today I Learned

스프링 부트 버전에 따른 Swagger 활용 차이

chaeyoung- 2023. 8. 17. 16:59

 

SpringFox 및 Spring Boot 버전의 컨텍스트에서

@EnableSwagger2 및 @EnableSwagger2WebMvc 주석에 차이가 있습니다.



@EnableSwagger2:
SpringFox 버전 2.x 및 이전 버전에서 사용됩니다.
Spring Boot와 Swagger 2 통합을 가능하게 합니다.
최신 버전의 Spring Boot, 특히 Spring Boot 2.5 이상에는 최선의 선택이 아닐 수 있습니다.


@EnableSwagger2WebMvc:
Spring Boot 2.5+와의 더 나은 호환성을 제공하기 위해 SpringFox 버전 3.x에서 도입되었습니다.
Spring Boot의 WebMvc 구성과 잘 작동하도록 특별히 설계되었습니다.
최신 Spring Boot 버전(2.5 이상)에 더 적합합니다.


Spring Boot 2.5 이상에서는 호환성 및 기능 향상을 위해 @EnableSwagger2 대신 @EnableSwagger2WebMvc를 사용하는 것이 좋습니다. 그러나 마지막 업데이트 이후 변경되거나 발전했을 수 있으므로 항상 SpringFox 및 Spring Boot의 공식 문서를 참조하는 것이 좋습니다. 종속성, 주석 및 구성이 사용 중인 Spring Boot 버전과 일치하는지 항상 확인하세요.

 

 

SpringFox VS SpringDocs

Springfox와 Springdoc 사이에는 차이가 있습니다. 둘 다 Swagger를 API 설명서용 Spring Boot 애플리케이션과 통합하는 데 사용되는 라이브러리입니다.

SpringFox 

Springfox는 Swagger를 Spring Boot와 통합하기 위한 가장 인기 있는 라이브러리 중 하나입니다.
API 문서를 사용자 지정하는 데 사용할 수 있는 @Api, @ApiOperation 및 @ApiParam과 같은 주석을 제공합니다.
Springfox는 오랫동안 널리 사용되어 왔으며 많은 사용자 기반을 가지고 있습니다.
구성에는 Swagger 통합을 활성화하기 위해 @EnableSwagger2(또는 최신 버전의 경우 @EnableSwagger2WebMvc)와 같은 주석을 사용하는 것이 포함됩니다.

 

SpringDocs

Springdoc는 Swagger를 Spring Boot 애플리케이션과 통합하는 또 다른 라이브러리입니다.
Springfox에 대한 보다 가볍고 유연한 대안을 제공하는 것을 목표로 합니다.
Springdoc은 Swagger 사양의 최신 버전인 OpenAPI 3 사양(Swagger 3)을 활용합니다.
OpenAPI 3 규격을 따르는 @io.swagger.v3.oas.annotations 패키지 주석(@Operation, @Parameter 등)과 같은 주석을 제공합니다.
Springdoc는 또한 Spring Boot에 대한 자동 구성을 제공하여 명시적인 설정의 필요성을 줄입니다.
두 라이브러리 모두 강점과 차이점이 있습니다. Springfox는 더 많은 역사를 가지고 있으며 더 많은 기능과 커뮤니티 지원을 제공할 수 있습니다. 반면에 Springdoc은 더 가벼운 것을 목표로 하며 최신 OpenAPI 3 사양을 따릅니다.

이들 중에서 선택할 때 프로젝트 요구 사항, 사용하려는 Swagger 사양 버전, 구성 용이성 및 라이브러리에 대한 친숙도와 같은 요소를 고려하십시오. 가장 정확한 최신 정보는 두 라이브러리의 공식 문서를 참조하십시오.