DB의 프로젝션(Projection)

KangHo Lee's avatar
Dec 02, 2024
DB의 프로젝션(Projection)
  • 데이터베이스에서 프로젝션(projection)은 쿼리 결과에서 필요한 열(컬럼)만 선택하여 반환하는 과정입니다.
  • 이는 불필요한 데이터를 제외하고, 필요한 데이터만 효율적으로 조회할 수 있게 해줍니다.
  • SQL 쿼리뿐만 아니라 JPA와 같은 ORM 프레임워크에서도 사용됩니다.
  • 프로젝션은 성능 최적화와 데이터 전송량을 줄이는 데 중요한 역할을 합니다.

SQL에서의 프로젝션

  • SQL 쿼리에서 프로젝션은 SELECT 문을 사용하여 특정 열만 선택하는 것입니다.

예시

SELECT name, age FROM Users;
  • 위 쿼리는 Users 테이블에서 nameage 열만 선택하여 반환합니다. 이를 통해 전체 행(row)이 아닌 필요한 열만 조회하게 됩니다.

JPQL에서의 프로젝션

  • JPQL에서는 필요한 엔티티의 특정 필드만 선택하여 프로젝션을 수행할 수 있습니다.
java
@PersistenceContext private EntityManager entityManager; public List<Object[]> getUserNamesAndAges() { String jpql = "SELECT u.name, u.age FROM User u"; return entityManager.createQuery(jpql).getResultList(); }
  • 위 코드에서는 User 엔티티에서 nameage 필드만 선택하여 결과를 반환합니다.
  • 반환된 결과는 Object[] 배열 형태입니다.
Share article

devleekangho