JPA = Java Persistence API
자바의 ORM을 위한 표준 기술
- Hibernate, Spring JPA, EcliplseLink 등 과 같은 구현체가 있다.
- 이러한 구현체의 표준 인터페이스가 JPA 입니다.
ORM
자바의 객체와 관계형 DB를 맵핑하는 것
- SQL문을 일일이 작성하지 않고 객체로 구현할 수 있도록 하는 프레임워크
JDBC
JDBC는 데이터 베이스에 접근할 수 있도록 자바를 제공하는 api로, 모든 영구성 프레임워크에는 내부적으로 plain jdbc API를 사용합니다. 해당 JDBC에는 쿼리 실행 전과 후에 많은 코드를 작성해야 하며, 로직에서 예외 처리 코드를 넣어 데이터베이스와 연결에서 안정적으로 동작할 수 있게 해야 합니다. 또한, 트랜잭션의 처리기 필요하며, 모든 코드를 반복하기 때문에 비효율적이게 됩니다.
그래서 spring에서는 jdbc template을 사용하면 jdbc가 데이터베이스와 연결을 열고 닫는 부분, 예외 처리, 트랜잭션 처리를 진행하여 개발자는 sql 작성과 결과 처리에 집중하는 방식으로 동작을 할 수 있습니다.
하지만 여기에도 수기로 sql 쿼리문을 직접 작성해야하는 등 문제가 있고, 이것을 해결하기 위한 것으로 JPA가 있습니다.
영속성
우선 영속성의 정의를 보시면, 데이터를 생성한 프로그램이 종료되어도 사라지지 않고 존재하는 데이터의 특성을 말합니다. 영속성을 가지지 않으면, 단지 메모리에 존재하므로 파일 시스템, 데이터베이스 등에 데이터를 영구적으로 저장하려고 합니다.이러한 영속성을 가진 프레임워크는 JDBC 프로그래밍의 복잡함 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있고 안정적인 구동을 보장합니다.
ORM
이러한 프레임워크 중에는 ORM이 있습니다.
ORM은 데이터베이스 객체를 자바 객체로 매핑에 따라 객체 간 관계 바탕의 sql을 자동 생성하며, 관계를 객체에 반영하고자 하는 목적을 가집니다. 그리고 이러한 ORM의 영속성 API 중에는 JPA, Hibernate 등이 있습니다.
ORM의 영속성 API
접두사인 find, read, query, count, get에 by에 붙은 형태가 존재하며, 접두사에 키워드나 필드 이름을 붙이는 방식으로 생성하게 됩니다. 해당 규칙을 이용해서 작성한 메소드는 Repository 인터페이스에 선언하는 것을 통해 자동으로 구현할 수 있습니다.
'Spring' 카테고리의 다른 글
[Spring 성능] Spring Data JPA (0) | 2023.09.12 |
---|---|
[Spring] Spring 예외 처리 (0) | 2023.09.12 |
[Spring] Spring Framework 정의와 기본 개념 (1) | 2023.09.11 |
[effective java] 3. 공통 메서드 & 4. 클래스와 인터페이스 (0) | 2023.08.30 |
[Summary] 실전! 스프링 부트와 JPA 활용1 (0) | 2023.03.08 |