강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Wind Thomas님의 프로필 이미지
Wind Thomas

작성한 질문수

도메인 설계 질문드립니다.

작성

·

49

0

도메인 설계 질문드립니다.

  1. 레포지토리 계층

    1. 에서 항상 엔티티와 매핑되는 정보를 조회하는게 아니라 그룹함수를 사용해 데이터를 뽑을 수 있잖아요. 결과를 담는 VO 객체를 별도로 만들어야 할까요? 아니면 DTO를 만들어야 하나요

    2. 파라미터가 5개 이상 될 수 도있는데, 파라미터도 VO나 DTO를 따로 만들어야 하나요? 만들어야 한다면 VO로 해야하나요 DTO로 해야하나요

       

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Wind Thomas님, 도메인 설계에 대한 질문에 답변 드리겠습니다.

  1. 레포지토리 계층에서 그룹함수를 사용해 데이터를 추출할 때는, 결과값을 담기 위한 객체가 필요할 수 있습니다. 이때, 데이터를 단순히 전달하기 위한 목적이라면 DTO(Data Transfer Object)를 만드는 것이 적절합니다. DTO는 주로 데이터를 외부로 주고 받는 용도로 사용되며, 특정 요구사항에 맞춰 데이터를 가공해서 전달할 때 유리합니다. VO(Value Object)는 데이터의 불변성을 보장하고 비즈니스 로직을 포함할 수 있기 때문에, 결과를 단순히 전달하기 위한 목적에서는 DTO를 사용하는 것이 맞습니다.

  2. 파라미터가 5개 이상일 경우에는, 가독성과 유지보수를 위해 하나의 객체로 묶는 것이 좋습니다. 이 경우에도 단순한 데이터 전송을 목적으로 한다면 DTO를 사용하는 것이 일반적입니다. DTO는 계층 간 데이터를 옮길 때 사용되므로, 다양한 레이어에서 활용 가능합니다. VO는 주로 비즈니스 로직이 적용된 값 객체를 의미하므로, 전달이나 저장 목적으로는 DTO를 사용하는 것이 더 적절합니다.

Spring Data에서의 레포지토리 관련 문서와 그룹 함수 및 쿼리에 대한 정보는 아래 링크를 참조하실 수 있습니다:
Spring Data Repository Documentation

추가적으로 궁금하신 점이 있거나 도움이 필요하시면 언제든지 말씀해 주세요!

Wind Thomas님의 프로필 이미지
Wind Thomas

작성한 질문수

질문하기