Skip to content
Sanghyuk Jung edited this page Jan 29, 2017 · 1 revision

Java 문법과는 별도의 XML 형식을 익혀야하는 비용도 있습니다. 위와 같은 중첩된 관계를 선언할때는 resultMap 선언이 필수적입니다. 그런 점이 불편해서 MyBatis를 쓸때는 쿼리 결과대로 펴서 아래와 같이 객체선언을 하는 경우가 많이 보입니다.

public class Product {
	private Integer id;
	private String name;
	private Integer sellerId;
	private String sellerName;
...
}

물론 API의 응답형태를 최적화하기 위해서 API 응답 전용 DTO를 의도적으로 도입하고, 위와 같이 객체를 펴서 표현할 할 수도 있습니다. 그런 과정을 자동화해주는 ModelMapper라는 라이브러리도 있습니다.

그렇지만 DAO 등에서 반환에서는 객체에 모든 연관된 테이블의 속성을 다 추가한다면 단점이 큽니다. 객체마다 중복속성이 생깁니다. 객체가 커져서 코드를 파악하기도 불편해지고, DB의 컬럼의 변경/추가 때마다 많은 객체를 수정해서 변경할 부분도 더 많아집니다.

Clone this wiki locally