- JPA의 특성상 다른 Service 이용 시에 Domain 객체를 반환 받아 사용해야 함.
- 기존 설계의 경우 Controller → Service → Repository 의 의존 관계에서 Service layer는 필요에 따라 다른 Service Layer를 참조 해야 함. 이로 인해 도메인 객체 자체를 반환 타입으로 사용해야 하는 상황이 발생하여 컨트롤러에서도 도메인 객체를 다룰 수 있게 됨. 이는 트랜잭션 제어 밖으로 도메인 객체를 노출시켜 Lazy Initialization 예외를 발생할 가능성이 생김.
- 이를 해결하기 위해서 Controller → Service → Repository 레이어간 참조 방향을 엄격하게 지키고, 기존의
Service : Repository = 1 : 1이 아닌1: N으로 변경하고 Service간의 참조를 하지 않도록 변경하였음.
![[팀 08] 사이코](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F95482992-37b2-4340-9a70-77909ee02ece%2F%25E1%2584%258E%25E1%2585%25A5%25E1%2586%25AF%25E1%2584%2589%25E1%2585%25AE.jpg?table=block&id=0de3b72d-52fa-4b81-ac88-2a87252cc0a4&cache=v2)