오프테이블 Wiki

조사 결과 · 종합 판단

사용자 계정 데이터 감사와 개선 계획

오프테이블 계정 데이터의 현재 상태, 기본 기능 누락, 1차 구현과 공개 전 후속 작업을 구분한다.

상태
검토됨
신뢰도
보통
근거
4개
업데이트

핵심 결론

최근 로그인은 Supabase Auth 원본을 쓰고, 탈퇴 생명주기와 선택 마케팅 동의는 비공개 상태·이력으로 추가했다. 실제 삭제·익명화와 광고 메일 발송은 보존 정책과 발송 의무를 완성한 뒤 연다.

모든 서비스가 생년월일·전화번호·주소·성별을 수집해야 하는 것은 아니다. 오프테이블의 기본은 계정 생성·확인·사용 시각, 이용 가능 상태, 선택 동의의 부여·철회, 탈퇴 뒤 삭제·보존을 추적하는 것이다. [1]

감사 결과#

기능 1차 개선 상태 기준·후속
가입·이메일 확인·최근 로그인 Auth 원본을 사용자·관리자 화면에 표시 profile에 복제하지 않음
표시 이름·온보딩 기존 공개 profile 유지 공개 최소 정보
이용정지 기존 비공개 상태 유지 탈퇴와 분리
탈퇴 생명주기 active → withdrawal_requested → withdrawn 추가 요청과 완료 분리
탈퇴 요청·취소 마이페이지 제공 완료 계정은 RLS 차단
마케팅 이메일 기본 미동의, 현재값·버전·이벤트 추가 선택 동의
탈퇴와 마케팅 요청 transaction에서 철회, 취소 전 재동의 차단 광고 억제
관리자 조회 확인·탈퇴·마케팅 상태 추가 운영 필드만 노출
약관·개인정보 처리 근거 유형만 준비 실제 문구·근거 뒤 수집
삭제·익명화 미구현 보존표·백업·외부 처리자 필요
광고 메일 발송 미구현 수신거부·표시·통지·2년 확인 필요
마지막 제품 활동 미구현 로그인과 별도 이벤트 필요
알림 설정·데이터 export 미구현 채널 정의·데이터 인벤토리 필요
기기·IP 로그인 이력 보류 보안 가치와 추가 수집 비교

확인된 법적 경계#

  • 불필요한 개인정보는 파기하고 다른 법령상 보존 대상만 분리 관리한다. [2]
  • 홍보 목적 동의는 다른 동의와 구분하며 거부를 이유로 서비스를 막지 않는다. [2]
  • 광고성 이메일은 사전 동의가 원칙이며 철회 뒤 전송하지 않는다. 처리 결과 통지·2년 확인·광고 표시·수신거부도 필요하다. [3]
  • 전자상거래 기록 보존기간은 적용 대상 거래가 생길 때 해당 기록에만 조건부 적용한다. [4]

이 문서는 제품·데이터 설계 기준이며 법률 자문이 아니다. 안전·개인정보 전체 경계는 안전·운영에서 관리한다.

1차 구현#

  • Auth: created_at, email_confirmed_at, last_sign_in_at을 파생해 표시한다.
  • 생명주기: private.account_lifecycle에 상태별 시각 제약을 두고 요청·취소·완료 차단을 관리한다.
  • 동의: private.user_consents 현재값과 private.user_consent_events 변경 이력을 분리한다.
  • 무결성: 서버 고정 안내 버전, 사용자별 advisory lock과 event identity 순서를 사용한다.
  • 탈퇴 연동: 요청 시 마케팅을 철회하고 요청 중 재동의와 무효 반복 전환을 차단한다.
  • 화면: 마이페이지와 관리자 목록·상세에 필요한 상태만 표시한다.
  • DB 권한: trigger-only SECURITY DEFINER 함수의 직접 클라이언트 실행을 제거한다.

관리자 경계는 관리자 사용자 관리, 인증 원본은 사용자 인증 기획을 따른다.

개선 로드맵#

  • 공개 전 P0: 개인정보 처리방침·마케팅 문구 버전, 탈퇴 재인증과 진행 중 만남·분쟁 규칙을 확정한다. 삭제·익명화·분리보존 데이터 맵, 만료일, 백업·로그·외부 처리자 runbook을 만든다.
  • 광고 발송 전: 원클릭 수신거부, 법정 표시, 처리 결과 통지와 2년 재확인을 구현한다.
  • MVP P1: 실제 행동 기반 last_active_at, 운영 알림과 마케팅 분리, 필수 처리 근거 버전, 탈퇴 SLA·감사 로그와 데이터 내보내기를 추가한다.
  • 증거 뒤 P2: 로그인·기기 이력, 계정 연결·이메일 변경, MFA와 장기 미사용 정책을 검토한다.

추가 개인정보는 실제 보안·운영 문제를 해결할 때만 수집한다.

완료와 보류#

  • 완료: 가입·확인·최근 로그인 표시, 탈퇴 요청·취소·완료 차단, 마케팅 동의·철회 이력, 관리자 조회
  • 보류: hard delete, 법정 분리보존 자동화, 광고 메일 전송, 약관 버전 동의, 데이터 export
  • 열지 않음: 삭제·보존 경계 없이 Auth 사용자를 즉시 삭제하는 버튼

삭제 전 스키마 맵: 탈퇴 삭제·보존 데이터 맵

관련 결정: 계정 데이터 기준 · 탈퇴 생명주기 상세 계획

제목, 요약, 태그, 본문을 검색합니다.