반응형
JPA: 자바 표준의 ORM
JPA는 자바 표준의 ORM으로 객체 지향 프로그래밍과 관계형 데이터베이스 간의 간극을 줄이기 위한 기술입니다.
프로그래밍 언어(Java)는 객체지향 언어이고, SQL은 객체지향이 아니기 때문에 객체를 RDB에 저장할 때 개념적으로 불일치가 발생합니다. ORM(Object-Relation Mapping)을 통해 개발자가 클래스를 작성하면 테이블 간의 매핑을 통해 객체를 데이터베이스에 저장하고 조회할 수 있고, 객체 지향적인 방식으로 데이터베이스를 조작할 수가 있습니다. 이를 통해 객체와 데이터베이스 간의 변환 작업도 최소화되며 개발자는 비즈니스 로직에 집중할 수 있게 됩니다. JPA(Java Persistence API)는 ORM의 핵심 원칙을 구현한 Java 표준입니다.
자바 클래스와 데이터베이스 테이블 간의 매핑을 자동화하여 개발자가 SQL 쿼리를 직접 작성하지 않아도 됩니다. 그럼 어떤 구조, 원리로 JPA를 이용하여 데이터베이스에 접근할지 의문이 생길겁니다. JPA는 위 이미지와같이 어플리케이션과 JDBC 사이에서 동작합니다. 개발자가 직접 JDBC API를 사용하지 않고 개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을호출하고 DB와 통신 합니다.
Spring JPA의 장점
- 간결한 코드:
Spring JPA는 반복적인 CRUD 코드를 최소화하고, 데이터베이스 쿼리를 자동으로 생성해줍니다. - 객체 중심 개발:
객체 지향적인 방식으로 데이터베이스를 다룰 수 있어 코드의 가독성을 높이고 유지보수를 용이하게 합니다. - 데이터베이스에 종속되지 않음:
데이터베이스 종속성을 낮추고, 다양한 데이터베이스 시스템을 사용하는 경우에도 일관된 방식으로 작업할 수 있습니다. 예를 들어, MySQL과 Oracle은 데이터 타입도다르고, 페이징 처리 방식도 다릅니다. JPA는 JPA의 문법만 지켜주면 SQL의 다른 문법들을 처리해줍니다.
반응형
'Spring Data > JPA' 카테고리의 다른 글
JPA 생성 및 수정 날짜 자동 처리를 위한 공통 엔티티 만들기 @MappedSuperclass, @EnableJpaAuditing (0) | 2023.08.17 |
---|---|
JPA ddl-auto: 데이터베이스 스키마 자동 생성 전략 (0) | 2023.08.17 |
JPA 엔티티 매핑: 객체와 데이터베이스 테이블의 매핑 (0) | 2023.08.17 |
JPA EntityManager와 영속성: JPA의 데이터 관리 이해 (0) | 2023.08.17 |
JPA N+1 문제 (0) | 2023.01.13 |