티스토리 뷰
JPA
- Java Pesistence API
- 자바 진영의 ORM 표준 기술
ORM
- 객체와 RDB를 연결하는 프레임워크
- Object-relational mapping(객체 관계 매핑)
- 객체는 객체대로 설계
- 관계형 데이터베이스는 관계형 데이터베이스대로 설계
- ORM 프레임워크가 중간에서 매핑
- 대중적인 언어에는 대부분 ORM 기술이 존재
JPA 동작 방식
애플리케이션 입장에선 자바 컬렉션에 저장하듯이 JPA를 이용하면 됨
JPA의 논리적 구조는 다음과 같음
- 애플리케이션과 JDBC 사이에서 동작

- 저장

- 조회

JPA의 물리적 구조
- JPA는 표준 명세서, 인터페이스의 모음
- JPA의 구현체 : 하이버네이트, EclipseLink, DataNucleus

JPA를 사용해야 하는 이유
1. SQL 중심적인 개발에서 객체 중심으로 개발
애플리케이션 입장에선 자바 컬렉션에 저장하듯이 JPA를 이용하면 됨
2. 생산성 -JPA와 CRUD
• 저장: jpa.persist(member)
• 조회: Member member = jpa.find(memberId)
• 수정: member.setName(“변경할 이름”)
• 삭제: jpa.remove(member)
3. 유지보수
필드 변경시 ...
- 기존: 애플리케이션에서 모든 sql 수정
- JPA: 애플리케이션에선 필드만 추가, sql은 JPA가 처리
4. 패러다임의 불일치 해결
참고:
2024.04.18 - [백엔드/스프링] - JPA - sql 중심적인 개발의 문제점
5. 성능
- 1차 캐시와 동일성(identity) 보장
- 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
- 지연 로딩(Lazy Loading)
'백엔드 > 스프링' 카테고리의 다른 글
| JPA(3) - 영속성 컨텍스트 (0) | 2024.04.24 |
|---|---|
| JPA - (0) sql 중심적인 개발의 문제점 (1) | 2024.04.18 |
| 스프링부트 환경설정 (0) | 2024.03.26 |
| 애플리케이션 제어 (0) | 2023.08.17 |
