[REST API] 행위마다 목적에 맞는 DTO를 만들자

김선호·2023년 1월 7일
0

관련 코드 리뷰 링크

게시글을 조회하는 API를 구현할 때, Response DTO로 게시글의 식별자/제목/내용을 필드로 갖는 DTO인 PostResponse 를 사용했다. 다만, 단건 조회와 다건 조회 모두 같은 DTO를 사용하는 것이 문제였다(물론 다건 조회의 경우 복수의 PostResponse 를 응답으로 내려준다).

단건 게시글을 조회 요청의 경우, 정말 해당 게시글의 식별자/제목/내용 등 해당 게시글에 대한 자세한 정보를 얻기 위한 API 이다. 이 경우 PostResponse 를 반환하는 것은 문제되지 않는다.

다건 게시글을 조회 요청의 경우는 각 게시글에 대한 모든 정보가 필요한 것이 아니라 어떤 게시글 데이터가 존재하는지를 확인하는 요청이다. 즉 List<PostResponse> 형태로 응답을 내려주면 사용되지 않을, 불필요한 정보까지 내려주게 되는 것이다.

따라서 나는 게시글의 식별자와 제목만을 필드로 갖는 SimplePostResponse 객체를 만들고, 다건 조회 시 List<SimplePostResponse> 를 응답으로 내려주도록 수정했다.

행위마다 목적에 맞는 DTO를 만들자. 다른 행위에 같은 DTO를 사용하는 것은 주의 깊게 살펴야 한다.

profile
Every Run, Learn Counts.

0개의 댓글