Skip to content

[feat] 큐레이션 스펙 version 기반 브라우저 캐시 적용 - #92

Merged
hyejj19 merged 2 commits into
mainfrom
feat/curation-spec-browser-cache
Jul 25, 2026
Merged

[feat] 큐레이션 스펙 version 기반 브라우저 캐시 적용#92
hyejj19 merged 2 commits into
mainfrom
feat/curation-spec-browser-cache

Conversation

@bottlenote-app

Copy link
Copy Markdown
Contributor

PR 제목 (Title)

[feat] 큐레이션 스펙 version 기반 브라우저 캐시 적용

관련 이슈

변경 사항 (Changes)

  • 큐레이션 스펙 manifest와 상세 schema를 관리자 범위 localStorage에 저장했습니다.
  • 목록 API의 id/version/isActive를 1시간 단위·탭 재포커스 시 재검증해 version 변경 또는 inactive 스펙의 상세 cache를 제거합니다.
  • specId + version detail query key와 cache hit를 적용해 동일 version의 상세 API 호출을 생략합니다.
  • 작성 form model이 canonical 목록 query를 재사용하도록 변경해 중복 목록 요청을 제거했습니다.
  • malformed/만료 browser cache와 storage 접근 실패 시 API 조회로 안전하게 fallback합니다.

변경 이유 (Reason for Changes)

큐레이션 스펙은 자주 변경되지 않지만 작성 화면 진입마다 상세 JSON schema를 재조회하고 있었습니다. 목록 API의 version manifest를 기준으로 상세 schema만 선택적으로 갱신해 재조회 비용을 줄이고, 변경 정합성은 유지합니다.

테스트 방법 (Test Procedure)

  • pnpm test:run — 43 files, 316 tests 통과
  • 변경 파일 scoped ESLint 통과
  • pnpm build:dev 통과
  • git diff --check 통과
  • cache hit, version 변경, inactive 제거, cache miss 저장, canonical 목록 query 재사용을 unit/hook test로 검증

참고 사항 (Additional Information)

  • 전역 pnpm lint는 현재 main에도 포함된 e2e/common/page 파일의 기존 ESLint 오류로 실패합니다. 이 PR 변경 파일 scoped lint는 통과했습니다.
  • local Playwright Chromium executable이 없어 인증된 dev 브라우저 동선은 실행하지 못했습니다. 로컬 dev 서버 HTTP 200 및 로그인 화면 렌더는 확인했습니다.
  • 토큰·개인정보·작성 데이터는 browser cache에 저장하지 않습니다.

…owser-cache

# Conflicts:
#	src/pages/curation/useCurationSpecFormModel.ts
@hyejj19
hyejj19 merged commit 3a13e94 into main Jul 25, 2026
2 checks passed
@hyejj19
hyejj19 deleted the feat/curation-spec-browser-cache branch July 25, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant