본문으로 건너뛰기

계정 관리 정책

1. 목적

사용자의 프로필 정보 관리, 앱 설정 변경, 계정 탈퇴 및 앱 리뷰 요청에 대한 정책을 정의합니다.


2. 프로필 관리

2-1. API 엔드포인트

HTTP엔드포인트설명
GET/api/users/profile/내 프로필 조회
PATCH/api/users/profile/내 프로필 수정
GET/api/users/profile-summary/프로필 요약 정보 조회 (도서 관련 통계 포함)

2-2. 프로필 항목

필드설명수정 가능
email이메일 주소불가 (소셜 로그인 기반)
nickname닉네임 (고유값)가능
full_name이름가능
language사용자 언어가능
country국가 코드가능
birth_year출생연도가능
social_provider소셜 로그인 제공자불가 (자동 설정)
marketing_consent마케팅 수신 동의가능

2-3. 프로필 요약 (profile-summary)

  • 사용자의 독서 활동 요약 정보를 제공합니다.
  • 최근 읽은 책, 북마크, 녹음, 스티커 현황 등의 통계를 포함합니다.

3. 설정 관리

3-1. API 엔드포인트

HTTP엔드포인트설명
GET/api/users/settings/내 설정 조회
PATCH/api/users/settings/내 설정 수정

3-2. 설정 항목

필드설명기본값
push_notification_enabled푸시 알림 마스터 토글True
notification_marketing마케팅 알림 수신False
notification_bookmark북마크 도서 알림 수신True
app_language앱 표시 언어en
viewer_languages콘텐츠 열람 언어 목록 (JSON)[]

3-3. 알림 설정 동작

  • push_notification_enabledFalse인 경우, 모든 푸시 알림이 차단됩니다.
  • 개별 알림 설정(notification_marketing, notification_bookmark)은 마스터 토글이 활성화된 경우에만 유효합니다.

4. 계정 탈퇴

4-1. API 엔드포인트

HTTP엔드포인트설명
POST/api/users/delete-account/계정 탈퇴 요청

4-2. 탈퇴 처리 방식

  • Soft Delete 방식으로 처리됩니다 (SafeDeleteModel 사용).
  • 탈퇴 시 is_activeFalse로 설정되고, deleted 타임스탬프가 기록됩니다.
  • 실제 데이터 삭제는 30일 후에 수행됩니다.

4-3. 탈퇴 사유 (deletion_reason)

사용자는 탈퇴 시 다음 사유 중 하나를 선택합니다:

코드설명
not_used_often자주 사용하지 않아서
expensive다른 서비스보다 비싸서
lack_content콘텐츠가 부족해서
app_error앱에 오류가 있어서
other해당 사유 없음

4-4. 재가입 제한

  • 탈퇴 후 7일간 재가입이 불가합니다 (ACCOUNT_REJOIN_BLOCK_DAYS=7).
  • 7일 이내 재가입 시도 시 서버에서 403 Forbidden 응답이 반환됩니다.
  • 클라이언트에서는 재가입 제한 안내 메시지(account_re_signup_restriction)를 표시합니다.

4-5. 데이터 보관 정책

항목보관 기간이후 처리
계정 정보30일완전 삭제
스티커 수집 기록30일완전 삭제
독서 이력30일완전 삭제
녹음 파일30일완전 삭제
구독 결제 기록법적 보관 기간 준수관련 법률에 따름

5. 앱 리뷰 요청

5-1. API 엔드포인트

HTTP엔드포인트설명
GET/api/users/review-eligibility/리뷰 요청 대상 여부 확인
POST/api/users/review-requested/리뷰 요청 노출 기록 저장

5-2. 리뷰 요청 정책

  • 앱 사용 중 특정 조건을 만족하는 사용자에게 앱스토어 리뷰 요청을 표시합니다.
  • review-eligibility API를 통해 리뷰 요청 대상 여부를 서버에서 판단합니다.
  • 리뷰 요청이 사용자에게 표시되면, ReviewRequestLog 모델에 기록이 저장됩니다.
  • 기록 항목: 사용자 ID, 기기 ID, 생성 일시

5-3. 리뷰 요청 빈도 제한

  • 과도한 리뷰 요청을 방지하기 위해, ReviewRequestLog를 기반으로 이전 요청 이력을 확인합니다.
  • 최근 요청 이후 일정 기간이 경과하지 않은 경우에는 리뷰 요청이 표시되지 않습니다.

6. 기타 계정 관련 API

HTTP엔드포인트설명
GET/api/users/login-history/로그인 이력 조회
GET/api/users/recent-books/최근 읽은 도서 목록
GET/api/users/books-in-progress/읽는 중인 도서 목록
GET/api/users/completed-books/완독한 도서 목록
GET/api/users/bookmarks/북마크 도서 목록
DELETE/api/users/bookmarks/{book_id}/북마크 삭제
GET/api/users/bookmarks/status/{book_id}/특정 도서 북마크 상태
GET/api/users/reading-history/독서 이력
GET/api/users/recordings/녹음 목록
DELETE/api/users/recordings/{pk}/녹음 삭제