01 · Problem
전형 결과와 현재 단계가 화면마다 어긋날 수 있었고, 상세 수정마다 전체 재조회가 발생해 변경 범위보다 큰 요청 비용이 생겼습니다.
채용 공고, 지원 단계, 일정, 알림을 하나의 PWA 흐름으로 묶은 취업 준비 대시보드
전형 결과와 현재 단계가 화면마다 어긋날 수 있었고, 상세 수정마다 전체 재조회가 발생해 변경 범위보다 큰 요청 비용이 생겼습니다.
Frontend · 지원 단계 동기화 규칙과 수정 유형별 TanStack Query 캐시 갱신 전략을 설계하고 PWA 알림 권한 흐름을 분리했습니다.
timelineSyncRules를 UI 밖으로 분리하고, 안전한 변경은 setQueryData로 반영하며 서버 재생성이 필요한 변경만 invalidateQueries로 처리했습니다.
서버 데이터는 TanStack Query, 입력·필터 상태는 Zustand, 인증 전달과 API 응답 규칙은 Next.js Route Handler 기반 BFF로 분리했습니다.
상세 수정 후 전체 refetch를 1→0회로 줄였고, 서버 재생성이 필요한 변경만 invalidateQueries로 재검증했습니다.
setQueryData로 반영했습니다.timelineSyncRules로 단계 동기화 규칙을 분리해 상태 계산을 UI 밖으로 빼냈습니다.setQueryData로 변경된 필드만 반영하고, 파일 URL처럼 서버 재생성이 필요한 케이스만 invalidateQueries로 분기했습니다.useInfiniteQuery와 IntersectionObserver를 조합하고 필터 조건을 queryKey에 포함했습니다.1회 대신 변경 필드만 캐시에 반영해 불필요한 재요청을 0회로 줄였습니다.iOS Safari / standalone PWA / 일반 브라우저 / 권한 거부 상태로 분기했습니다.