개발인생/Backend

[ORM] JPA, JPQL, QueryDSL - Spring과의 관계

forri 2025. 3. 19. 18:17

JPA, JPQL, QueryDSL은 백엔드에서 데이터베이스와의 상호작용을 담당하는 ORM(Object-Relational Mapping) 기술이며, 주로 Spring Boot 및 Spring Framework와 함께 사용된다.

기술 역할 관련 기술
JPA
자바 객체와 데이터베이스를 매핑하여 SQL을 직접 작성하지 않고 데이터를 다룰 수 있도록 해주는 ORM 표준 Spring Boot, Spring Data JPA, Hibernate
JPQL
JPA에서 지원하는 객체지향 쿼리 언어로 SQL과 비슷하지만 엔티티 객체를 대상으로 쿼리를 실행 JPA, Hibernate, Spring Data JPA
QueryDSL JPQL을 코드 기반으로 더 편하게 작성할 수 있도록 해주는 동적 쿼리 빌더 JPA, Hibernate, Spring Data JPA, Spring Boot

백엔드에서 어떻게 사용될까?

 

  • Spring Boot + JPA
    • Spring Boot에서는 보통 Spring Data JPA를 통해 JPA를 사용하며, 개발자는 인터페이스만 정의해도 기본적인 CRUD 기능을 사용할 수 있음
    • JPA는 Hibernate 같은 구현체를 사용하여 데이터베이스와 직접 연동됨
  • JPQL 사용 (JPA 내장 쿼리 언어)
    • SQL과 유사하지만, 엔티티 객체를 대상으로 하는 쿼리를 실행할 수 있음
    • @Query 어노테이션을 사용하여 JPQL을 활용
  • QueryDSL 사용 (동적 쿼리 빌더)
    • JPQL은 문자열 기반이라 동적 쿼리를 작성하기 어려운 단점이 있음
    • QueryDSL은 Java 코드 형태로 타입 세이프한 방식으로 동적 쿼리를 작성할 수 있음
백엔드 기술 관련성
Spring Boot JPA, JPQL, QueryDSL과 가장 자주 함께 사용됨
Spring Framework Spring Boot의 기반이며 JPA와 함께 사용 가능
Hibernate JPA의 대표적인 구현체

 

'개발인생 > Backend' 카테고리의 다른 글

JSON 파싱이란?  (1) 2025.03.25
[ORM] Lazy Loading vs Eager Loading  (1) 2025.03.19
Spring vs Spring Boot  (2) 2025.03.19
[Spring] @Transactional  (0) 2025.03.19
[Spring] Spring Data JPA  (0) 2025.03.19