Spring Boot(4) - RESTful API를 사용하는 백엔드(2)

김형석·2025년 6월 21일

LG CNS AM Inspire Camp

목록 보기
17/18

1. JPA

1-1. 정의

  • RDBMS와 객체 간 매핑을 제공하는 표준 API
  • JAVA 객체를 DB 테이블에 매핑
  • JAVA 객체와 DB 간 데이터 전송을 관리

1-2. 장점

  • SQL 코드 길이를 줄일 수 있음
  • SQL 코드를 객체지향적으로 관리
  • Entity로 DTO를 대체

1-3. 사용법

  • @Entity 어노테이션으로 엔티티를 정의
  • @Table 어노테이션으로 테이블명 정의
  • @Id로 PK를 정의
  • @GenerateValue 형태로 자동으로 값 갱신하는 규칙을 설정할 수 있음
  • @CreationTimestamp 어노테이션으로 생성 시간을 정의할 수 있음
    • @UpdateTimestamp로 시간 자동 갱신 가능
    • @DynamicUpdate로 변경된 필드만 업데이트할 수 있음
  • 불필요한 값을 방지하기위해서는 updatable=false 옵션을 사용한다

2. Repository

2-1. 정의

  • 쿼리를 실행하는 코드를 저장하는 계층
  • JPQL 언어를 사용
  • CRUDRepository를 상속받고, @Query 어노테이션으로 쿼리를 작성할 수 있음

2-2. 상속 관계

  • JpaRepository가 최상위 클래스
  • PagingAndSortingRepository가 JpaRepository를 상속
  • CrudRepository는 PagingAndSortingRepository를 상속
  • Repository는 CrudRepository를 상속

3. 서비스

  • Entity 타입을 사용하는 서비스 인터페이스를 작성할 수 있음
  • JPA를 사용한 Repository를 Autowire해서 사용
  • JPA를 도입하면 쿼리 작성이 불필요하며, 메서드 오버로딩으로 기능 확장이 가능
  • 메서드명이 복잡하거나, 쿼리 메서드를 사용하기 어렵다면 @Query로 직접 쿼리를 작성할 수 있음

0개의 댓글