Zustand auth

인증 스토어는 idle, loading, authenticated, logout으로 전이된다

login, fetchUser, logout 액션은 user와 token의 신뢰 상태를 함께 바꾼다.

idle
user 없음, token 없음
loading
API 요청 중, 버튼 비활성화
authenticated
user와 accessToken 보관
refreshing
토큰으로 현재 사용자 재확인
logged out
상태 삭제 후 로그인 전으로 복귀
액션상태 변화
login/registeridle → loading → authenticated
fetchUsertoken 있음 → refreshing → authenticated 또는 logout
error요청 실패 시 error를 보이고 신뢰 상태를 낮춤

핵심 UI 분기는 액션 이름보다 현재 인증 상태가 무엇인지로 결정된다.