Spring Boot 2.x + Spring Rest Docs 지원

nayu1105·2023년 10월 23일

Spring Boot 2.x 지원 종료

최근 면접을 보러가며 Java 버전에 대해 물어보는 질문을 많이 들었다.

자바 버전을 찾아보다가 Spring Boot가 이제 2.x 는 2023년 11월 말부터 지원을 종료한다는 것을 알아냈다.

Spring Boot 지원 일자 확인하러가기

Spring Boot 2.x 가 모두 지원 종료되면 기존에 프로젝트를 진행했던 회사들은 3.x로 모두 버전을 옮겨야 했다.

Spring boot 3.x 는 Java 최소 버전이 17이다.

그래서 면접때마다 Java 몇 버전을 사용해보았는지 물어보았던 것이다.

Spring Rest Docs 지원 종료

Spring Rest Docs는 테스트 코드를 통해 API 문서 자동화 도구이다.

위와 같이 API 문서를 아주 깔끔하게 정리할 수 있다.

Swagger와 비교하여 Spring Rest Docs는 프로덕션 코드에 영향이 없어, 프로덕션 코드가 어노테이션이 덕지덕지 붙어 지저분해지는 것을 방지할 수 있다.

구분Spring Rest DocsSwagger
장점프로덕션 코드에 영향이 없다.
테스트 코드 작성이 의무화가 된다.
문서상에 API를 테스트 할 수 있다.
적용하기 쉽다.
단점테스트 코드 작성해야 하기에 적용이 어렵다.
문서를 위한 테스트 코드를 관리해야 한다.
테스크 코드가 필요 없다.
프로덕션 코드에 어노테이션을 추가한다.
프로덕션 코드가 지저분해진다.

특히, 요즘에 TDD가 유행하며 테스트 코드의 작성이 중요해졌고,
내가 만나 개발자들도 Swagger 때문에 Controller하나에 어마무시한 어노테이션들이 추가되는 것을 싫어했고, Spring Rest Docs를 더 선호하였다.

Swagger 코드 예

    @ApiOperation(
        value = "자격증 정보 조회"
        , notes = "자격증의 ID를 통해 자격증의 정보를 조회한다.")
    @ApiImplicitParams(
        {
            @ApiImplicitParam(
                name = "id"
                , value = "자격증 아이디"
                , required = true
                , dataType = "string"
                , paramType = "path"
                , defaultValue = "None"
            )
        ,
            @ApiImplicitParam(
                name = "fields"
                , value = "응답 필드 종류"
                , required = false
                , dataType = "string"
                , paramType = "query"
                , defaultValue = ""
            )
        })
    @GetMapping("/licenses/{id}")
    @ResponseBody
    public UserDTO getLicense(@PathVariable(name = "id") String id, @RequestParam(name = "fields", required = false) String fields) {
        return userService.findUserInfoById(id);
    }

그러나 Spring Rest Docs는 2023년 11월 말 부로 지원이 종료된다.

다음 버전 출시가 예정되었더라면 표시가 되었을 텐데,,...

한달 남은 지금 아직 아무 이야기 없는 걸보면 유료버전만 2025년까지 지원하고, 이제는 Depreacated 되는 것 같다.

모놀로식 아키텍쳐야 Swagger를 사용하면 되겠지만, 마이크로 아키텍쳐는 Spring Rest Docs + Swagger로 API 문서를 자동화하던데 이제 다른 도구가 필요해 보인다.

어떤 새로운 도구가 등장하려나...?

2023-12-06 수정

오늘 들어가보니, Rest Docs 지원 일자가 1년 추가 되었다.

다른 rest docs 지원을 알아봐야 했는데, 버전 업이 안됐을 뿐 여전히 spring rest docs를 지원하는 것 같다.
아마 2.0.x 에서 3.0.x까지 5년정도 걸렸으니 앞으로 한 2~3년은 더 쓰지 않을까..? 하고 추측해본다.


참고한 사이트

Spring Rest Docs

Swagger UI

Spring Rest Docs vs Swqgger UI


0개의 댓글