현재 FreindShip은 SptringBoot3.2.1 버전을 갖고 현재 개발을 하고 있습니다.

그런데 Controller에서 RequestBody에 들어올 값을 직렬화하여 받을 DTO에 아래와 같은 이유로 올바르지 않는 값을 받고 싶지 않았습니다.

<aside> 💡 이유

그래서 RequestBody로 직렬화하여 DTO를 생성할 때 값이 의도하지 않은 양식이라면 예외 응답을 보내도록 하며, Client에게 양식에 맞게 보내라 하고 싶었습니다.

그래서 @NotNull 과 같은

Untitled

에서 제공해주는 애노테이션을 통해 입력 값에 대한 검증을 시도하는데,

내가 원하는 의도에 맞게 유효성 검사를 커스텀하고 싶어졌습니다.

그래서 DTO내부에 생성자 로직에 유효성 검사를 위한 코드를 따로 작성해봅니다.

그런데? 다른 DTO에서도 똑같은 방식의 유효성 검사하는 코드가 필요해진다면?

똑같은 코드를 작성해야하는 불상사가 일어납니다.

그래서 @NotNull 과 같은 값의 검증을 수행해주는 애노테이션을 직접 만들기로 결심했죠.

먼저 @NotNull 애노테이션을 Ctrl 키를 눌러 들어가 살펴봅시다.