📚 회원 탈퇴(DELETE) 기능 정리 (10)

2025. 6. 10. 01:21·프로젝트
목차
  1. 회원 탈퇴(DELETE) 기능 정리
  2. 1. 🔥 기능 설명
  3. 2. 🔧 추가한 코드
  4. 3. 📝 API 스펙 요약
  5. 4. 📚 검증 포인트
  6. 5. ⚠️ 주의사항
  7. 📌 요약

회원 탈퇴(DELETE) 기능 정리

1. 🔥 기능 설명

  • 로그인한 사용자가 자신의 계정을 삭제(탈퇴)하는 기능.
  • 삭제 후 "Deleted successfully" 메시지를 응답.
  • 인증(로그인) 된 사용자만 요청 가능.
  • 탈퇴 시 연결된 데이터도 같이 삭제됨.
    • 연결된 Account, TransactionHistory, Notification, Analysis 등.

2. 🔧 추가한 코드

@extend_schema(
    summary="회원 탈퇴",
    description="회원 탈퇴 후 'Deleted successfully' 메시지를 반환합니다.",
    responses={200: {"type": "object", "properties": {"message": {"type": "string"}}}},
)
def delete(self, request):
    request.user.delete()
    return Response({"message": "Deleted successfully"}, status=status.HTTP_200_OK)

추가 위치:
UserProfileView 클래스 안에 get(), patch()와 같은 레벨에 추가.


3. 📝 API 스펙 요약

항목내용
URL /api/users/me/
Method DELETE
권한 로그인한 사용자만 (IsAuthenticated)
요청 바디 없음 (DELETE 메서드)
응답 바디 { "message": "Deleted successfully" }
응답 코드 200 OK
 

4. 📚 검증 포인트

  • ✅ 권한 체크: 인증된 사용자만 탈퇴 가능.
  • ✅ 정상 응답: 200 OK + "Deleted successfully" 반환.
  • ✅ DB 삭제: CustomUser 레코드 삭제.
  • ✅ 연결 데이터 삭제: Account, TransactionHistory, Notification, Analysis → 모두 CASCADE 삭제.
  • ✅ 로그인 불가: 삭제 후 해당 계정으로 로그인 시도 시 실패.

5. ⚠️ 주의사항

  • Hard Delete: 데이터베이스에서 완전히 삭제됨 (Soft Delete 아님).
  • 토큰은 남아있지만 유저가 삭제되어 인증 실패 발생.
  • 탈퇴 후 재가입 가능: 이메일, 닉네임 모두 DB에서 제거되기 때문에.

📌 요약

회원 탈퇴 기능은
DELETE /api/users/me/ 호출 시
본인 계정 삭제 + "Deleted successfully" 메시지 반환.

'프로젝트' 카테고리의 다른 글

ChatGPT Connection Error "Something went wrong," Global Users Experiencing Outage 📝 What's Happening?  (0) 2025.06.10
📚 Django 이메일 인증 기능 추가 (SMTP, 인증 토큰 발송) (10)  (0) 2025.06.10
🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리  (0) 2025.06.09
🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙  (0) 2025.06.09
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용  (0) 2025.06.09
  1. 회원 탈퇴(DELETE) 기능 정리
  2. 1. 🔥 기능 설명
  3. 2. 🔧 추가한 코드
  4. 3. 📝 API 스펙 요약
  5. 4. 📚 검증 포인트
  6. 5. ⚠️ 주의사항
  7. 📌 요약
'프로젝트' 카테고리의 다른 글
  • ChatGPT Connection Error "Something went wrong," Global Users Experiencing Outage 📝 What's Happening?
  • 📚 Django 이메일 인증 기능 추가 (SMTP, 인증 토큰 발송) (10)
  • 🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리
  • 🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (793) N
      • Python (32)
      • 프로젝트 (113) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    life reflection
    뷔
    chatgpterror
    titaniumcase
    btsjungkook
    homebartrend
    btsreunion
    remittance
    btscomeback
    newpoliticalparty
    basalcellcarcinoma
    lawsuitculture
    smartphonedurability
    self-growth
    gpterror
    americanlaw
    college reunions
    chinanightlife
    RM
    urbantrends
    trumpmuskclash
    classaction
    hotcoffeecase
    bts
    travel ban
    livebroadcast
    btsdischarge
    youngprofessionals
    global politics
    americaparty
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📚 회원 탈퇴(DELETE) 기능 정리 (10)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.