DTO 고찰

0

Kotlin

목록 보기
14/32
  • 외부 API로부터 데이터를 받을 DTO객체에는 모든 필드를 nullable 하게 만들어야 한다. 이유는 외부 API가 특정 필드에 대한 값을 내려주지 않는 상황에서도 예외가 발생하지 않아야 하기 때문이다 (예외가 발생한다면 외부 API에 대한 의존도가 너무 높아져버리기 때문).

  • 코틀린에서는 변수 선언할 때 nullable한 type으로 선언할 수 있습니다. 코틀린으로 Validation 적용하려면 (특히 NotNull 적용시) nullable type으로 선언해야 합니다.

  • 더군다나 필드가 Long, Int 같은 primitive type과 관련있는 타입에 대해서는 확정형 입력시 @RequestBody 형태로 받아 올 때 해당 필드에 대해 입력을 하지 않아도 default value로 설정됩니다. (Long -> 0L)

  • 코틀린에서 Long, Int와 같은 타입은 primitive type과 wrapper class type 둘 다 포함하고 있습니다.
    그래서 nullable 하지 않은 확정형으로 클래스 필드로 선언하면 primitive type이 되어 해당 필드에 대해 데이터를 입력하지 않아도 default value로 컴파일러가 지정해줍니다. 이렇게 되면 NotNull Validation을 설정해도 제대로 동작하지 않는 사태가 벌어지게 됩니다.

    • 그래서 Validation 적용할 때는 맴버 필드를 nullable type으로 선언하는 것이 좋습니다.

출처

profile
백엔드를 공부하고 있습니다.

0개의 댓글