공치고썸타고 — 작업 보고 (2026-06-16)
작업: 카카오 로그인 심사 대기 중 "다른 거" — 앱 전반 QA(버그 헌팅) 및 안전 수정. 자율 진행([[gongsome-feedback-autonomy]]).
■ 진행률 : QA 1라운드 완료 · 확정 버그 1건 수정·배포
■ 완료 : 푸시 토큰 로그아웃 정리(공용기기 알림 오발송 방지) — 수정·tsc통과·OTA 배포
■ 진행 중 : QA 결과 사용자 검토 대기(아래 정책/저위험 2건)
■ 다음 작업 : 사용자 지시(차단 정책 결정 / 추가 QA 라운드 / 카카오 심사 후 복귀)
■ BLOCKED : 카카오 provider 키·포트원 실계약·PG·Oracle VM·SMTP(전부 사용자/승인)
■ 승인 필요 : 없음(이번 수정은 무비용·코드 한정)
1. QA 방식
읽기 전용 Explore 에이전트 3개를 병렬로 도메인 분할 스윕: ① 인증/온보딩/프로필 ② 버디경제/매칭 ③ 채팅/초대/관리자. 보고된 후보는 전부 실제 코드로 재검증해 오보를 걸러냄(에이전트 과대보고 경향 보정).
2. 검증 결과 — 오보로 판정(수정 안 함)
| 후보 | 판정 |
| sign-up에 성별 미수집 = CRITICAL | 오보 — 현 설계상 성별은 온보딩 폼에서 선택(의도된 동작). sign-up.tsx L28 주석 확인. |
phone-verify /profile 경로 무효 | 오보 — (tabs) 그룹은 URL에서 생략되어 /profile이 정상. |
| refund_eligible 초기화 = 과거 건 영구 제외 버그 | 오보 — 주석대로 "정책 이전 건 환불 제외"가 의도된 설계(0051 L7). |
view_received_like 음수 코인 레이스 | 대체로 오보 — for update(L103)가 같은 profile 행을 직렬화하여 음수 불가. |
| pay_condition 여성 '동의함' 저장 | 실재하나 수정 보류 — 하드코딩 '동의함'은 남성 온보딩 검증 통과용(성별을 폼에서 고름). 바꾸면 남성 가입이 깨짐. 여성 stray 값은 무해·미노출. |
3. 확정 버그 — 수정·배포 완료
푸시 토큰이 로그아웃 시 정리되지 않음 (privacy/correctness)
로그인 시 기기 토큰을
profiles.push_token에 저장(
auth-context.tsx)하나, 로그아웃 시 정리 코드가 없었음. RLS상 본인만 자기 행을 수정할 수 있어, 공용 기기에서
A 로그아웃 → B 로그인 시 A 프로필에 그 기기 토큰이 남아
A에게 갈 알림이 B 기기로 전송될 수 있음.
수정:
push.ts: clearPushToken(userId) 추가.
auth-context.tsx: 컨텍스트에 signOut() 추가(세션 유효할 때 토큰 정리 후 auth.signOut()).
settings.tsx·onboarding.tsx·pending.tsx: 직접 supabase.auth.signOut() → 컨텍스트 signOut()로 교체.
- 탈퇴(
account.ts)는 hard_delete_account로 프로필 삭제 → 토큰 자동 제거되어 별도 처리 불필요.
검증/배포:
tsc --noEmit EXIT=0 · OTA(
eas update --branch preview) group
d07c9812 배포 완료. 웹은 동작 불변이라 재배포 생략.
4. 사용자 결정/검토 대기 항목
| 항목 | 성격 | 설명 |
| 차단(block)이 채팅까지 끊지 않음 | 제품 정책 | messages RLS(0002)는 방 참여 여부만 검사하고 차단을 보지 않음. 매칭 후 차단해도 기존 채팅방에서 메시지 송수신 가능. 단, 이곳 blocks는 "지인 차단(탐색 숨김)" 용도라 채팅까지 끊을지는 정책 결정. 라이브 DB·RLS 변경이라 임의 적용 안 함. |
| 같은 대상 동시 더블탭 중복 차감 | 저위험 | view_received_like: 존재검사(L100)가 락 획득(L103) 이전이라 동시 더블탭 시 같은 대상에 5버디 중복 차감 가능(초저확률, 보통 클라이언트가 버튼 비활성화). 락 이후로 존재검사를 옮기면 해소. 필요 시 소규모 마이그레이션으로 하드닝 가능. |
서비스 헬스: mobile/admin/privacy 전부 200 · 마이그레이션 0057까지. 변경 파일: mobile/src/lib/push.ts, auth-context.tsx, app/settings.tsx, onboarding.tsx, pending.tsx.