# Issue ## 작업 유형 - [x] Feat: 새로운 기능 추가 ## 작업 내용 - `get_my_workspaces` / `create_workspace` RPC 함수 생성 (마이그레이션) - 내 워크스페이스 목록(`/workspaces`) 조회를 mock → **tanstack-query(useQuery) + RPC**로 전환 - 워크스페이스 생성(`/workspaces/new`)을 mock → **server action + RPC**로 전환 - 데이터 페칭 컨벤션 확립 및 문서화: **GET = tanstack-query, 쓰기(POST성) = server action** ## 작업 배경 - Supabase 스키마·시드·타입 시스템 셋업 완료(#30)로 실데이터 연동 준비가 끝남 - 중간 발표(7/15) 전 실데이터 데모를 위해 지호님 담당 도메인(워크스페이스)부터 백엔드 연결 - GET/쓰기 경로 패턴을 먼저 확립해 다른 도메인 팀원들이 따라갈 기준 구현을 만듦 ## To Do - [x] Supabase 클라이언트 셋업 (`@supabase/ssr` 기반 browser/server 클라이언트, env 설정) - [x] `get_my_workspaces(p_user_id)` RPC 마이그레이션 (member/task count·progress 집계) - [x] `create_workspace(p_user_id, ...)` RPC 마이그레이션 (workspaces + owner 멤버십 + purpose별 모듈 트랜잭션, invite_code 생성) - [x] `npm run gen:types` 재생성 → RPC 타입 반영 - [x] 목록 조회: `useQuery`로 전환 (QueryClientProvider 셋업 포함) - [x] 생성: server action으로 전환 (성공 시 목록 캐시 무효화) - [x] 데이터 페칭 컨벤션 문서화 (`docs/conventions` + `.agents`) - [x] CodeRabbit 리뷰 반영 — 에러 응답 일반화 · 생성 실패 토스트(sonner) · purpose 매핑 가드 (p_user_id 보류 2건은 auth 연동 시 컨벤션 문서 기준으로 일괄 처리) ## 완료 기준 - [x] `/workspaces`가 시드 데이터(워크스페이스 3개)를 DB에서 렌더 - [x] 생성 플로우로 만든 워크스페이스가 DB에 실제 생성되고 목록에 반영 - [ ] `npm run check` 통과 ## 참고 자료 - docs/conventions/supabase-convention.md (쓰기 경로 규칙·RPC p_user_id 임시 규칙) - 테스트 계정: test1~test5@test.com / test1234! (user_id `...0001`~`...0005`) ## 예상 브랜치명 ```txt feat/#issue-number/workspace-backend ```
Issue
작업 유형
작업 내용
get_my_workspaces/create_workspaceRPC 함수 생성 (마이그레이션)/workspaces) 조회를 mock → tanstack-query(useQuery) + RPC로 전환/workspaces/new)을 mock → server action + RPC로 전환작업 배경
To Do
Supabase 클라이언트 셋업 (
@supabase/ssr기반 browser/server 클라이언트, env 설정)get_my_workspaces(p_user_id)RPC 마이그레이션 (member/task count·progress 집계)create_workspace(p_user_id, ...)RPC 마이그레이션 (workspaces + owner 멤버십 + purpose별 모듈 트랜잭션, invite_code 생성)npm run gen:types재생성 → RPC 타입 반영목록 조회:
useQuery로 전환 (QueryClientProvider 셋업 포함)생성: server action으로 전환 (성공 시 목록 캐시 무효화)
데이터 페칭 컨벤션 문서화 (
docs/conventions+.agents)CodeRabbit 리뷰 반영 — 에러 응답 일반화 · 생성 실패 토스트(sonner) · purpose 매핑 가드 (p_user_id 보류 2건은 auth 연동 시 컨벤션 문서 기준으로 일괄 처리)
완료 기준
/workspaces가 시드 데이터(워크스페이스 3개)를 DB에서 렌더npm run check통과참고 자료
test5@test.com / test1234! (user_id...0001...0005)예상 브랜치명