Skip to content

[Refactor] 서버 응답 래퍼·테스트 목 중복 정리 (CHALLANetwork 공통화) #51

Description

@k-nh

📸 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 한 곳으로 모으기

  • CHALLANetworkBaseResponseDTO, EmptyResponseDTO를 추가한다.
  • BaseResponseDTO는 성공/실패 파싱까지만 하고,
    어떤 도메인 오류를 만들지는 클로저로 호출 모듈이 넘기도록 한다.
  • 각 Data 모듈에는 unwrap() / ensureSuccess() 확장만 두고,
    기존 호출부 코드는 그대로 사용한다.

2. 테스트용 HTTP 클라이언트 한 곳으로 모으기

  • CHALLANetworkTesting 모듈을 새로 만들고,
    MockHTTPClient를 이 모듈로 옮겨 재사용한다.
  • Data 모듈의 테스트 타깃에서는 이 모듈만 의존해 공통 목을 쓴다.

3. 중복 제거 및 정리

  • 각 Data 모듈에서 기존 BaseResponseDTO / EmptyResponseDTO / MockHTTPClient 정의를 삭제한다.
  • AuthData 테스트 일부는 CapturedRequest 필드 변경에 맞게 비교 코드를 약간 수정한다.
  • 관련 주석과 MODULE.md를 "이제 CHALLANetwork 쪽 공통 코드로 사용한다"는 내용으로 갱신한다.

💬 기타 사항

  • 시점: [Feat] 설정 화면 앱 연결 · 프로필 편집 · FCM 푸시 알림 #50 머지 이후에 진행한다. NotificationData 파일과 겹치기 때문이다.
  • 레이어 규칙: CHALLANetwork는 여전히 Data 레이어에서만 import한다.
    응답 DTO는 도메인 오류 타입을 모르고, 오류 생성은 각 Data 모듈이 클로저로 넘긴다.
  • 런타임 영향: CHALLANetworkTesting은 테스트 전용 모듈이고, 앱 번들에는 포함되지 않는다.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions