본문 바로가기
TIL

내일배움캠프 5주차 Spring Data JPA

by 율량동박씨 2024. 5. 16.

오늘의 키워드

  • 영속성 컨텍스트의 기능
  • Spring Data JPA

오늘의 내용

  • 영속성 컨텍스트의 기능
    • Entity객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간
    • 영속성 컨텍스트는 내부적으로 캐시 저장소를 가지고 있다
    • 우리가 저장하는 Entity객체들이 1차 캐시, 저장소에 저장된다
    • 캐시 저장소는 Map 자료구조 형태로 되어있다
  • 영속성 컨텍스트와 트랜잭션의 생명주기
    • 스프링 컨테이너 환경에서는 영속성 컨텍스트와 트랜잭션의 생명주기가 일치한다
    • 트랜잭션이 유지되는동안은 영속성 컨텍스트의 기능이 사용가능하다
  • Spring Data JPA
    • JPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈
    • JPA를 추상화시킨 Repository 인터페이스를 제공한다
    • Repository 인터페이스는 Hibernate와 같은 JPA구현체를 사용해서 구현한 클래스를 통해 사용됩니다
    • Spring Data JPA에서는 JpaRepository 인터페이스를 구현하는 클래스를 자동으로 생성해 준다
    • Spring 서버가 뜰 때 JpaRepository 인터페이스를 상속받은 인터페이스가 자동으로 스캔이 되면, 해당 인터페이스의 정보를 토대로 자동으로 SimpleJpaRepository 클래스를 생성해 주고, 이 클래스를 Spring ‘Bean’으로 등록한다
    • 인터페이스의 구현 클래스를 직접 작성하지 않아도 JpaRepository 인터페이스를 통해 JPA의 기능을 사용할 수 있다
    • JpaRepository <"@Entity 클래스", "@Id의 데이터 타입">를 상속받는 interface로 선언한다
    • 제네릭스의 @Entity 클래스 위치에 Memo Entity를 추가했기 때문에 해당 MemoRepository는 DB의 memo 테이블과 연결되어 CRUD 작업을 처리하는 인터페이스가 된다

오늘의 회고

  • 개인프로젝트를 진행하느냐 강의를 다 못들었더니 JDBC로 작성한 코드들을 다 JPA로 변경하느냐 멘붕이 왔다
  • 하.....이거 끝낼 수 있을까?....