Skip to content

순환참조: A 서비스 ‐ B 서비스 vs. A 서비스 ‐ B 레포지토리

GWANGHYEON KIM edited this page Dec 3, 2024 · 2 revisions

문제 상황

순환 참조 발생 가능성

  • 서비스 간 의존성 주입이 빈번할 때 발생
  • 구조적으로 피하기 어려운 문제로 인식됨

해결 접근 방식 비교

1. A 서비스- B 서비스 의존성 주입

  • 장점: 단일 책임 원칙 준수, 재사용성 향상
  • 단점: 순환 참조 위험

2. A 서비스- B 레포지토리 직접 접근

  • 장점: 단방향 의존성으로 순환 참조 방지
  • 단점: 재사용성 저하

개선된 아키텍처 제안

image

계층형 서비스 구조

  1. 코어 서비스 계층
    • 레포지토리 직접 접근
    • 최소한의 비즈니스 로직
    • 데이터 접근에 집중
  2. 애플리케이션 서비스 계층
    • 실제 비즈니스 로직 구현
    • 코어 서비스를 통한 데이터 접근

설계 원칙

  • 서비스의 적절한 크기와 책임 고려
  • 명확한 계층 구분
  • 직접적인 레포지토리 접근 지양

결론

순환 참조는 완전히 피할 수 있는 문제이며, 서비스 계층을 코어와 애플리케이션으로 분리하는 접근 방식을 통해 해결 하는 방향으로 수렴합니다.

관련 PR

👥 팀 강점

🧑‍💻 개발 일지

📌 ALL

📌 FE

📌 BE

💥 트러블 슈팅

📌 FE

📌 BE

🤔 고민

📚 학습 정리

📌 김광현

📌 백지연

📌 전희선

📌 한승헌

🤝 회의록

🗒️ 데일리 스크럼

💬 팀 회고


👨‍👩‍👧‍👦 소개

🌱 문화

🔨 기술 스택

⚙️ 서비스 아키텍쳐

🚧 CI/CD

🌊 Flow

💭 6주를 보내면서

Clone this wiki locally