개요
apiClient의 코드 중복과 네이티브 WebView 브릿지 인증 동기화 누락을 개선합니다.
문제
sendRequest와 sendRequestWithoutRetry가 URL 빌드, 헤더 구성, timeout 처리 등 거의 동일한 로직을 복사하고 있어 유지보수 부담
- refresh 토큰 deduplication이
client.ts와 auth/index.ts 두 곳에서 이중 관리
clearAuth()만 호출하는 경로(회원탈퇴, 알림 스트림 등)에서 네이티브에 LOGOUT 미통보 → 웹/네이티브 상태 불일치
parseResponse에서 JSON 파싱 실패 시 {} 반환 → 호출자가 T 타입으로 신뢰하고 접근할 때 엉뚱한 곳에서 런타임 에러 발생
- 네이티브 브릿지 메시지 전송이 여러 파일에 산재하여 포맷 변경 시 수정 지점 분산
작업 내용
개요
apiClient의 코드 중복과 네이티브 WebView 브릿지 인증 동기화 누락을 개선합니다.문제
sendRequest와sendRequestWithoutRetry가 URL 빌드, 헤더 구성, timeout 처리 등 거의 동일한 로직을 복사하고 있어 유지보수 부담client.ts와auth/index.ts두 곳에서 이중 관리clearAuth()만 호출하는 경로(회원탈퇴, 알림 스트림 등)에서 네이티브에 LOGOUT 미통보 → 웹/네이티브 상태 불일치parseResponse에서 JSON 파싱 실패 시{}반환 → 호출자가 T 타입으로 신뢰하고 접근할 때 엉뚱한 곳에서 런타임 에러 발생작업 내용
sendRequest/sendRequestWithoutRetry→allowRetry파라미터로 하나의 함수로 통합client.ts의 모듈 스코프refreshPromise제거 (auth/index.ts dedup에 위임)postNativeMessage유틸 추출 및 모든 브릿지 호출 통일clearAuth()내부에 LOGOUT 브릿지 전송 중앙화initialize()refresh 실패 경로도clearAuth()경유하도록 통일parseResponseJSON 파싱 실패 시 ApiError로 래핑, 204 명시 처리