일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- zepettoworld.com
- 1
- Component
- 스프링 부트
- git #gitlab #github
- layout #thymeleaf #화면분할
- DispatcherServlet
- Bean
- 스프링
- 오토와이어드
- spring
- autowired
- Today
- Total
기록과 정리
JPA(Java Persistence API)란? 본문
이 글은 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고하였습니다.
www.inflearn.com/course/ORM-JPA-Basic
JPA 란?
JPA ( Java Persistence API ) 의 약자로 , 자바 진영의 ORM 기술 표준을 말한다.
ORM ?
Object - Relational Mapping ( 객체 관계 매칭 )
객체는 객체대로 , RDB는 RDB 대로 설계 후 ORM이 객체와 DB를 매핑해준다.
JPA의 탄생
기존 자바 진영에서는 EJB(엔티티 빈)라는 ORM 기술이 있었지만 사용하기 어렵고, 속도 또한 느렸기 때문에 오픈 소스로 Hibernate가 탄생하게 된다. 자바 진영에서 Hibernate를 개발한 개발자를 영입함으로써 JPA라는 ORM 을 만들게 된다.
JPA를 왜 사용하는가?
1. 생산성
CRUD 라 하면 보통 MyBatis에서 쿼리를 작성한다. 가령 , 회원을 다루는 Member 라는 객체에 age라는 컬럼이 추가 생성된다면 여태 만들어 놓은 쿼리에 age라는 컬럼을 기입을 해놓아야한다.
이러한 쿼리가 10개일지 100개일지 모르는 일이다. 하지만 JPA는 이러한 분배를 알아서 해준다.
마치 자바 컬렉션 처럼
저장 jpa.persist(member
조회 jpa.find(memberId)
삭제 jpa.remove(member)
수정 member.setName("변경이름")
2. SQL 중심적 개발에서 객체 중심으로 개발
RDB와 객체 간에 맞지않은 개념을 이어주는 개념으로 사용.
가장 큰 이유는 위에 두가지라 생각하며 그외에도 생산성, 유지보수, 성능, 패러다임의 불일치 해결 등이 있습니다.
'IT > JPA' 카테고리의 다른 글
JPA 고급 매핑 전략 + @MappedSuperclass (0) | 2021.02.20 |
---|---|
JPA 연관관계 다중성 ( N:1, 1:N, 1:1, N:M ) (0) | 2021.02.16 |
JPA 연관관계 매핑 ( 단방향 , 양방향 ) (0) | 2021.02.16 |
엔티티 매핑 ( Entity Mapping ) (0) | 2021.02.15 |
영속성 컨텍스트 ( Entity Manager ) (0) | 2021.02.09 |