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 |