- JPA 찍먹 12022년 09월 09일
- starryeye
- 작성자
- 2022.09.09.:33
JPA에 대해 학습해보자..
스프링과 JPA는 자바 엔터프라이즈 시장의 주력 기술이다.
스프링과 JPA는 각각 아래를 제공한다.
스프링은 DI 컨테이너를 포함한 애플리케이션 전반의 기능을 제공
JPA는 ORM(Object - Relational Mapping) 데이터 접근 기술을 제공
<살짝 복습>
Jdbc를 사용한 데이터 접근 기술은 크게 3가지로 나뉜다.
1. Jdbc를 개발자가 직접 사용
2. SQL Mapper 기술을 사용
3. ORM 기술을 사용
해당 기술에 대한 간략한 정리는 이전 포스팅을 참고하자..
https://starryeye.tistory.com/44
JDBC 2
JDBC를 사용한 데이터 접근 기술은 크게 3가지로 나뉜다. 1. JDBC를 직접 사용 2. SQL Mapper 3. ORM 기술 JDBC를 직접 사용 말 그대로 개발자가 직접 JDBC 표준 인터페이스를 사용하며 모든 것을 컨트롤한다
starryeye.tistory.com
그렇다면.. ORM 기술은 간단하게 말해서..
개발자는 객체를 마치 JAVA Container에 넣고 빼듯이 다루기만 하면되는데..
이는 JPA가 객체(애플리케이션)와 SQL(JDBC) 사이를 호환할 수 있도록 해줄수 있기 때문이다..
그래서.. ORM 기술을 사용할 경우..
객체는 객체대로 설계가 가능하다.
관계형 데이터베이스는 관계형 데이터베이스대로 설계가 가능하다.
기존 데이터 접근 기술을 사용할 경우엔..
객체와 DB의 Table Entity간의 괴리감은 상당하다.
(괴리감에 대한 문제는 상세 포스팅에서 다루겠다..)
JPA를 실무에서 편리하게 사용하기 위해서 아래 추가 기술들을 사용한다.
Spring Data JPA
-> 기본적인 공통 CRUD 기능의 인터페이스 제공(JpaRepository) + 쿼리 메서드 기능
Querydsl : 복잡한 동적쿼리문제 해결 + Java 코드로 쿼리를 작성할 수 있음
<참고>
쿼리 메서드 기능은..
JPA가 제공하는 JpaRepository(기본적인 공통 CRUD 기능의 인터페이스 제공)를
상속받는 개발자의 인터페이스에 메서드만 적어두면...
메서드 이름을 분석해서 쿼리를 자동으로 만들고 실행해주는 기능이다.
Querydsl의 Java 코드로 쿼리를 작성한다는 것은..
말 그대로 쿼리를 Java 코드로 작성한다는 것이다.
기존에 개발자가 SQL을 작성할 때는 String으로 오타가 있어도 알아 차리기가 쉽지 않았다..
하지만.. Querydsl은 JPA가 제공하는 JPQL을 Java 코드로 작성할 수 있게..
빌더 역할을 해주기 때문에 장점이 있다.
-> 컴파일 시점에 오타를 알아차릴 수 있다.
이를 활용하여 복잡한 동적쿼리문제도 해결할 수 있다.
각 기술의 예제 코드
to be continue..
'Spring > DB, Cache 연동' 카테고리의 다른 글
Spring Transaction 2 (0) 2022.09.22 Spring Transaction 1 (0) 2022.09.22 MyBatis 1 (0) 2022.08.23 JdbcTemplate 1 (0) 2022.08.09 JDBC 10 (0) 2022.07.16 다음글이전글이전 글이 없습니다.댓글