[Spring]Entity - DTO 변환

김의진·2021년 8월 24일
0

데이터베이스와 매핑되어 있는 Entity 클래스를 Request, Response용도로 모두 사용해도 괜찮을까? Request값을 받는 용도로 사용하면, API별로 불필요한 파라미터가 존재하여 클라이언트, 서버개발 모두에서 불편함이 존재할테고, Response 용도로 사용하게 되면 클라이언트로 넘기지 말아야 할 값들까지 모두 Return 시키는 결과가 나올 수 있다. 물론 Response 값 자체가 지저분해지는 건 덤이고..

Entity가 Database - Server 간의 매핑관계를 가진 클래스라면 Client - Server와의 관계에서는 DTO를 만들어서 사용하면 위에서 고민한 부분이 해결된다. 클래스가 늘어나겠지만

여기서 한가지 고민이 추가된다.
그럼 데이터베이스의 값을 담은 Entity를 Respose 용도의 DTO로 변환을 어떻게 해야할가?
필요한 필드마다 전부 Set을 해줘야하는건가?

        // fixme 흠..
        shopInfoVO.setCompany(partner.getCompany());
        shopInfoVO.setLicense(partner.getSalesLicense());
        shopInfoVO.setAddress(partner.getAddress());
        shopInfoVO.setAddressExtra(partner.getExtraAddress());
        shopInfoVO.setAddressRemain(partner.getRemainAddress());
        shopInfoVO.setZipCode(partner.getZipCode());
        shopInfoVO.setContact(partner.getContact());
        shopInfoVO.setHomepage(partner.getHomepage());
        shopInfoVO.setDesc(partner.getShopDesc());
        shopInfoVO.setThumb(partner.getThumb());
        shopInfoVO.setScene(partner.getScene());

이런 고민은 이미 많은 사람들이 해두었다.

  1. ModelMapper 라이브러리를 사용
  2. Build 패턴을 사용하여 Entity - DTO 간 매핑

우선 당분간은 첫번째 방식을 사용해보자..
내가 한 고민은 누군가 충분히 고민하고 답을 내렸을 가능성이 높다는 것도 같이 알게됐다.

profile
3년차 Spring, Java 주니어 백엔드 개발자입니다.

0개의 댓글