반응형
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을 자주 활용해야 할 때.
- 가벼운 설계와 높은 성능이 요구될 때.
반응형
'IT > 개발자 면접' 카테고리의 다른 글
Java Checked Exception과 Unchecked Exception (0) | 2023.12.12 |
---|---|
서비스 개발 요청을 받았을 때 업무 진행 (0) | 2023.12.12 |
Spring Filter와 Interceptor (0) | 2023.12.11 |
Token과 Session (0) | 2023.12.10 |
Spring Framework 을 사용하는 이유는 ? (0) | 2023.12.09 |