프론트 화면 상태와 Nest API 계약은 같은 실패 지점을 가리켜야 한다
통합은 HTTP 응답을 받는 데서 끝나지 않습니다. DTO shape, 인증 갱신, CORS, error code, loading 상태가 React 화면과 Nest 로그에서 같은 언어로 추적되어야 합니다.
React 쪽 준비
base URL, 공통 fetch wrapper, timeout, retry 기준을 API 계약과 맞춘다.
token 저장 위치와 refresh 실패 화면을 서버의 401/403 응답과 연결한다.
loading, empty, success, error 상태가 DTO와 error code를 그대로 표현해야 한다.
NestJS 계약
request/response field, optional 값, validation error shape를 문서와 테스트에 고정한다.
preflight, credentials, allowed headers가 브라우저 요청 조건과 맞아야 한다.
exception filter가 code, message, traceId를 같은 envelope로 내려야 한다.
불일치 증거
브라우저 network trace로 CORS, status, response body를 화면 상태와 대조한다.
schema 변경은 contract test와 type generation 실패로 먼저 드러나야 한다.
frontend error log와 Nest request log가 traceId로 묶이면 원인을 좁힐 수 있다.
로그인 후 protected route 진입, API 성공 응답, realtime update가 같은 상태표로 이어진다.
CORS, 401/403, DTO 변경, WebSocket 재연결 실패를 각각 브라우저에서 재현한다.
frontend error log, API error rate, contract test 결과를 traceId로 묶는다.
프로젝트 통합 점검
질문: API 응답 shape, token 갱신, CORS 설정이 브라우저 trace와 일치하는가
순서: API client 준비 -> DTO 매핑 -> 인증/CORS 실패 재현 -> contract test
위험: 서버 테스트만 통과하면 실제 화면의 401/403 처리와 DTO drift를 늦게 발견한다.