DTO 그리고 MVC

어겐어갠·2022년 4월 16일
0

DTO(Data Transfer Object)
계층간 데이터 교환을 위해 사용하는 객체(Java Beans)

DTO는 어디까지 들어와야하나?
1. Presentation 계층에서 VO로 변환되어 Service계층으로?
2. 아니면 Service계층까지 DTO가 들어온 뒤 변환되어야하나?

에 대한 고민을 해보았다.

결론적으로 DTO의 변환 로직은 Controller에서 하는 것이 맞다는 생각이 들었다.(이걸 이제 물어봐야겠지..)

그 근거로는
1. DDD적 관점에서 Service는 Domain Layer이고 최대한 변화가 없게 설계하는 것이 중요하다고 생각한다.
그래야만 Applicatino Layer나 Infrastructure Layer에서의 재사용성이 높아지는데 DTO의 진입을 허용하게 된다면 이를 해칠 수 있기 때문이다.
2. 1번의 재사용성을 높이기 위해서 Service는 얇게 구성하는 것이 좋을것 같아 변환 로직을 배제한다.
2. Serive와 DAO를 1:1로 매핑하고 싶었다.

이에 대한 참고자료들(이 주제에 대한 다양한 의견이 있는 것 같다.)

https://umbum.dev/1066
https://velog.io/@sumusb/Spring-Service-Layer에-대한-고찰
https://choibulldog.tistory.com/52
https://xlffm3.github.io/spring%20&%20spring%20boot/DTOLayer/
https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/

profile
음그래

0개의 댓글