ORM이란?
-객체와 관계형 DB의 데이터를 자동으로 매핑해주는것
ORM을 잘 사용하기 위해선 DB와 OOP 지식이 필요
영속성→ 객체를 영원히 저장한다.
SQL을 다룰 때 발생하는 문제점
SQL의 단점
- 코드의 반복이 발생
- SQL에 의존적인 개발
- 테이블에 컬럼을 추가할 때 수많은 코드 추가
ORM의 장점
- 객체 지향적이기 때문에 비지니스 로직 및 코드 에 집중할 수 이싿.
- 관념적 코드가 없거나 적어진다.
- 코드의 재사용, 유지보수성의 편리성이 증대된다.
- DBMS의 종속성이 줄어든다.
ORM의 단점
- N+1문제 등 해결해야할 과제가 있다.
- 생성되는 쿼리 속도등의 문제
- 설계가 중요하며 일관성이 무너지거나 성능 정하의 문제발생
JPA란?
JPA란?
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준
JPA를 사용해야 하는 이유
- 생산성 향상
- 유지보수성 향상
- 패러다임의 불일치 해결
- 데이터 접근의 추상화와 벤더 독립성
JPA의 구현체
- Hibernate
- Spring Data JPA
엔티티 매니저
특정 작업을 위해서 데이터베이스에 접근하는 역할
엔티티를 DB에 CRUD하는 역할
엔티티 매니저 사용 주의사항
- Entity Manager Factory는 설정 정보를 읽어와 DB커넥션 풀도 생성하기 때문에 생성하는 비용이 크다. → 어플리케이션 전체에서 한번만 생성해서 공유해야 함
- Entity Manager 는 DB커넥션과 밀접한 관계가 있으므로 스레드간에 공유하거나 재사용하면 안됨
- 사용이 끝난 Entity Manager는 반드시 종료해야함
- SpringBoot에서 Entity Manager Factory를 자체 제공함
'Java > JPA' 카테고리의 다른 글
[JPA] JPA의 요소 (0) | 2024.04.21 |
---|---|
[JPA]영속성 컨텍스트 (0) | 2024.04.17 |
댓글