JPA
Java Persistence API , 자바 진영의 ORM 기술 표준이다.
ORM
Object-relational mapping(객체 관계 매핑)
그럼 ORM 기술인 JPA를 왜 사용하게 되었는가?
JPA의 사용 이유
현재 개발자들은 객체 지향 언어로 개발을 하고 객체를 관계형 데이터베이스에 관리를 한다.
하지만, 객체 중심 개발과 SQL 중심 개발은 동시에 이루어지기 쉽지 않다.
여러가지 문제점이 있겠지만 대표적으로
1. SQL 코드의 반복 - CRUD를 구현할 때마다 SQL코드를 계속 반복해서 사용해야 한다.
2. SQL에 대한 큰 의존성 - Table에 Column 하나를 수정, 추가하게 된다면 수많은 SQL 코드를 바꿔야 한다.
3. 패러다임의 불일치 - 객체를 관계형 데이터베이스에 저장하는 과정에서 상속, 연관관계, 데이터 타입, 데이터 식별 방법이 다르다.
-> 객체를 객체답게 모델링할수록 SQL 매핑 작업이 더욱 힘들어지는 상황이 발생하게 된다.
객체를 자바 컬렉션에 저장하는것처럼 DB에도 저장할 수 있다면 이런 힘든 일은 없을텐데..
-> JPA가 이 모든 것을 해결해 주었다.
JPA 동작 과정

전에 JDBC 포스트에서 CRUD를 구현하기 위해 하였던
- JDBC API 호출,
- 상황에 맞는 SQL문 구현,
- DB와의 매핑
모두 JPA가 해준다!
JPA 전과 후
우리는 JPA를 통해
1. SQL의 의존을 벗어난 객체 중심 개발
2. SQL 반복을 피함으로서 생산성 증가
3. 유지보수 효율 증가
4. 패러다임의 불일치 해결
5. 트랜잭션을 지원하는 쓰기 지연, 지연 로딩으로 인한 성능 증가
6. 데이터 접근 추상화와 벤더 독립성
7. 기술 표준이 주는 편리함
이러한 장점들을 얻게 되었다.
'Back-end > Java&Spring' 카테고리의 다른 글
Spring JPA (3) - 매핑 (0) | 2024.09.29 |
---|---|
Spring JPA (2) - JPA 동작 과정 (4) | 2024.09.24 |
Spring JDBC (4) - 예외 처리 (2) | 2024.09.12 |
Spring JDBC (3) - 트랜잭션 (0) | 2024.09.11 |
Spring JDBC (2) - 커넥션 풀과 데이터 소스 (0) | 2024.09.11 |