허용 가능한 중복과 멀티 모듈 설계의 균형

coldrice99·2024년 12월 3일
0
post-thumbnail

1. 허용 가능한 중복이란?

허용 가능한 중복은 도메인별 요구사항이나 특수성 때문에 모듈 간 유사한 코드가 반복되지만, 이를 완전히 제거하지 않고 설계의 유연성을 위해 일부 중복을 허용하는 접근 방식이다.


2. 왜 중복이 발생할까?

  1. 도메인별 요구사항의 차이

    • 각 API(User, Boss, Admin)의 비즈니스 로직이 다름.
    • 예: User API는 간단한 검증, Admin API는 복잡한 인증과 권한 확인.
  2. 모듈의 독립성 유지

    • 모든 로직을 Core에 몰아넣으면 과도한 의존성으로 수정 시 영향 범위가 커짐.
    • 각 API는 독립적으로 동작해야 함.
  3. 중복 제거의 비용

    • 중복을 완전히 제거하려 하면 복잡한 추상화로 인해 코드 가독성과 유지보수성이 저하될 수 있음.

3. 허용 가능한 중복의 예시

1) 데이터 검증

  • User API는 간단한 이메일/비밀번호 검증.
  • Admin API는 관리자 전용 키와 권한 검증 추가.
    → 공통 부분은 재사용하되, 도메인별 검증은 각 모듈에서 구현.

2) 응답 포맷

  • 공통 응답 포맷(ApiResponse)은 Core에서 제공.
  • 도메인별 데이터 구조나 메시지 차이는 API 모듈에서 처리.

4. 중복 제거와 허용 중복의 균형

  1. 중복 제거

    • 공통 로직(예: 예외 처리, 공통 응답 포맷 등)은 Core 모듈에 배치.
  2. 허용 중복

    • 도메인별 요구사항이 다른 경우 각 API 모듈에서 구현.
    • 필요 이상의 일반화는 피하고, 특화 로직은 분리.

5. 결론

모든 중복을 제거하려는 시도는 설계를 복잡하게 만들 수 있다.
공통 로직은 Core에서 관리하되, 도메인별 요구사항은 API 모듈에서 처리하도록 설계 균형을 맞추는 것이 중요하다.
필요한 중복은 프로젝트의 유연성과 유지보수성을 보장하는 데 기여할 수 있다.

profile
서두르지 않으나 쉬지 않고

0개의 댓글