ETC
양방향 의존 관계 오류
뚜껑뚜
2022. 2. 28. 00:23
프로젝트 하면서 OAuth2 부분을 하는데 한참을 삽질하다가 겨우 해결되나 싶더니 양방향 의존 관계 오류가 발생했다.
솔직히 말하면 OAuth2가 너무 어렵고 코드를 제대로 이해하지 못해서 어디서 어디를 의존하는지를 이해하지 못해서 아직 손을 못 대는 중이다. 그러나 이와 관련해 검색하던 중 이럴 경우 어떻게 해결해야 하는지에 대한 답이 있어서 우선 기록을 남겨놓는다.
질문자는 이럴 경우 우선 @Autowired가 아닌 setter 주입으로 돌려서 임시방편으로 해결한다고 했다. 이럴 때 어떻게 해결하는 게 좋은 거냐는 질문에 대한 답이 아래이다.
결론부터 말씀드리면! 양방향 의존관계 오류는 거의 대부분 설계의 오류입니다.
양방향 의존관계는 매우 나쁜 설계로 볼 수 있습니다.(결국 A를 변경하면 B가 영향을 받고 B를 변경하면 A가 영향을 받는 모델이니까요.)
실무에서는 이런 경우 설계로 푸는 것이 가장 좋습니다.
주로 컴포넌트를 쪼개어서 문제를 해결할 수 있는데요.
예를 들어서 A->B, B->A 의존관계가 있다면, 새로운 C를 만들어서 A->B, B->C로 문제를 해결할 수 있습니다.
이렇게 해서 순환참조를 근본적으로 제거하는 연습을 해야 변경에 유연한 애플리케이션을 설계하고 개발할 수 있습니다.
출처 : https://www.inflearn.com/questions/83328
결국... 설계 자체가 문제라는 걸까... 나는 이 설계를 고쳐야 하는 걸까... 아직 이해도 못해서 손도 못 대고 있는 이 구조를... ㅜ... 아무튼... 갈 길이 멀다... 아자아자...