1-5. 상품 도메인 개발

지니🧸·2023년 2월 2일
0

Spring Boot & JPA

목록 보기
5/35

본 문서는 인프런의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 (김영한) 강의를 공부하며 작성한 개인 노트입니다.

🍄 상품 엔티티 개발

Exception 클래스 만들기

  • src/main/java/jpabook.jpashop/exception/ 에 클래스 생성
  • exception 타입에 따라 적절한 exception extend
    public class NotEnoughStockException extends RuntimeException {
      ...
    }
  • extend하는 exception의 메서드 override

🐚 상품 리포지토리 개발

🌵 상품 서비스 개발

다른 개발자가 의도하지 않은 생성자를 사용하는 경우

솔루션1: protected

protected OrderItem() {}

이 생성자를 만들면 JPA에서는 다른 개발자가 OrderItem() 생성자를 쓰려고 할 경우에 에러를 냄

솔루션2: @NoArgsConstructor

@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class OrderItem {}

비즈니스 로직의 분리

  • 현재 프로젝트는 비즈니스 로직 대부분이 엔티티에 존재
    • 서비스 계층은 엔티티에 필요한 요청을 위임하는 역할
    • 객체지향 특성: 엔티티가 비즈니스 로직을 가짐
    • 도메인 모델 패턴
  • 트랜잭션 스크립트 패턴: 엔티티에는 비즈니스 로직 X & 서비스 계층에서 비즈니스 로직 처리
profile
우당탕탕

0개의 댓글