• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • JPA 찍먹 1
        2022년 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
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바