문제점
- 프론트 분들과 API Request와 Response 스펙을 공유하기 위해 Swagger를 도입하였으며, 해당 API에 대한 정보중 Record를 사용하는 Dto 객체 스펙을 표현하는데 있어 아무런 스펙정보를 나타내지 않는 이슈를 맞이했습니다.
Code

Swagger

원인
- record Dto 객체를 class로 변경하니 dto에 대한 스펙을 잘 표현했습니다. (getter 프로퍼티 포함)
- 결국엔 build 된 record를 분석하던 도중 getter에 대한 프로퍼티 메소드를 제공하지 않고 기본적으로 ${멤버변수}() 메소드를 getter처럼 사용하고 있어서 Swaager에서 스펙 표현을 못해주는것이 원인이라고 판단했습니다.

해결
getter property 메소드를 직접 구현함으로써 Swagger에 DTO Spec을 잘 보여줄 수 있었습니다.


자바 버전을 업하여 불변 객체를 만들기 위해 도입된 record 객체가 Swaagger로 인해 getter property를 일일히 작성하는 것은 팀원들과 상의 후 결국 도입하지 않았습니다. [@ParameterObject 를 사용하여 표현하고자 하는 부분에는 적용.]
- 전반적인 의견은 불변 객체가 더 우선순위이고 API Spec 표현 때문은 적절치 못한다고 판단되었습니다.