MatchA — 개발 일지
1기 — 기반 재시작 (1/19~1/30)
Feature-Sliced Design 아키텍처로 클린 슬레이트 재시작("rezero").
- 1/19프로젝트 시작
- 1/26~27FSD 레이어 구조 도입, 클린 슬레이트 재작성
- 1/30tRPC·Drizzle·인증·DB 스키마 셋업, 로그인/회원가입
2기 — 워크스페이스 & 캘린더 골격 (2월)
계층형 워크스페이스와 캘린더 트리를 세운 구간.
- 2/5~9DB 스키마, 캘린더·일정(promise), 소켓 기반 실시간
- 2/15~16드래그로 일정 생성, 반복 일정(RRULE)
- 2/19~23FSD 리팩터, 워크스페이스 사이드바, 그룹·멤버 권한, 초대. 폴더/캘린더 재귀 트리 + 상위 폴더 일정의 하위 전파
3기 — 일정 조율 & 외부 연동 (3월~4월 초)
- 3월권한·캐싱, UI/UX 개선
- 4/7~8When2Meet·시간투표 일정 조율, 게스트 모드(비로그인 참여), Google 캘린더 연동, 모바일/태블릿 인터랙션
- 4/9동일 계정 다중 WebSocket 연결 충돌 수정
4기 — 자체 배포 (4월 초)
- 4/5~6Rocky Linux 배포 스크립트, standalone 빌드. 가비아 VM에 Docker PostgreSQL + 자체 WebSocket 서버 + Better Auth로 운영
5기 — Vercel + Supabase 마이그레이션 (5/21~5/24)
상주 프로세스에 의존하던 자체 VM 구성을 서버리스로 옮기며 실시간·인증 계층을 통째로 재작성.
- 5/21ESLint flat config 전환, DB를 Supabase 풀러로, 자체 WS 서버 삭제 → Supabase Realtime Broadcast, 백그라운드 작업을 Next 16 after()로
- 5/22Better Auth → Supabase Auth 전면 마이그레이션, Vercel 함수 서울 리전 고정, 게스트 제출 인증 강화, 프로덕션 배포
- 5/23v0.2.0 — Google Calendar OAuth 보안 재작성, refresh token AES-256-GCM 암호화
- 5/23릴리스 직후 정리 — 게스트 조율 뷰에서 비공개 설정인데도 중간 결과가 보이던 버그 수정, 비로그인 게스트 데이터 pg_cron 일일 정리 잡, ESLint 잔여 위반 일괄 정리
- 5/24Google OAuth 앱 검증 통과 — 1차 반려 사유였던 동의 화면 'MatchAll' vs 홈페이지 'MatchA' 표기 불일치를 'MatchA'로 통일해 재제출, 100명 상한 해제 + '확인되지 않은 앱' 경고 해소
워크스페이스 트리 ──▶ 일정 조율 ──▶ 외부 캘린더 ──인프라 이전──▶ Vercel + Supabase 계층형 캘린더 When2Meet Google 양방향 자체 VM → 서버리스
현재: Vercel + Supabase로 이전 완료, v0.2.0 배포. 베타 운영 중.
상주 WebSocket 서버와 배포 스크립트에 묶여 있던 구조를 서버리스로 걷어내며, 실시간과 인증을 관리형 서비스 위에 다시 올렸다.