01장. JPA 소개
JAVA로 관계형 데이터베이스를 데이터 저장소로 사용하면서, JDBC API를 사용하게 되었다.
더 나아가 MyBatis나 JdbcTemplate 같은 SQL 매퍼를 사용하면서 JDBC API의 사용 코드를 줄일 수 있게 되었다.
하지만, 매퍼를 사용해도 CRUD용 SQL은 반복해서 작성해야 해서 비생산적이였으며, 객체 모델은 점점 데이터 중심의 모델로 변해갔다.
그래서 객체와 관계형 데이터베이스 간의 차이를 중간에서 해결해주는 ORM 프레임워크가 생겼다.
지루하고 반복적인 CRUD SQL또한 알아서 처리가 되었다. 성능의 걱정은 JPA가 제공하는 네이티브 SQL 기능을 사용해서 직접 SQL을 작성할 수도 있었고, 데이터베이스 쿼리 힌트도 사용할 수 있었다.
데이터베이스를 변경하여도 코드의 수정은 거의 없었다.
📌 01. SQL을 직접 다룰 때 발생하는 문제점
진정한 의미의 계층 분할이 어렵다.
엔티티를 신뢰할 수 없다.
SQL에 의존적인 개발을 피하기 어렵다.
📌 02. 패러다임의 불일치
객체 모델과 관계형 데이터베이스 모델은 지향하는 패러다임이 서로 다르다.
JPA는 패러다임의 불일치 문제를 해결해주고 정교한 객체 모델링을 유지하게 도와준다.
📌 03. JPA란 무엇인가?
JPA는 자바 ORM 기술에 대한 API 표준 명세이다.
대중적으로 Java ORM으로는 하이버네이트를 사한다.
생산성, 유지보수, 패러다임의 불일치 해결, 성능, 벤더(데이터베이스) 독립성의 이유로 사용된다.
#Women-in-Spring
#2024-11-완독-자바-orm-표준-jpa-프로그래밍