IT/개발자 면접

Spring Data JPA와 Spring Data JDBC 장단점

Collin 2023. 12. 9. 11:50
반응형

 

 

 

Spring Data JPA:

1. 차이점:

  • 기술적 차이: Spring Data JPA는 JPA(Java Persistence API)를 기반으로 동작합니다. JPA는 객체와 관계형 데이터베이스 간의 매핑을 위한 스펙이며, Hibernate, EclipseLink 등의 구현체를 사용할 수 있습니다.
  • 객체-관계 매핑: JPA를 통해 객체와 데이터베이스 테이블 간의 매핑을 지원하며, 객체 지향적인 모델을 사용할 수 있습니다.
  • 자동화된 쿼리 생성: Spring Data JPA는 메소드 이름에 따라 자동으로 쿼리를 생성해주는 기능을 제공합니다.

2. 장단점:

  • 장점:
    • 빠른 개발: 객체 지향적인 모델을 사용하므로 빠르게 개발이 가능합니다.
    • 자동화된 쿼리: 간단한 쿼리는 메소드 이름만으로 처리 가능하며, 복잡한 쿼리도 JPQL이나 Criteria API 등을 활용하여 처리할 수 있습니다.
    • 다양한 구현체: JPA 구현체를 손쉽게 변경할 수 있습니다.
  • 단점:
    • 성능: 일부 복잡한 쿼리에 대해서는 성능이 JDBC에 비해 떨어질 수 있습니다.
    • 학습 곡선: JPA의 복잡한 기능을 모두 활용하려면 학습이 필요합니다.

 

 

Spring Data JDBC:

1. 차이점:

  • 기술적 차이: Spring Data JDBC는 JDBC(Java Database Connectivity)를 기반으로 동작합니다. 간단한 ORM(Object-Relational Mapping)을 제공하며, JPA에 비해 간소한 설계를 추구합니다.
  • 최소한의 매핑: 객체와 테이블 간의 매핑이 최소화되어 있습니다. 별도의 매핑 어노테이션 없이 간단한 테이블 구조를 사용합니다.
  • 직접 SQL 사용: 필요한 경우에는 직접 SQL을 사용할 수 있습니다.

2. 장단점:

  • 장점:
    • 단순성: JPA에 비해 간소하며, 복잡한 매핑 없이도 빠르게 개발이 가능합니다.
    • 직접 SQL 사용: 필요한 경우에는 직접 SQL을 사용할 수 있어 성능이나 튜닝이 더 쉽습니다.
  • 단점:
    • 한계: 객체와 테이블 간의 복잡한 매핑이 필요한 경우에는 한계가 있을 수 있습니다.
    • 표준화: JPA에 비해 표준화된 스펙이 부족할 수 있습니다.

선택 가이드:

  • Spring Data JPA를 선택하면 좋은 경우:
    • 객체 지향적인 모델을 사용하고자 할 때.
    • 다양한 JPA 구현체를 유연하게 사용하고자 할 때.
    • 복잡한 쿼리나 매핑이 필요한 경우.
  • Spring Data JDBC를 선택하면 좋은 경우:
    • 단순한 구조의 테이블을 다루어야 할 때.
    • 직접 SQL을 자주 활용해야 할 때.
    • 가벼운 설계와 높은 성능이 요구될 때.

 

 

반응형