1. 허용 가능한 중복이란?
허용 가능한 중복은 도메인별 요구사항이나 특수성 때문에 모듈 간 유사한 코드가 반복되지만, 이를 완전히 제거하지 않고 설계의 유연성을 위해 일부 중복을 허용하는 접근 방식이다.
2. 왜 중복이 발생할까?
-
도메인별 요구사항의 차이
- 각 API(User, Boss, Admin)의 비즈니스 로직이 다름.
- 예: User API는 간단한 검증, Admin API는 복잡한 인증과 권한 확인.
-
모듈의 독립성 유지
- 모든 로직을 Core에 몰아넣으면 과도한 의존성으로 수정 시 영향 범위가 커짐.
- 각 API는 독립적으로 동작해야 함.
-
중복 제거의 비용
- 중복을 완전히 제거하려 하면 복잡한 추상화로 인해 코드 가독성과 유지보수성이 저하될 수 있음.
3. 허용 가능한 중복의 예시
1) 데이터 검증
- User API는 간단한 이메일/비밀번호 검증.
- Admin API는 관리자 전용 키와 권한 검증 추가.
→ 공통 부분은 재사용하되, 도메인별 검증은 각 모듈에서 구현.
2) 응답 포맷
- 공통 응답 포맷(
ApiResponse
)은 Core에서 제공.
- 도메인별 데이터 구조나 메시지 차이는 API 모듈에서 처리.
4. 중복 제거와 허용 중복의 균형
-
중복 제거
- 공통 로직(예: 예외 처리, 공통 응답 포맷 등)은 Core 모듈에 배치.
-
허용 중복
- 도메인별 요구사항이 다른 경우 각 API 모듈에서 구현.
- 필요 이상의 일반화는 피하고, 특화 로직은 분리.
5. 결론
모든 중복을 제거하려는 시도는 설계를 복잡하게 만들 수 있다.
공통 로직은 Core에서 관리하되, 도메인별 요구사항은 API 모듈에서 처리하도록 설계 균형을 맞추는 것이 중요하다.
필요한 중복은 프로젝트의 유연성과 유지보수성을 보장하는 데 기여할 수 있다.