[FEATURE]: 공통 타입 정의, Query Client 설정, 개발 툴체인 구성 - #17
Merged
Conversation
- Align shared types with server response format (ApiResponse, ErrorCode, CursorPageMeta, etc.) - Configure TanStack Query client and provider - Fix axios baseURL to respect VITE_API_BASE_URL - Add GitHub Actions CI with test/coverage reports on PRs - Add husky + lint-staged pre-commit hook - Add steiger for FSD architecture linting - Register @tanstack/eslint-plugin-query in ESLint
13 tasks
Coverage Report
File Coverage
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 관련 이슈 (Related Issues)
✨ 변경 사항 (Changes)
공통 타입 정의
ApiResponse<T>래퍼,ExceptionDto,FieldErrorDto를 서버 스펙에 맞게 재정의ErrorCode상수 (GEN / JWT / SEC / USER / POST / COMMENT / MERCHANT / CATEGORY)CursorPageMetaNullable<T>,Optional<T>유틸리티 타입 분리TanStack Query 설정
QueryClient인스턴스 (staleTime1분,retry1회,refetchOnWindowFocus비활성)QueryProvider를 앱 루트에 마운트axios 환경변수 연동
baseURL을 하드코딩에서VITE_API_BASE_URL ?? "/api"로 변경GitHub Actions CI 파이프라인
lint/test/build3개 job 병렬 실행 (lint통과 후build실행)dorny/test-reporter로 테스트별 통과/실패 + 스택트레이스 표시davelosert/vitest-coverage-report-action으로 변경 파일 커버리지 delta 자동 게시concurrency설정으로 동일 PR 이전 실행 자동 취소npm audit --audit-level=critical보안 감사 포함개발 툴체인
husky+lint-staged: pre-commit 시 staged 파일 ESLint + Prettier 자동 실행steiger: FSD 레이어 import 규칙 위반 정적 분석 (npm run lint:arch)@tanstack/eslint-plugin-query: ESLint에 TanStack Query 규칙 활성화no-consoleESLint 규칙 추가 (warn/error는 허용)📸 변경 사항 확인 (선택)
UI 변경 없음. CI 파이프라인 실행 결과는 이 PR의 Checks 탭 및 코멘트에서 확인 가능합니다.
axios 인터셉터 미구현
JWT 토큰 주입 및 401 → refresh 처리 인터셉터가 없습니다. 인증 기능 구현 시 별도 이슈로 추가해야 합니다.
steiger
minimatch취약점 (devDependency)@feature-sliced/steiger-plugin의존성 체인에 ReDoS(high) 취약점이 존재합니다. 프로덕션 번들에는 포함되지 않으며, upstream 수정 전까지 CI는--audit-level=critical로 운영합니다.💬 리뷰 포인트 (선택)
src/shared/types/— 서버 스펙과의 타입 일치 여부.github/workflows/ci.yml— job 구성 및 리포터 설정이 요구사항에 맞는지steiger.config.ts—src/mocks/**제외 처리가 적절한지🔗 참고 사항 (선택)