더북(TheBook)

우리는 Offering 엔터티를 기반으로 OfferingSummary를 만들기만 하면 된다. 문제는 이 코드를 어디에 둘 것인가다. 개발자들이 이 코드를 다양한 위치에 배치하는 것을 봤지만, 다음 두 곳이 가장 적절하다.

Offering 엔터티 내부에 OfferingSummary toSummary() 메서드를 만든다. 이렇게 하면 변환 로직을 엔터티 내부에 유지할 수 있다.

OfferingSummary 클래스에 정적 메서드로 OfferingSummary convert(Offering offering)을 만든다. 이렇게 하면 변환 로직이 데이터 구조 가까운 곳에 위치하고, 엔터티는 이 데이터 구조의 존재를 알 필요가 없게 된다.

나는 두 번째 옵션을 선호한다. 도메인 엔터티가 클라이언트의 요구를 모르는 쪽을 더 좋아하기 때문이다. 하지만 첫 번째 옵션도 괜찮으며, 복잡한 유지보수 문제를 야기하지는 않을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.