Skip to content

refactor: 공통 API layer 강화 및 프로필·리뷰 TanStack Query 구조 정리#85

Closed
MintPansy wants to merge 6 commits into
developfrom
feature/api-layer-query-setup
Closed

refactor: 공통 API layer 강화 및 프로필·리뷰 TanStack Query 구조 정리#85
MintPansy wants to merge 6 commits into
developfrom
feature/api-layer-query-setup

Conversation

@MintPansy
Copy link
Copy Markdown
Contributor

📝 개요

공통 API 호출(/api/v1, access token, URL 조립, 응답 { data } 처리)을 shared/lib/api로 정리하고, MSW 핸들러를 동일 계약에 맞게 조정했습니다. 이어서 미구현이었던 리뷰 공감(리액션) 코드를 제거하고, 프로필·리뷰 영역의 TanStack Query(queryKey, 무효화 헬퍼 등)를 정돈했습니다.

커밋 근거

  • eec82c7 — 공통 API layer 및 fetcher·MSW 정렬
  • c620983 — 공감 제거, 프로필·리뷰 쿼리/뮤테이션 구조 정리 및 throwNotImplemented 헬퍼 추가

※ 로그인 직후 앱 트리에 프로필 쿼리를 붙이는 작업(캐싱 3단계)은 포함하지 않습니다.


🔗 관련 이슈


🛠️ 변경 사항 (Checklist)

  • ✨ Feature: 새로운 기능 추가
  • 🚀 Enhancement: 기존 기능 개선/성능 향상 (공통 클라이언트·토큰·MSW 일관성)
  • 🐞 Bug: 버그 수정
  • ♻️ Refactor: 코드 구조 개선 (기능 변화 없음)
  • 🏗️ Chore: 빌드/패키지 설정/단순 잡일
  • 🎨 Design: UI/UX 스타일 수정
  • 📚 Documentation: 문서 수정

✅ 아래 내용을 한 번 더 점검해 주세요

1. 의도와 가독성 (Naming & Readability)

  • 의도 중심 네이밍
  • 선언적 코드
  • 주석

2. 타입과 논리 (Type Safety & Logic)

  • 타입 안전성
  • 엣지 케이스 (빈 바디·ApiError 등 클라이언트 측)
  • 하드코딩 방지 (base path·URL 조립·토큰 헬퍼로 집중)

3. 코드 다이어트 (Clean-up)

  • 찌꺼기 제거
  • 불필요한 코드 (미구현 공감 플로우 제거)
  • Linter

4. 지속 가능성 (Sustainability)

  • 테스트: 로컬 빌드/린트 및 dev+MSW 기준 API 스모크 가능 범위 확인
  • 문서화: 환경변수·실서버 origin 규칙이 정해지면 README 보강 예정

💭 회고 (Optional)

백엔드에 없는 엔드포인트는 제거하고 shared/lib/not-implemented.ts로 “잘못된 확장” 방지 패턴을 두었습니다. 프로필 prefetch·enabled 전략은 다음 PR에서 다룹니다.

@MintPansy MintPansy self-assigned this May 10, 2026
@MintPansy MintPansy closed this May 21, 2026
@MintPansy
Copy link
Copy Markdown
Contributor Author

API layer는 #90 등으로 develop에 반영됨. 브랜치 구조가 달라 재머지 비용이 커서 이 PR은 닫습니다.

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.

[refactor] 공통 API layer + Profile TanStack Query 레이어 (1·2번 범위)

1 participant