본문 바로가기
개발/Spring

ORM, JPA, JPQL

by BellOne4222 2024. 2. 26.

ORM, JPA, JPQL

 

Object Relational Mapping

  • 객체 지향 언어를 이용하여, 서로 호환되지 않는 타입 간의 데이터를 변환하는 기술
  • DB(RDBMS) 테이블 데이터를 자바 객체와 매핑하는 기술
  • RDBMS를 객체 지향 DB로 가상화
  • DB의 추상화
    • 특정 DB에 종속된 표현(SQL)이나 구현이 사라지고, DB 변경에 더 유연해질 수 있다.
  • 객체의 이점
    • 객체 간 참조
    • type-safety
  • 관심사 분리
    • DB 동작에 관한 코드 작성의 반복을 최소화 하고 비즈니스 로직에 집중

 

Jakarta Persistence API

  • 자바에서 ORM 기술을 사용해 RDBMS를 다루기 위한 인터페이스 표준 명세
  • API + JPQL + metadata(+ Critical API)
  • 기본적으로 관계형 데이터베이스의 영속성 만을 규정한다.

 

Persistence

  • 영속성
  • 프로세스가 만든 시스템의 상태가 종료된 후에도 사라지지 않는 특성
  • 시스템의 상태를 데이터 저장소에 데이터로 저장
  • 사라지는 데이터
    • 주 기억장치(휘발성)에 저장된 데이터
    • 프로세스 메모리 안의 데이터(변수, 상수, 객체, 함수 등)
  • 사라지지 않는 데이터 
    • 보조기억장치(비 휘발성)에 저장된 데이터
    • 하드디스크, SSD에 기록된 데이터(파일, 데이터베이스 등))
  • 영속성 프레임워크
    • 영속성을 관리하는 부분을 persistence layer로 추상화 하고, 이를 전담하는 프레임워크에게 관리를 위임
  • JPA에서의 영속성
    • 프로세스가 DB로 부터 읽거나 DB에 저장한 정보의 특성

 

Jakarta Persistence Query Language

  • 플랫폼으로부터 독립적인 객체 지향 쿼리 언어
  • JPA 표준의 일부
  • RDMBS의 Entity를 다루는 쿼리를 만드는데 사용

 

 

 

 

'개발 > Spring' 카테고리의 다른 글

Hibernate, Spring Data JPA  (0) 2024.02.26
MyBatis, JdbcTemplate  (0) 2024.02.26
Actuator  (0) 2024.02.24
Devtool  (0) 2024.02.24
타임리프(thymeleaf)  (0) 2024.02.20