daypick (데이픽)
그룹 일정을 쉽게 조율하는 PWA
Flutter WebSupabaseRiverpodCloudflare Pages
- 백엔드 서버 없이 Supabase만으로 권한 모델 설계
- PWA로 배포
문제 정의
여러 명의 가능한 시간을 모아 그룹 일정을 잡는 과정이 번거롭다는 문제를 해결하기 위해, 별도 서버 없이도 안전하게 동작하는 일정 조율 PWA를 만들었습니다.
기술적 의사결정
- 별도 백엔드 서버 없이 Supabase만으로 구성하여 운영 부담을 최소화
- 익명 로그인 + RLS(Row Level Security) 정책으로 사용자별 데이터 접근 권한을 안전하게 분리
- 초대 코드 조회는 RLS를 우회해야 하므로 SECURITY DEFINER RPC 함수로 안전하게 노출 범위를 제한
마주친 문제와 해결
문제 · 서로 다른 사용자가 초대 코드로 모임에 참여할 때, RLS 정책상 코드만으로는 해당 모임을 조회할 수 없는 문제
해결 · 조회 권한을 정의된 범위로만 여는 SECURITY DEFINER RPC 함수를 만들어, 초대 코드로 필요한 정보만 안전하게 가져오도록 설계
문제 · 날짜 비교 로직에서 발생한 버그
해결 · TODO: 날짜 비교 버그의 원인(예: 타임존/시·분 포함 비교)과 해결 방법 구체화
결과
Cloudflare Pages에 PWA로 배포해 설치 없이 바로 사용할 수 있도록 했습니다. TODO: 사용자 수·반응 등 성과 추가