본문 바로가기
Spring/JPA

JPA를 사용하는 이유

by YellowCow 2022. 7. 14.

1. SQL에 의존적인 개발을 피하기 위해

 1) Column이 추가/삭제/변경되는 경우, Application 단의 코드도 수정해야 함

 2) SQL에 객체지향개념인 상속 관계를 적용할 수 없다

 

2. SQL 작성에 드는 시간을 절약하기 위해

 1) SQL을 작성하다 보면 반복적인 작업을 할 때가 많다

    - Select, Insert, Update, Delete

    - Join해서 값을 가져오는 등.. 

 2) 개발자의 실수를 줄일 수 있다

 3) 다른 부분의 설계/개발에 좀 더 신경 쓸 수 있다

 

3. JPA의 장점

1) SQL 자동 생성

   - SQL을 JPA에서 자동으로 생성해준다

   - persist(insert), find(select), setData(update), remove(delete) 등의 메소드로 CRUD를 할 수 있다

2) 지연로딩, 즉시로딩

   먼저, 테이블 A가 있고 테이블 A의 기본키를 외래키로 갖고 있는 테이블 B가 있다고 가정하자

   a. 지연로딩

      - 테이블 B를 조회했다가 테이블 A의 데이터가 필요할 때 테이블 A의 데이터를 조회하는 쿼리를 요청

   b. 즉시로딩

      - 한번에 테이블 A,B의 데이터를 가져옴

3) SQL 최적화

      - 상황에 따라 지연로딩, 즉시로딩을 선택가능

      - 같은 트랜잭션 안에서 Commit할 때까지 Query를 한번에 모아서 요청가능

4) 1차 캐시와 동일한 쿼리결과 보장

      - 같은 트랜잭션 안에서는 같은 엔티티를 반환(캐시된 결과 반환, 조회성능향상)

      - 같은 트랜잭션 안에서는 쿼리를 한번만 실행

4) 다양한 DBMS 지원

      - Oracle, MyBatis 등 40여 가지 DBMS를 지원

'Spring > JPA' 카테고리의 다른 글

Entity-Table 매핑 - Entity와 테이블 매핑방법  (0) 2023.02.12
영속성 컨텍스트 이점  (0) 2023.02.12
엔티티의 생명주기  (0) 2023.02.12
영속성 컨텍스트  (0) 2023.02.12
JAVA11 - javax.xml.bind.JAXBException 에러  (0) 2022.07.14

댓글