일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Java
- IntellJ
- Real MySQL
- 이스티오
- redis
- K8s
- 보조스트림
- SpringBoot
- Collection
- spring
- Stream
- 자바
- 쿠버네티스
- 스트림
- Stack
- JPA
- thread
- Kotlin
- OS
- list
- 토비의 스프링 정리
- gradle
- 토비의 스프링
- 자바 ORM 표준 JPA 프로그래밍
- jvm
- 스프링
- 백준
- mysql
- MSA
- GC
Archives
- Today
- Total
인생을 코딩하다.
[자바 ORM 표준 JPA 프로그래밍 정리], 1장 JPA 소개 본문
728x90
반응형
1.3 JPA란 무엇인가?
JPA (Java Persisitence API)는 자바 진영의 ORM 기술 표준.
어플리케이션과 JDBC 사이에서 동작
ORM (Object Relational Mapping)
- 객체와 관계형 데이터베이스를 매핑한다는 뜻.
- ORM 프레임워크 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다.
JPA를 사용해서 객체를 저장하는 코드
jpa.persist(member)
JPA를 사용해서 객체를 조회하는 코드
Member member = jpa.find(memberId
ORM 프레임워크는 단순히 SQL을 개발자 대신 생성해서 데이터베이스를 전달해주는 것 뿐 아니라 앞서
다양한 패러다임의 불일치 문제들도 해결해준다. 어떠헤 매핑해야 하는지 매핑 방법만 ORM 프레임워크에 알려주면 된다.
1.3.1 JPA 소개
EJB 3.0에서 하이버네이트를 기반으로 새로운 자바 ORM 기술 표준이 만들어졌는데 이것이 바로 JPA
JPA는 자바 ORM 기술에 대한 API 표준 명세다. 쉽게 이야기해서 인터페이스를 모아둔 것이다. 따라서 JPA를 구현한
ORM 프레임워크를 선택해야한다.
1.3.2 왜 JPA를 사용해야 하는가?
생산성
- JPA를 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달.
- INSERT SQL을 작성하고 JDBC API 사용하는 지루하고 반복적인 일을 JPA가 대신 처리해준다.
- CREATE TABLE같은 DDL문 자동 생성
- 데이터베이스 설계 중심의 패러다임을 객체 설계 중심으로 역전
jpa.persist(member); // 저장
Member member = jpa.find(memberId); // 조회
유지 보수
- 엔티티에 필드 추가시 등록, 수정, 조회 관련 코드 모두 변경
- JPA를 사용하면 이런 과정을 JPA가 대신 처리
- 개발자가 작성해야 할 SQL과 JDBC API 코드를 JPA가 대신 처리해줌으로 유지보수해야 하는 코드 수가 줄어든다.
패러다임 불일치 해결
상속, 연관관계, 객체 그래프 탐색, 비교하기 같은 패러다임 불일치 해결
성능
String memberId = "helloId"
Member member1 = jpa.find(memberId);
Member member2 = jpa.find(memberId);
JDBC API를 사용해서 작성하면 조회할때 마다 SELECT SQL을 사용해서 DB와 두 번 통신했을 것이다.
JPA를 사용하면 회원을 조회하는 SELECT SQL을 한 번만 데이터베이스에 전달하고 두 번쨰는 조회한 회원 객체를 재사용한다.
- 다양한 성능 최적화 기회 제공
- 어플리케이션과 데이터베이스 사이에 존재함으로 여러 최적화 시도 가능
데이터 접근 추상화와 벤더 독립성
- 데이터베이스 기술에 종속되지 않도록 한다.
- 데이타베이스를 변경하면 JPA에게 다른 데이터베이스를 사용한다고 알려주면 됨.
표준
JPA는 자바 진영의 ORM 기술 표준이다. 앞서 야기했듯이 표준을 사용하면 다른 구현 기술로 손쉽게 변경할 수 있다.
참고 문헌 :
728x90
반응형
'JPA' 카테고리의 다른 글
[자바 ORM 표준 JPA 프로그래밍 정리], 6장 다양한 연관관계 매핑 (0) | 2021.04.25 |
---|---|
[자바 ORM 표준 JPA 프로그래밍 정리], 5장 연관관계 매핑 기초 (0) | 2021.04.25 |
[자바 ORM 표준 JPA 프로그래밍 정리], 4장 엔티티 매핑 (0) | 2021.04.25 |
[자바 ORM 표준 JPA 프로그래밍 정리], 3장 영속성 관리 (2) | 2021.04.25 |
[자바 ORM 표준 JPA 프로그래밍 정리], 2장 JPA 시작 (0) | 2021.04.25 |
Comments