## 📸 About - `BaseResponseDTO`, `EmptyResponseDTO`, `MockHTTPClient`가 AuthData · UserData · NotificationData에 **각각 중복 구현**되어 있다. - 앞으로 Room·Photo·Chat 같은 모듈이 늘어나면 **중복이 계속 늘어날 구조**다. - 이 공통 코드를 네트워크 계층으로 **한 번만 두고**, 각 Data 모듈에서 가져다 쓰는 형태로 바꾼다. ### 지금 상태 - `BaseResponseDTO` - 구조는 같고, 실패 시 던지는 오류 타입만 다르다 (`AuthError` / `UserError` / `NotificationError`). - `EmptyResponseDTO` - 세 모듈 모두 완전히 같은 한 줄짜리 타입이다. - `MockHTTPClient` - UserData · NotificationData 쪽 구현은 같다. - AuthData 쪽만 예전 버전이라 기능이 적다. ## 🍦 TO-DO LIST ### 1. 응답 DTO 한 곳으로 모으기 - [ ] `CHALLANetwork`에 `BaseResponseDTO`, `EmptyResponseDTO`를 추가한다. - [ ] `BaseResponseDTO`는 성공/실패 파싱까지만 하고, 어떤 도메인 오류를 만들지는 **클로저로 호출 모듈이 넘기도록** 한다. - [ ] 각 Data 모듈에는 `unwrap()` / `ensureSuccess()` 확장만 두고, 기존 호출부 코드는 그대로 사용한다. ### 2. 테스트용 HTTP 클라이언트 한 곳으로 모으기 - [ ] `CHALLANetworkTesting` 모듈을 새로 만들고, `MockHTTPClient`를 이 모듈로 옮겨 재사용한다. - [ ] Data 모듈의 테스트 타깃에서는 이 모듈만 의존해 공통 목을 쓴다. ### 3. 중복 제거 및 정리 - [ ] 각 Data 모듈에서 기존 `BaseResponseDTO` / `EmptyResponseDTO` / `MockHTTPClient` 정의를 삭제한다. - [ ] AuthData 테스트 일부는 `CapturedRequest` 필드 변경에 맞게 비교 코드를 약간 수정한다. - [ ] 관련 주석과 `MODULE.md`를 "이제 CHALLANetwork 쪽 공통 코드로 사용한다"는 내용으로 갱신한다. ## 💬 기타 사항 - **시점**: #50 머지 이후에 진행한다. NotificationData 파일과 겹치기 때문이다. - **레이어 규칙**: CHALLANetwork는 여전히 Data 레이어에서만 import한다. 응답 DTO는 도메인 오류 타입을 모르고, 오류 생성은 각 Data 모듈이 클로저로 넘긴다. - **런타임 영향**: `CHALLANetworkTesting`은 테스트 전용 모듈이고, 앱 번들에는 포함되지 않는다.
📸 About
BaseResponseDTO,EmptyResponseDTO,MockHTTPClient가AuthData · UserData · NotificationData에 각각 중복 구현되어 있다.
각 Data 모듈에서 가져다 쓰는 형태로 바꾼다.
지금 상태
BaseResponseDTO(
AuthError/UserError/NotificationError).EmptyResponseDTOMockHTTPClient🍦 TO-DO LIST
1. 응답 DTO 한 곳으로 모으기
CHALLANetwork에BaseResponseDTO,EmptyResponseDTO를 추가한다.BaseResponseDTO는 성공/실패 파싱까지만 하고,어떤 도메인 오류를 만들지는 클로저로 호출 모듈이 넘기도록 한다.
unwrap()/ensureSuccess()확장만 두고,기존 호출부 코드는 그대로 사용한다.
2. 테스트용 HTTP 클라이언트 한 곳으로 모으기
CHALLANetworkTesting모듈을 새로 만들고,MockHTTPClient를 이 모듈로 옮겨 재사용한다.3. 중복 제거 및 정리
BaseResponseDTO/EmptyResponseDTO/MockHTTPClient정의를 삭제한다.CapturedRequest필드 변경에 맞게 비교 코드를 약간 수정한다.MODULE.md를 "이제 CHALLANetwork 쪽 공통 코드로 사용한다"는 내용으로 갱신한다.💬 기타 사항
응답 DTO는 도메인 오류 타입을 모르고, 오류 생성은 각 Data 모듈이 클로저로 넘긴다.
CHALLANetworkTesting은 테스트 전용 모듈이고, 앱 번들에는 포함되지 않는다.