HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
[팀 08] 사이코
[팀 08] 사이코
/
⚒️
Layered Archtecture 개선
⚒️

Layered Archtecture 개선

  • JPA의 특성상 다른 Service 이용 시에 Domain 객체를 반환 받아 사용해야 함.
  • 기존 설계의 경우 Controller → Service → Repository 의 의존 관계에서 Service layer는 필요에 따라 다른 Service Layer를 참조 해야 함. 이로 인해 도메인 객체 자체를 반환 타입으로 사용해야 하는 상황이 발생하여 컨트롤러에서도 도메인 객체를 다룰 수 있게 됨. 이는 트랜잭션 제어 밖으로 도메인 객체를 노출시켜 Lazy Initialization 예외를 발생할 가능성이 생김.
  • 이를 해결하기 위해서 Controller → Service → Repository 레이어간 참조 방향을 엄격하게 지키고, 기존의 Service : Repository = 1 : 1 이 아닌 1: N 으로 변경하고 Service간의 참조를 하지 않도록 변경하였음.