Circular reference

  • 두 개 이상의 클래스가 직간접적으로 서로 의존하는 경우
  • 서로 참조 루프를 생성하는 방식
  • 서로의 의존성이 강할 때 발생한다.

문제점

  1. 긴밀한 결합
  2. 유지보수의 어려움
  3. 테스트 가능성 저하
  4. 복잡성 증가

피하기 위한 전략

  1. 의존성 주입
  2. SRP 적용
  3. 인터페이스 또는 추상 클래스 사용
  4. 코드 베이스 리팩토링

해결

  1. 순환 종속성 끊기
  2. 중개자 클래스 도입
  3. IOC 원칙 적용
  4. 클래스 분리
  5. 점진적 리팩토링