
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 |