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

wnsqud70님의 프로필 이미지
wnsqud70

작성한 질문수

Readable Code: 읽기 좋은 코드를 작성하는 사고법

마무리하며

toEntity

작성

·

92

1

안녕하세요 선생님 강의 잘 보고 있습니다.

 

강의 내용과는 좀 관련이 없는 개인적인 질문인데

dto -> entity / entity ->dto 로 변환할때 선생님은 어떻게 풀어서 하시나요(mapper ,builder ..etc)? 물론 팀마다 컨벤션이 있고 뭐가 최고라고 말할 수는 없지만 정말 개인적으로 궁금해서 질문 드립니다! 감사합니다

답변 2

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, wnsqud70 님!

저는 DTO 내부에 변환 로직을 두는 편이에요.
물론 말씀하신대로 Mapper, Builder 등을 따로 둘 수도 있겠지만, 굳이 따로 두어야 할 이유가 있는 것이 아니라면 각 DTO가 필요에 맞게 Entity와의 관계를 가져가면 된다고 생각합니다.

  • DTO -> Entity : DTO가 가지고 있는 값으로 Entity를 생성하는 메서드 (toEntity())

     

  • Entity -> DTO : 외부에서 Entity를 받아 DTO를 생성하는 정적 팩터리 메서드 (of(E e))

감사합니다. 🙂

0

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

DTO와 엔티티 간의 변환에 대해 질문해 주셨네요. 이 주제는 많은 개발자들이 다양한 접근 방식을 사용하기 때문에 흥미로운 주제입니다. 보통 아래와 같은 방법들이 사용됩니다:

  1. 수동 매핑: 가장 간단하면서도 제어가 가능한 방법으로, 필요에 따라 명시적으로 코드를 작성하여 변환합니다. 간단한 프로젝트나 성능이 중요한 경우 유용합니다.

  2. Mapper 라이브러리 사용: MapStruct와 같은 라이브러리를 사용하여 DTO와 엔티티 간의 변환을 자동화합니다. 이 방법은 설정만 잘 해두면 간단히 사용 가능합니다. 특히 프로젝트 규모가 크거나, 변환 작업이 많이 필요한 경우 효과적입니다.

  3. Builder 패턴: 복잡한 객체 생성 과정이 필요한 경우에는 Builder 패턴을 사용하여 객체를 생성할 수 있습니다. 이는 특히 필드 수가 많은 경우에 유용합니다.

각 방법은 프로젝트의 요구사항에 따라 적절하게 선택될 수 있습니다. 직접 구현 시의 이점은 높은 제어와 유연성인 반면, 라이브러리를 사용하면 중복 코드 작성을 줄일 수 있고, 유지보수가 용이하다는 장점이 있습니다.

위의 방법들 중에서 본인의 프로젝트 및 팀의 상황에 맞는 최적의 방법을 선택하시길 추천드립니다. 추가적으로 궁금한 부분이 있다면 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wnsqud70님의 프로필 이미지
wnsqud70

작성한 질문수

질문하기