
[Spring] 계층형 구조의 단점을 보완한 Facade Pattern 적용하기
2023. 7. 21. 22:30
Server/Spring
Controller - Service - Repository 계층형 구조로 프로젝트를 진행하던 도중, Service 들끼리 참조하여 이중참조 에러를 경험했다. 처음 이 에러를 마주했을 때, Bean LifeCycle 이 객체 생성 -> 의존관계 주입 순으로 진행되기 때문에 순환 참조가 왜 문제가 되는지 의아했다. 찾아본 결과 의존 관계 주입 방식이 필드 혹은 Setter면 생성 후 의존 관계 주입이 진행돼서 오류가 나지 않지만, 생성자로 의존관계를 주입받을 경우 생성자들이 서로를 순환 호출하여 문제가 발생하는 것이다!! 즉, 수직적인 구조로 이뤄진 Service들이 아닌 수평적인 구조의 service들이 모여 생성자로 서로의 의존관계를 주입받을 시 에러를 발생시킬 수 있다는 것!! 순환 참조 문제를 해결..