Skip to content

feat: 스프린트 보드 페이지 스프린트 생성버튼 추가 / supabase db 연결 #41

Description

@Kwon812

Issue

작업 유형

  • Feat: 새로운 기능 추가
  • Fix: 버그 수정
  • Docs: 문서 수정
  • Refactor: 리팩토링
  • Design: UI/CSS 수정
  • Chore: 설정, 패키지, 기타 작업
  • Hotfix: 긴급 수정

작업 내용

  • 사이드 프로젝트 스프린트 보드(스프린트/백로그/칸반/진행률·벨로시티 차트)를 Mock에서 실제 Supabase(sprints, tasks) 연동으로 전환한다.
  • 읽기: get_sprints RPC + tasks 조회 → 매퍼 → useQuery 훅. 소비 컴포넌트는 RSC → client 전환.
  • 쓰기: 폼/DnD → useMutation(mutationFn = server action) + invalidateQueries.

작업 배경

  • 스프린트 보드는 현재 *.mock.ts 배열을 api/get-*.ts가 동기적으로 필터링해 반환하는 구조다. DB 스키마(sprints, tasks)는 준비되어 있으나 프론트가 미연결이다.
  • docs/conventions/supabase-convention.md를 기준으로 진행한다.

To Do

Epic 1. 엔티티 enum 파생 + 읽기 매퍼
Epic 2. get_sprints RPC (집계, 테이블 불변)
Epic 3. 읽기 fetch 함수 Supabase 전환
Epic 4. useQuery 훅 + 소비 컴포넌트 client 전환
Epic 5. 쓰기 경로 — server action + useMutation

완료 기준

  • 스프린트 보드/진행률 차트가 Supabase 실 데이터를 표시한다 (client + useQuery)
  • Task 생성/수정/삭제/상태변경이 server action + useMutation으로 동작하고, 성공 후 쿼리가 무효화된다
  • DB row ↔ 엔티티 변환이 매퍼에 모여 있고, UI는 snake_case 컬럼을 직접 참조하지 않는다
  • enum 타입이 GenericEnums로 파생되어 리터럴 중복 정의가 없다
  • npm run tsc(타입체크) 통과, DB 테이블 스키마 변경 없음(읽기 RPC만 추가)

참고 자료

  • 컨벤션: docs/conventions/supabase-convention.md
  • 읽기 선례: entities/workspace/api/{get-my-workspaces.ts, use-my-workspaces.ts} (fetch fn + useQuery 훅)
  • 쓰기 선례: entities/workspace/api/create-workspace.ts (server action) — 트리거는 이 이슈에서 useMutation으로 진행
  • 매퍼 선례: entities/workspace/model/{purpose.mapper.ts, workspace.db.types.ts}, shared/model/supabase.types.ts(GenericTables<>)
  • 대상: entities/side-project/{sprint,task}, views/side-project/progress-chart, features/sprint-board

예상 브랜치명

feat/#41/side-project-sprint-backend

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions