Open
Conversation
프로젝트 아키텍처(FSD)와 인증/투표 API 명세를 문서화합니다. 신규 개발자 온보딩 및 API 계약 공유를 위해 CLAUDE.md에 문서 링크를 추가합니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tions 여러 feature에서 재사용 가능한 기반 레이어를 구성합니다. - base/api: Axios 인스턴스(credentials, JSON 헤더 기본값) - base/ui/Modal: 포탈 기반 모달(포커스 트랩, 스크롤 락, 진입/퇴출 애니메이션) - base/ui/Spinner: 로딩 상태 표시 컴포넌트 - global CSS: Modal 전용 keyframe 애니메이션 추가 - lock.svg: 잠금 콘텐츠 UI용 아이콘 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
투표 결과 인사이트(성별/연령대 분포)에서 로그인 사용자 정보를 활용하기 위해 인증 기능의 기반 계층을 구성합니다. - model/types.ts: User 인터페이스(닉네임, 성별, 생년월일, 상태 등) - api/userQuery.ts: GET /api/users/me TanStack Query 훅 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
투표 상세 페이지에 필요한 데이터 계층 전체를 구성합니다.
타입:
- model/types.ts: VoteDetail, VoteOption, EmojiType 등 도메인 타입
- model/resultTypes.ts: VoteResult, InsightUnlocked/InsightLocked 타입
비즈니스 로직:
- model/useVoteDetail.ts: 상세 조회 + 참여/취소/이모지 뮤테이션 통합 훅
- model/voteDetailUtils.ts: 남은 시간 계산, 옵션 정렬 등 순수 유틸
API:
- api/voteDetailQuery.ts: GET /api/votes/{voteId}
- api/voteResultQuery.ts: GET /api/votes/{voteId}/result
- api/voteParticipate.ts: POST/DELETE 투표 참여·취소
- api/voteEmoji.ts: PUT 이모지 반응
- api/mock*.ts: 개발용 목업 데이터
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
투표 상세 페이지를 구성하는 UI 컴포넌트 계층입니다. 컴포넌트 구조 (VoteDetailPage가 최상위 조합): - VoteHeader: 뒤로가기 / 제목 / 공유 버튼 - VoteContent: 투표 제목, 작성 시각, 본문, 썸네일 - VoteOptionsSection: 옵션 선택 + VoteBar(퍼센트 시각화) - VoteReactionBar: LIKE·SAD·ANGRY·WOW 이모지 반응 - VoteTimeRemaining: 마감까지 남은 시간 - VoteInsightSection: 투표 종료 후 성별/연령대 분포 분석 - LockedContentOverlay: 인사이트 잠금 해제 유도 오버레이 함께 수정: - base/ui/AgeBarChart: isPrimary → isMyGroup으로 변수명 변경 (현재 사용자의 연령대 그룹을 강조하는 의미를 명확히 표현) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TanStack Router 파일 기반 라우팅에 페이지를 연결합니다. - /home → HomePage - /votes/:voteId → VoteDetailPage (voteId 파라미터 전달) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collaborator
Author
Code reviewFound 1 issue:
VS-4th-Client/src/features/votes/model/useVoteDetail.ts Lines 47 to 51 in 7e78b48 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
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.
Summary
투표 상세 페이지(
/votes/:voteId) 구현에 필요한 전체 스택을 추가합니다.FSD 아키텍처 계층 순서대로 6개 커밋으로 구성했습니다.
Commit Structure
docsbase infraauth featureGET /api/users/meTanStack Query 훅votes model & APIvotes UIisPrimary → isMyGroup변경routingKey Changes
Test plan
/votes/:voteId진입 시 투표 상세 데이터 정상 표시pnpm build빌드 성공pnpm lintBiome 통과🤖 Generated with Claude Code