Skip to content

feat(users): 회원 탈퇴 기능구현 - #88

Merged
bigmooon merged 5 commits into
mainfrom
feat/delete-auth
Jun 26, 2026
Merged

bigmooon merged 5 commits into
mainfrom
feat/delete-auth

Conversation

@JeongSW123

Copy link
Copy Markdown
Collaborator

Summary

  • 회원 탈퇴 기능을 추가합니다. 개인정보(원본이미지·닉네임·이메일·비밀번호·생년월일·직업)를 삭제/익명화하고 계정을 비활성화하되, 이용 로그(퀘스트·피드·토큰·생성 횟수)는 보존합니다.
  • 이메일 가입자는 현재 비밀번호 일치 시, 소셜 가입자는 비밀번호 없이 탈퇴합니다.
  • 로그 보존을 위해 User 행은 삭제하지 않고 익명화(soft-delete)하므로 **DB 스키마 변경/마이그레이션이 없습니다.

Changes

Checklist

  • Django app/module boundaries are respected (apps/, common/, config/, infrastructure/)
  • Settings use config.settings.*
  • Migrations are included or not needed
  • API behavior, serializers, permissions, or validation changes are documented
  • Tests are added/updated or the reason is noted

Test

  • make test
  • make lint
  • Manual check:

Notes

회원 탈퇴 시 원본 사진 등 개인정보 객체를 제거하기 위한 best-effort
삭제 헬퍼. 빈 key 는 no-op, 실패 시 False 반환.
개인정보(원본이미지·닉네임·이메일·비밀번호·생년월일·직업)를 삭제/익명화하고
is_active=False 로 비활성화한다. 이용 로그(퀘스트·피드·토큰·생성 횟수)는
보존하기 위해 User 행은 삭제하지 않는다.

- 원본 사진: SourceImage 행 삭제 + Character.origin_img_url 비움 + S3 best-effort 삭제
- 이메일은 충돌 방지 센티넬, 비밀번호는 set_unusable_password
- birth 는 not-null 이라 센티넬 날짜(1900-01-01), job 은 빈값
- SocialAccount(외부 신원 링크) 삭제
이메일 가입자는 현재 비밀번호 일치 시, 소셜 가입자는 비번 없이 탈퇴한다.
전 기기 자동로그인 토큰을 무효화하고 withdraw_user 로 개인정보를 익명화한 뒤
리프레시 쿠키를 비우고 204 를 반환한다.
이메일 가입자 비번 일치/불일치/누락, 소셜 가입자 비번 없이 탈퇴,
탈퇴 후 인증 차단을 검증한다. 원본이미지 삭제·PII 익명화·로그 보존도 확인.
@JeongSW123
JeongSW123 requested a review from bigmooon June 25, 2026 08:23
@bigmooon
bigmooon merged commit 9e9f0e0 into main Jun 26, 2026
1 check passed
@JeongSW123
JeongSW123 deleted the feat/delete-auth branch June 26, 2026 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants