티스토리 뷰

백엔드/스프링

JPA - (1) JPA 소개

ji._.ye 2024. 4. 18. 20:08

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/04   »
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
글 보관함