부모 에픽: #7 · 선행: #34 (소셜 로그인 · PR #93)
왜
App Store 심사 필수 항목이다. 계정을 만들 수 있는 앱은 앱 안에서 지울 수도 있어야 한다(App Review Guideline 5.1.1(v)).
그리고 이미 약속했다. 개인정보처리방침(https://offway.cloud/privacy) 9항이 "앱 내 [마이 → 회원탈퇴]" 로 탈퇴 경로를 명시하고 있다. 방침에 적힌 권리가 실제로 동작하지 않으면 그건 문서 문제가 아니라 규정 위반이다.
지금은 탈퇴 코드가 아예 없다 — users·user_identity·refresh_token 어디에도 지우는 경로가 없다.
무엇을
DELETE /api/v1/users/me → 200 + detail "탈퇴 처리되었습니다."
인증된 사용자가 자기 계정을 지운다.
반드시 답해야 할 것 — 무엇까지 지우나
프론트가 명시적으로 물었다: "탈퇴 시 연차·저장 코스·공유 토큰까지 함께 지워지는지 알려주세요."
여기에 걸림돌이 하나 있다. 사용자 식별이 guestId → userId 로 옮겨가는 중이고, 아직 안 옮겨졌다.
| 데이터 |
지금 소유 키 |
탈퇴(userId)로 닿나 |
users · user_identity · refresh_token |
users.id (UUID) |
닿는다 |
course (+ day_schedule · slot) |
course.guest_id (VARCHAR) |
안 닿는다 |
leave_balance · leave_usage |
guest_id |
안 닿는다 |
trip_outcome |
guest_id |
안 닿는다 |
그래서 탈퇴가 무엇을 지우는지는 그 이행 상태에 달렸다. 못 지우는 것이 있으면 얼버무리지 말고 명시한다.
공유 링크
course_share 는 코스가 지워져도 남아 410(게시자가 삭제함)으로 답하는 묘비다. 탈퇴로 코스를 지우면 이미 남에게 뿌린 링크가 어떻게 되는지 정하고 적는다.
범위 밖 (후속)
- 소셜 연결 해제 — 카카오 unlink(
POST /v1/user/unlink)는 Admin 키가 필요한데 아직 못 받았다. Apple revoke 는 .p8 키로 client secret JWT 를 만들어야 한다. 둘 다 받은 뒤 후속으로 붙인다.
- 탈퇴 사유 수집·유예 기간(soft delete) — 지금은 즉시 삭제로 간다.
완료 기준
부모 에픽: #7 · 선행: #34 (소셜 로그인 · PR #93)
왜
App Store 심사 필수 항목이다. 계정을 만들 수 있는 앱은 앱 안에서 지울 수도 있어야 한다(App Review Guideline 5.1.1(v)).
그리고 이미 약속했다. 개인정보처리방침(
https://offway.cloud/privacy) 9항이 "앱 내 [마이 → 회원탈퇴]" 로 탈퇴 경로를 명시하고 있다. 방침에 적힌 권리가 실제로 동작하지 않으면 그건 문서 문제가 아니라 규정 위반이다.지금은 탈퇴 코드가 아예 없다 —
users·user_identity·refresh_token어디에도 지우는 경로가 없다.무엇을
인증된 사용자가 자기 계정을 지운다.
반드시 답해야 할 것 — 무엇까지 지우나
프론트가 명시적으로 물었다: "탈퇴 시 연차·저장 코스·공유 토큰까지 함께 지워지는지 알려주세요."
여기에 걸림돌이 하나 있다. 사용자 식별이
guestId→userId로 옮겨가는 중이고, 아직 안 옮겨졌다.userId)로 닿나users·user_identity·refresh_tokenusers.id(UUID)course(+day_schedule·slot)course.guest_id(VARCHAR)leave_balance·leave_usageguest_idtrip_outcomeguest_id그래서 탈퇴가 무엇을 지우는지는 그 이행 상태에 달렸다. 못 지우는 것이 있으면 얼버무리지 말고 명시한다.
공유 링크
course_share는 코스가 지워져도 남아 410(게시자가 삭제함)으로 답하는 묘비다. 탈퇴로 코스를 지우면 이미 남에게 뿌린 링크가 어떻게 되는지 정하고 적는다.범위 밖 (후속)
POST /v1/user/unlink)는 Admin 키가 필요한데 아직 못 받았다. Apple revoke 는.p8키로 client secret JWT 를 만들어야 한다. 둘 다 받은 뒤 후속으로 붙인다.완료 기준
DELETE /api/v1/users/me— 인증 필요, 200 + 공통 래퍼