DTO는 무수히 만들어질 수 있다.
처음에 스프링을 배울 때 Controller, DAO, DTO, Service 로만 배웠다. 이 중에 DTO에 관련된 부분에서 Entity나 VO라는 개념 없이 DTO로만 배워서 DTO로 다 하는 줄 알았는데 역시나 스프링의 세계는 심오하고도 깊었다. 논리적인 분리이지만 쉽게 얘기하면 DB에 Insert, update 할 때 쓰이는 Entity 사용자단에서 보이는 데이터를 뿌리는 용도의 DTO VO 불변이라지만 사실상 개념의 차이인듯 하다 Mybatis를 이용해서 두 테이블을 JOIN해서 resultType으로 두가지 DTO를 받고 싶을 때 resultMap을 이용하는 방법도 있지만 그때그때 페이지에 보여줄 DTO를 계속 만들어주는 것이 보안적으로도 좋고 쿼리를 짜기에도 좋고 훨씬 생산적이라고 생각한다.
Comment