• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

DTO에 @Getter가 필요한 이유

22.09.09 17:10 작성 조회수 684

2

OrderDto, OrderItemDto 같은 DTO에 @Getter 가 필요한 이유가 궁금합니다.

또, 요청을 받는 DTO는 요청 받을 필드만 선언하면 되고, 응답용 DTO는 응답하고 싶은 필드만 정의 하여 생성자를 만들면 되는지 궁금합니다.

답변 1

답변을 작성해보세요.

2

y2gcoder님의 프로필

y2gcoder

2022.09.09

안녕하세요. tksrleo123님, 공식 서포터즈 y2gcoder입니다.

  1. DTO에 보시면 멤버 변수들이 모두 private으로 선언되어있습니다. 그래서 외부에서 해당 값에 접근하기 위해 getter를 사용해주고 있습니다.

  2. DTO는 문자 그대로 데이터를 전달하는 용도로 사용하는 객체이기 때문에, 말씀하신 것처럼 요청 받을 필드, 응답하고 싶은 필드만 정의해서 사용하는 것이 좋습니다. 오히려 그러기 위해 DTO를 사용하고 있습니다.


감사합니다.

tksrleo123님의 프로필

tksrleo123

질문자

2022.09.09

답변 감사합니다.

1번 에 대해 질문 드립니다.

OrderApiController 의 경우 OrderDto, OrderItemDto 의 Getter 가 사용된 적 없는 것 같은데 어디서 쓰이는 지 알 수 있을까요?

y2gcoder님의 프로필

y2gcoder

2022.09.09

스프링 부트는 Jackson 라이브러리를 사용하고 있습니다. 이를 통해 json 데이터들을 직렬화 / 역직렬화 하고 있습니다.

여기서 getter는 직렬화할 때 getter를 사용합니다. 즉 DTO들을 JSON 데이터로 다시 가공할 때 getter를 사용한다고 이해해주시면 감사하겠습니다 :)

tksrleo123님의 프로필

tksrleo123

질문자

2022.09.09

감사합니다!!