[Jpa] 파사드 계층을 추가하는 법

파사드 계층의 역할과 특징

  • 논리적 의존성의 분리
    • 프레젠테이션 계층과 서비스 계층간의 논리적 의존성 분리
  • 프록시 객체 초기화
    • 프레젠테이션 계층에서 필요한 프록시 객체를 초기화
  • 비즈니스 로직 수행
  • 엔티티 조회
    • 레포를 직접 호출해 뷰가 요구하는 엔티티를 찾는다.
  • 트랜잭션의 관리
    • 프록시를 초기화하기 위해
    • 파사드 계층에서 트랜잭션을 시작해야
class OrderFacade {
    @Autowired
    OrderService orderService;

    public Order findOrder(id) {
        Order order = orderService.findOrder(id);
        // 프리젠테이션 계층이 필요한 프록시 객체를 강제로 초기화한다.
        order.getMember().getName();
        return order;
    }
}

class OrderService {
    public Order findOrder(id) {
        return orderRepository.findOrder(id);
    }
}
  • 프록시 객체의 초기화는 파사드 계층에서 수행하고
  • 서비스는 오로지 비즈니스 로직 수행에 집중함

장 / 단점

  1. 장점
    1. 논리적 의존성 분리
  1. 단점
    1. 중간 계층의 추가로 코드가 더 복잡해짐
    1. 관리해야할 코드의 양이 증가


Uploaded by N2T