03장. 스프링부트에서 JPA로 데이터베이스 다뤄보자 (2)

ajufresh·2020년 2월 26일
0
post-thumbnail

블로그에 게시하는 위 글은 전체적인 내용 정리가 아닌
책을 읽으면서 새로 알게된 내용이나 제가 중요하다고 생각하는 내용을 정리한 글입니다.

3.4 등록/수정/조회 API 만들기

API를 만들기 위한 클래스

  • Request 요청을 받는 Dto
  • API 요청을 받는 Controller
  • 트랜잭션, 도메인 간의 순서를 보장하는 Service

Spring 웹 계층

Web Layer

  • 컨트롤러, 뷰 템플릿
  • 외부 요청과 응답에 대한 전반적인 영역

Service Layer

  • @Service
  • 컨트롤러와 Dao의 중간 영역
  • Transactionl 사용 영역

Repository Layer

  • DB에 접근하는 영역

Dtos

  • 계층 간 데이터를 교환하기 위한 객체들의 영역

Domain Model

  • @Entity, VO

비즈니스 처리를 담당하는 곳 --> Domain

테스트

@WebMvcTest -> JPA 기능이 작동하지 않는다.

109p 코드를 그대로 쓰면 오류가 난다. -> 해결링크

영속성 컨테스트

엔티티를 영구 저장하는 환경

JPA의 엔티티 매니저가 활성화된 상태(default)로 트랜잭션 안에서 데이터베이스에서 데이터를 가져오면 영속성 컨텍스트가 유지된 상태
-> 트랜잭션이 끝나는 시점에 해당 테이블에 변경분을 반영
-> 별도로 update 쿼리 날릴 필요 X (더티 체킹)

서비스 위에 @Transactional이 있으면 바뀌나보다 ... !!

3.5 JPA Auditing으로 생성시간/수정시간 자동화하기

BaseTimeEntity를 생성한 걸로 만들 때마다 CreateDate와 ModifiedDate를 계속 넣지 않아도 되어서 굉장히 편해졌다.

와!!
드디어 끝났다!!

profile
공블로그

0개의 댓글