WIL로 ORM 등장.
JPA를 공부하면서 ORM에 대한 내용을 처음 접해보았는데 ORM이 나오기까지의
역사를 보면서 어떻게 변화되었는지 알아보았다.
먼저 JDBC와 SQL MAPPER ORM의 공통점은 '영속성'을 가지고 있다.
데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성
영구히 저장되는 그 어떤 것을 말한다.
먼저 JDBC다.
불편한점
- 중복코드가 많다.
- 쿼리를 일일이 써야한다.
- 커넥션 관리를 계속 해야한다.
JDBC의 불편한 점을 보완하기 위해 다음과 같은 기술을 제공하기 시작했다.
Query를 Java에서 XML로
JDBC Template
데이터베이스 연결을 해야하는데,
객체지향으로 개발을 했는데, DB에 연결하자니 힘들다고 생각했지만,
결국, SQL에 의존적인 개발을 하게 됨.
"물리적으로는 SQL과 JDBC API를 데이터 접근 계층에 숨기는 데 성공했을지는 몰라도
논리적으로는 엔티티와 아주 강한 의존 관계를 가지고 있다."
패러다임의 불일치
관계형 데이터베이스에서는 객체지향과는 구현해내기 힘들어 패리다임의 불일치라는 말이 생겨났다.
그래서 ORM이 등장했다.
Java에서는 JPA 인터페이스를 Hibernate가 구현하여 사용
Spring JDBC : simple!
Entity Manager 하지말자!
DDD 아키텍쳐로 사용하자!
ORM이라고 하기엔 애매
Spring JPA:
Repository에서 제한함.
EntityManager가 수행함.