본문 바로가기
Java/JPA

[JPA] ORM와 JPA

by 인포썸 2021. 5. 28.

ORM이란?

-객체와 관계형 DB의 데이터를 자동으로 매핑해주는것

ORM을 잘 사용하기 위해선 DB와 OOP 지식이 필요

영속성→ 객체를 영원히 저장한다.

SQL을 다룰 때 발생하는 문제점

SQL의 단점

  • 코드의 반복이 발생
  • SQL에 의존적인 개발
  • 테이블에 컬럼을 추가할 때 수많은 코드 추가

ORM의 장점

  • 객체 지향적이기 때문에 비지니스 로직 및 코드 에 집중할 수 이싿.
  • 관념적 코드가 없거나 적어진다.
  • 코드의 재사용, 유지보수성의 편리성이 증대된다.
  • DBMS의 종속성이 줄어든다.

ORM의 단점

  • N+1문제 등 해결해야할 과제가 있다.
  • 생성되는 쿼리 속도등의 문제
  • 설계가 중요하며 일관성이 무너지거나 성능 정하의 문제발생

JPA란?

JPA란?

JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준

JPA를 사용해야 하는 이유

  • 생산성 향상
  • 유지보수성 향상
  • 패러다임의 불일치 해결
  • 데이터 접근의 추상화와 벤더 독립성

JPA의 구현체

  1. Hibernate
  2. Spring Data JPA

엔티티 매니저

특정 작업을 위해서 데이터베이스에 접근하는 역할

엔티티를 DB에 CRUD하는 역할

엔티티 매니저 사용 주의사항

  1. Entity Manager Factory는 설정 정보를 읽어와 DB커넥션 풀도 생성하기 때문에 생성하는 비용이 크다. → 어플리케이션 전체에서 한번만 생성해서 공유해야 함
  2. Entity Manager 는 DB커넥션과 밀접한 관계가 있으므로 스레드간에 공유하거나 재사용하면 안됨
  3. 사용이 끝난 Entity Manager는 반드시 종료해야함
  4. SpringBoot에서 Entity Manager Factory를 자체 제공함

'Java > JPA' 카테고리의 다른 글

[JPA] JPA의 요소  (0) 2024.04.21
[JPA]영속성 컨텍스트  (0) 2024.04.17

댓글