서버 요청 실패에도 클라이언트 로그아웃을 완료한 처리
2026.10.04 · 1분
개요
| 항목 | 내용 |
|---|---|
| 유형 | 예방 조치 |
| 시점 | 플러스팟 비즈 신규 개발 과정 |
| 상태 | 로그아웃 처리 구현 |
| 관련 영역 | 계정·토큰, 가입 심사 상태, 잔액, 조회 캐시, 약관 상태 |
| 나의 역할 | 클라이언트 로그아웃 처리 방식 결정·구현 |
1. 상황과 제약
플러스팟 비즈는 로그인한 계정, 토큰, 가입 심사 상태를 들고 있었고, 광고비 잔액과 서버에서 받아 온 데이터를 화면에 보여 줬습니다.
로그아웃하면 서버에도 요청을 보냅니다. 그런데 이 요청이 실패해도 사용자는 이미 로그아웃을 누른 상태입니다. 클라이언트 정리를 서버 요청이 성공했을 때만 하면, 실패했을 때 계정과 토큰이 그대로 남을 수 있었습니다.
2. 검토와 판단
그래서 서버 요청 결과와 상관없이 클라이언트에서는 로그아웃을 끝내기로 했습니다. 로그아웃을 누르면 브라우저에 남은 로그인 정보를 지우고, 사용자가 보는 로그아웃 흐름은 서버 응답에 따라 바뀌지 않게 했습니다.
계정과 토큰에 더해 로그인한 사용자에 딸린 상태도 같이 지웠습니다.
| 대상 | 처리 |
|---|---|
| 계정·토큰·추가 토큰·심사 상태 | 서버 요청 성공·실패 양쪽에서 제거 |
| 광고비 잔액 | 캐시 스토어 초기화 |
| 서버 조회 데이터 | TanStack Query의 조회 캐시 정리 |
| 약관 상태 | 약관 스토어 초기화 |
3. 실행과 조율
로그아웃 함수에서 서버 API를 부르고, 성공 처리와 실패 처리 양쪽 모두에서 계정·토큰·추가 토큰·심사 상태를 지우게 했습니다.
그다음 공통 정리 단계에서 잔액 스토어와 조회 캐시를 비우고 후속 처리용 콜백을 실행했습니다. 약관 스토어도 이때 같이 초기화했습니다.
이 방식은 제가 정해서 플러스팟 비즈의 로그아웃 로직에 넣었습니다.
4. 결과와 확인
서버 로그아웃 요청이 실패해도 클라이언트에는 계정, 토큰, 심사 상태가 남지 않습니다. 잔액, 조회 캐시, 약관 상태도 로그아웃할 때 함께 비워집니다.