SQL과 자바 메인 로직간의 분리 -> 관심사 분리 방법으로는 게이트웨이, 매퍼가 있다. 게이트웨이 방법은 행데이터게이트웨이, 레코드 집합 게이트 웨이 이렇게 2개가 존재한다. 행데이터 게이트웨이는 객체지향 방식과 꽤나 잘 어울린다. 하지만 도메인 논리가 복잡해져감에 따라 객체가 세분화되는데 이 과정에서 객체와 관계가 매핑이 되지 못한다. 레코드 집합 게이트웨이는 테이블을 객체화 시킨 것이다. 범용적으로 사용이 가능하다.
막대한 객체 그래프를 피하기 위해서는 레이지 로딩을 써라.
디비 - 상속구조 -> 슈퍼타입 서브타입
성능이 좋지만 타입이 많아지는 경우 불필요한 컬럼들이 많아짐
확장성은 좋으나 하나의 로우를 가지고 오기 위해서도 조인을 해야함
확장성, 성능이 좋으나 슈퍼 서브타입을 제대로 활용하기가 힘듬.
select 시에 select * 를 사용하지말자 -> 깨질 확률이 높다.