728x90
JPA
자바 진영의 ORM 기술 표준 프레임워크
애플리케이션과 JDBC 사이에서 동작
애플리케이션을 SQL 중심이 아닌 객체 중심으로 개발할 수 있게 도와줌
대표적인 JPA의 구현체는 하이버네이트가 있음
ORM
Object - Relational Mapping
객체와 관계형 데이터베이스 간의 차이를 중간에서 해결해주는 프레임워크
객체와 관계형 데이터베이스를 매핑한다는 뜻
직접적인 SQL 사용의 단점
- 데이터베이스는 데이터 중심의 구조를 가지기 때문에 객체 구조와는 다름
- 구조가 다르기 때문에 객체를 데이터베이스에 직접적으로 저장 및 조회 불가능
- 개발자가 직접 변환 작업을 해줘야 함
- 위와 같은 작업을 위해서 반복적으로 작성해야 할 코드가 너무 많음
- SQL 중심의 개발로 인해 코드의 수정이 필요한 경우 변경해야 할 코드가 많음
- 객체와 엔티티가 강한 의존 관계를 가지고 있음 (엔티티를 신뢰할 수 없음)
- 같은 로우를 조회할 때마다 같은 인스턴스를 반환하도록 구현하기 쉽지 않음
JPA 사용의 장점
- SQL 중심의 개발이 아닌 JPA API를 사용하여 개발
- 매핑 정보를 바탕으로 메서드 호출로만 적절한 SQL문을 수행해줌
- 객체의 저장, 조회, 수정 등도 간단하게 가능
- 객체와 데이터베이스 간의 구조 불일치를 중간에서 처리해 줌(패러다임 불일치)
- 즉, 데이터베이스 구조에는 없는 자바의 상속, 참조 같은 객체지향 개념을 자동으로 처리해준다는 것
- 연관된 객체를 사용하는 시점에 적절한 SQL문을 사용하여 연관된 객체를 신뢰할 수 있음
- 같은 트랜잭션인 경우 같은 객체가 조회되도록 보장
- 반복적인 코드와 SQL문을 개발자가 직접 작성할 필요가 없어 생산성을 향상 시킴
- SQL과 JDBC와의 의존성이 떨어져 유지보수가 편함
- 애플리케이션과 DB 사이에서 동작하여 성능 최적화 기회가 있음
- 마찬가지로 사이에서 추상화된 데이터 접근 계층을 통해 사용하는 DB가 바껴도 DB만 변경하면 됨
- 즉, 특정 DB 기술에 종속되지 않음
더 알아보면 좋은 내용
MyBatis
Spring JdbcTemplate
Hibernate
JDBC
'Back-End > JPA' 카테고리의 다른 글
엔티티 매핑 : 학습을 위한 스키마 자동 생성하기 (0) | 2023.06.19 |
---|---|
엔티티 매핑 : 매핑 어노테이션 (0) | 2023.06.19 |
영속성과 엔티티 (0) | 2023.06.01 |
JPA 시작하기 (0) | 2023.06.01 |
엔티티 매핑 기본 (0) | 2023.05.31 |