작성
·
52
·
수정됨
0
안녕하세요!
엔티티와 dto에 대해 궁금한점이 생겨 질문드립니다!
강의를보면 엔티티에 연관관계메서드와 로직 등 관련된 메서드를 작성하셨는데요
그리고 엔티티는 외부에 노출되면 안된다라고 언급하셨는데
그렇다면 엔티티를 직접쓰는게아닌 DTO를 따로 작성해서 사용하는건가요?
(1번의 질문이 맞는질문이라면)
그럼 엔티티에 10개의 필드들이 있고, 각각 조회용으로 6개의 필드, 수정용으로 8개의 필드가 필요하다고 가정하면 DTO를 조회용과 수정용 두개를 만들어야할까요?
이건 좀 번외인거같긴하지만.... 지금까지 공부하면서 엔티티에 빌더패턴을 적용해왔는데요. 외부에 엔티티가 노출되지않으려면 DTO를 써야하고, 그렇다면 엔티티에 빌더패턴을 써야하는게아니라 DTO에 빌더패턴을 써야하는걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 포닥님.
엔티티와 DTO에 대한 질문을 주셨네요. 올바른 구조 설계는 실무에서도 지속적으로 고민해야 하는 부분입니다. 질문해주신 내용에 대해 간단히 답변드릴게요.
엔티티(Entity)는 주로 비즈니스 로직을 포함하고 데이터베이스와의 매핑을 관리합니다. 반면에 DTO는 데이터를 단순히 전달하기 위한 용도로 사용되며, 엔티티의 외부 노출을 피하기 위해 API 응답 및 요청에서 자주 사용됩니다.
따라서 엔티티를 직접 노출하는 대신, 필요한 데이터를 담은 DTO를 만들어 사용하면 안전합니다.
엔티티의 필드 구성에 따라 필요한 데이터의 용도 (예: 조회, 수정)에 맞추어 여러 개의 DTO를 생성할 수 있습니다.
이렇게 목적에 따라 DTO를 나누어 사용하면 관리 및 유지보수에 유리합니다.
빌더 패턴은 객체 생성의 유연성과 가독성을 높이기 위해 사용됩니다. 주로 엔티티보다는 데이터를 주고받기 위해 사용하는 DTO에 적용하는 것이 일반적입니다. 이유는 DTO는 외부에 노출되기 때문에 객체를 다양한 형태로 안전하게 생성하고 변형할 수 있는 방법이 중요하기 때문입니다.
관련 논의된 질문을 참고해보시면 추가적으로 도움이 될 것입니다:
- Entity, dto관련 질문
- Dto 관련 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.