✏️ 2023-02-20 Today I Learn

@mitoconcrete · February 20, 2023 · 2 min read

순환 참조 발생을 해결하다.

오늘 중요로직을 작업 중, 끔찍한 순환참조 이슈를 마주했다. 주요 원인은 협업을 유리하게끔 하기 위한 도구인 internal service가 서로가 서로를 참조하며 빈을 등록할 때 이슈가 발생한 것이다. 따라서, 각 서비스들 내부에서 각각 어떤 internal service를 참조하는지 확인해보았다. 처음에는 머리가 잘 돌아가지 않아서, 문제를 해결하는 것에 난항을 겪었다. 따라서, 종이를 열고 알고리즘 문제 푸는 것 처럼 어느곳이 어느곳을 현재 참조하고 있는지 확인해보았다. 확인해보니, 레스토랑이라는 서비스를 여러군데에서 호출하고 있었고, 이에 따라 레스토랑 서비스가 자신을 호출하는 곳을 다시 internal service로 호출함에 따라 해당 문제가 발생한 것이었다. 해당문제는 초반설계 시 고려하지 못한 이슈여서 많이 당황했다. 로직 상 서로가 서로를 참조하진 않지만, 빈들이 등록되는 과정에서 순환참조오류가 발생하는 문제는 다음 설계부터는 신경써야겠다는 깨달음을 얻었다.

@mitoconcrete
어제보다 조금 더 성장하기 위해 기록합니다.