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)에서 제공하는 객체 지향 쿼리 언어