API state machine

요청은 loading에서 data 또는 error로 갈라진다

API 화면은 성공 목록 하나가 아니라 요청 중, 실패, 빈 결과, 성공 화면을 명시적으로 나누어야 멈춘 화면처럼 보이지 않는다.

request

요청 시작

컴포넌트가 필요한 데이터를 요청하고 이전 오류를 비운다.

setLoading(true)
loading

대기 화면

버튼을 잠그고 스켈레톤으로 공간을 유지한다.

disabled + skeleton

data

응답이 있으면 목록, 상세, 작성 결과를 최신 데이터로 그린다.

error

서버 오류나 네트워크 실패는 원인 메시지와 재시도 버튼을 보여준다.

empty

성공했지만 데이터가 없으면 빈 상태 안내와 다음 행동을 둔다.

목록 화면

불러온 뒤에도 다시 검증

생성·삭제 후에는 목록을 다시 불러오거나 캐시를 갱신한다.

상세 화면

없는 ID는 오류가 아니다

404나 빈 응답을 별도 상태로 표현해야 사용자가 길을 잃지 않는다.

작성 폼

제출 중 중복 방지

loading 동안 버튼을 잠그고 성공 후 이동 또는 목록 갱신을 연결한다.