docs: 6차 사이클 [E] 키바인딩 픽스 + SaaS 아키텍처 진단 추가
- project_status.md V2-6차 [E] entry 추가 - SaaS 아키텍처 진단 섹션 추가 (사용자 우려에 대한 코드 증거 정리) - 데스크톱 SaaS UX 개선 후보 3가지 명시
This commit is contained in:
parent
0d17b71866
commit
d2408c135f
1 changed files with 24 additions and 0 deletions
|
|
@ -126,6 +126,30 @@ V2 6차 고도화 (2026-04-11):
|
|||
- [B] ✅ DocumentEditor Mermaid + Markdown 렌더 — `markdown-preview.tsx` (react-markdown + remark-gfm + lazy mermaid), Edit/Preview Tabs
|
||||
- [C] ✅ 회의 오디오 재생 — `meeting-audio-player.tsx` (Storage signed URL 1h TTL → `<audio controls>`), `/meetings/[id]` AUDIO 카드
|
||||
- [D] ✅ Dashboard 14일 추이 차트 — recharts LineChart (회의/문서 수 일별 집계), 이번 주 stat 자동 계산
|
||||
- [E] 🐛 fix(desktop): macOS 단축키 표기 — `format-hotkey.ts` 신규 (플랫폼별 segment 변환). preload `electronAPI.platform` 노출. macOS는 `⌃ ⌥ ⇧ ⌘` (Apple HIG 순서) + 구분자 없음 (`⌘⇧1`), Win/Linux는 `Ctrl + Shift + 1`. SettingsModal/OnboardingModal/DashboardPage/HotkeyRecordModal 모두 `binding.displayLabel` 직접 참조 → `formatHotkeyLabel/Segments(binding)`로 교체. displayLabel split 버그(저장 시 `'+'` join, 표시 시 `' + '` split 불일치)도 함께 해소.
|
||||
|
||||
## SaaS 아키텍처 진단 (2026-04-11)
|
||||
|
||||
> 사용자 우려: "single-user로 잘못 만들어진 것 같다"
|
||||
> 결론: **잘못된 게 아님 — 100% multi-tenant SaaS로 이미 구축됨**
|
||||
|
||||
| 레이어 | 상태 |
|
||||
|---|---|
|
||||
| Supabase 스키마 | ✅ 모든 테이블에 `user_id` FK + RLS 활성화 (12 테이블) |
|
||||
| RLS 정책 | ✅ `user_id = auth.uid()` 격리 + 팀 공유 패턴 (205줄) |
|
||||
| Auth 트리거 | ✅ `handle_new_user`로 가입 시 profile + free subscription 자동 생성 |
|
||||
| Edge Functions | ✅ 10개 전부 `requireUser(req)` JWT 검증 |
|
||||
| 웹 앱 | ✅ Supabase OAuth + 미들웨어 라우트 가드 |
|
||||
| 모바일 앱 | ✅ supabase-js + Expo Push 사용자별 |
|
||||
| 결제 | ✅ Stripe + subscriptions 테이블 multi-tenant |
|
||||
| 데스크톱 | ✅ SaaS의 fat client (Notion/Linear/Slack 패턴) — OAuth 로그인 후 user별 sync |
|
||||
|
||||
**오해 가능 지점**: 데스크톱 앱은 V1 single-user 출신이라 첫 실행 시 CloudSync가 disabled. Settings에서 Supabase URL/Key + OAuth 로그인을 해야 비로소 SaaS 클라이언트로 동작. 그 이전에는 로컬 SQLite만 쓰는 single-user처럼 보임. 이건 의도된 fat client 아키텍처지만 UX 개선 여지 있음:
|
||||
|
||||
**향후 데스크톱 SaaS UX 개선 후보 (잘못된 게 아닌 향상)**
|
||||
1. 첫 실행 시 OAuth 로그인을 강제 (Notion 패턴) — 게스트 모드 분리
|
||||
2. Supabase URL/Key를 빌드 타임 환경변수로 박기 — 사용자가 직접 입력하지 않게
|
||||
3. 로컬 SQLite를 `userData/${user.id}/d3ro.db`로 사용자별 격리 — PC 공유 시 데이터 혼동 방지
|
||||
|
||||
**6차 검증**: web typecheck/dev 200, production build 15 라우트 (`dashboard` 1.6kB→111kB, `meetings/[id]` 4.8kB→55kB by chart/mermaid)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue