ORM Document - dev-team-projects/DeliTalk GitHub Wiki
작성자 : 임성준
ORM (Object Relational Mapping)
- Object Relational Mapping의 약자입니다.
- 객체 지향 프로그래밍 언어의 객체와 관계형 데이터베이스의 테이블을 매핑해주는 기술입니다.
- 객체와 DB 간의 불일치 문제를 해결합니다.
- 개발자가 객체 단위로 데이터를 직관적으로 다룰 수 있도록 도와줍니다.
JPA와 ORM의 관계
JPA (Java Persistence API)
- 자바 ORM을 위한 표준 명세(인터페이스)
Hibernate
- JPA를 구현한 대표적인 구현체
- Spring Boot는 기본적으로 Hibernate를 JPA의 구현체로 사용합니다.
- JPA를 사용하면 애플리케이션 코드를 DB에 종속되지 않도록 작성할 수 있습니다.
ORM 구현체
- Hibernate 사용 (Spring Boot의 기본 JPA 구현체)
단순 CRUD
- Spring Data JPA의 쿼리 메서드 사용
findByUsername
,findByAgeGreaterThan
등
복잡한 쿼리 (JOIN, 조건, 집계 등)
- JPQL 사용
- 엔티티 기반 쿼리
- 혹은
@Query
어노테이션 사용- JPQL 또는 Native SQL 작성 가능
결론은 ORM의 구현체 Hibernate 사용하고 복잡한 쿼리는 JPQL, @Query를 사용합니다.
JPQL
JPA(Java Persistence API)에서 제공하는 객체 지향 쿼리 언어