콘텐츠로 이동

회원 심사 시스템

문서 역할

회원 심사의 저장 책임과 조회 모델을 설명한다. 상태 전이 시각화는 회원 심사 FSM을 따르고, 심사 판정 규칙은 정책 문서를 우선한다.

목적과 범위

  • 회원의 기본정보·필수 인증·소개 프로필 심사 요청과 증거를 추적한다.
  • 현재 심사 상태를 요청 상태 원천과 분리된 조회 모델로 제공한다.
  • 회원 계정 생애주기는 회원 라이프사이클이 소유한다.

논리 데이터 모델

  • 도메인 ID: member-review

먼저 보는 그림

이 그림은 데이터가 어디에 속하고 무엇을 참고하는지 먼저 보여준다. 정확한 이름과 조건은 아래 상세 표를 따른다.

flowchart LR
    entity_member_dash_review_dot_auth_dash_evidence["인증 증거<br/>member-review.auth-evidence"]
    entity_member_dash_review_dot_auth_dash_request["인증 심사 요청<br/>member-review.auth-request"]
    entity_member_dash_review_dot_auth_dash_request_dash_item["인증 심사 항목<br/>member-review.auth-request-item"]
    entity_member_dash_review_dot_auth_dash_state["회원 인증 상태<br/>member-review.auth-state"]
    entity_member_dash_review_dot_overview_dash_projection["심사 운영 조회 모델<br/>member-review.overview-projection"]
    entity_member_dash_review_dot_profile_dash_image["프로필 이미지<br/>member-review.profile-image"]
    entity_member_dash_review_dot_profile_dash_version["프로필 버전<br/>member-review.profile-version"]
    entity_member_dash_review_dot_required_dash_auth_dash_policy["필수 인증 정책<br/>member-review.required-auth-policy"]
    entity_member_dash_review_dot_review_dash_request["회원 심사 요청<br/>member-review.review-request"]
    entity_member_dash_review_dot_stage_dash_snapshot["심사 단계 스냅샷<br/>member-review.stage-snapshot"]
    entity_member_dash_review_dot_status_dash_projection["심사 상태 조회 모델<br/>member-review.status-projection"]
    entity_member_dot_member["회원 계정 · 다른 영역<br/>member.member"]
    entity_member_dash_review_dot_review_dash_request -->|"참고"| entity_member_dot_member
    entity_member_dot_member -->|"같이 관리"| entity_member_dash_review_dot_auth_dash_state
    entity_member_dash_review_dot_auth_dash_request -->|"참고"| entity_member_dot_member
    entity_member_dash_review_dot_auth_dash_request -->|"같이 관리"| entity_member_dash_review_dot_auth_dash_request_dash_item
    entity_member_dash_review_dot_auth_dash_request_dash_item -->|"같이 관리"| entity_member_dash_review_dot_auth_dash_evidence
    entity_member_dash_review_dot_profile_dash_version -->|"참고"| entity_member_dot_member
    entity_member_dash_review_dot_profile_dash_version -->|"같이 관리"| entity_member_dash_review_dot_profile_dash_image
    entity_member_dot_member -->|"같이 관리"| entity_member_dash_review_dot_required_dash_auth_dash_policy
    entity_member_dot_member -->|"같이 관리"| entity_member_dash_review_dot_stage_dash_snapshot
    entity_member_dash_review_dot_status_dash_projection -->|"계산해 만듦"| entity_member_dash_review_dot_review_dash_request
    entity_member_dash_review_dot_overview_dash_projection -->|"계산해 만듦"| entity_member_dash_review_dot_auth_dash_request

꼭 지킬 규칙:

  • 회원과 요청 종류별 활성 인증 요청은 동시에 하나만 존재한다
  • 회원이 참조하는 현재 프로필 버전은 승인·활성 상태여야 한다
  • 조회 모델은 판정 원천이 아니며 요청 상태 원천과 회원 생애주기에서만 파생한다
정확한 값과 조건 보기

논리 엔티티

논리 ID 표시명 생명주기 역할 엔티티 형태 기록 역할 책임 최고 데이터 분류 생명주기
member-review.review-request 회원 심사 요청 root entity state 기본정보·소개정보 심사 요청의 처리 상태와 판정 민감 처리 중 상태·사유를 갱신하고 완료·철회 시 정책에 따라 보존 또는 정리
member-review.auth-state 회원 인증 상태 child entity state 인증 종류별 현재 판정과 반려 사유 민감 회원 계정과 함께 유지하고 재심사로 변경
member-review.auth-request 인증 심사 요청 root entity state 필수 인증 제출·재제출 요청의 처리 상태와 이전 요청 연결 민감 활성 요청을 갱신하고 이전·완료 요청은 연결 이력으로 보존
member-review.auth-request-item 인증 심사 항목 child entity state 활성 요청 안의 인증 종류별 현재 판정 민감 상위 요청 구성 변경에 따라 갱신·정리
member-review.auth-evidence 인증 증거 child entity snapshot 심사 시점의 인증 이미지와 개별 판정 민감 보관 기한 후 삭제 또는 비식별화
member-review.profile-version 프로필 버전 root entity snapshot 제출 시점의 프로필 이미지·영상 세트 민감 활성 버전은 유지하고 이전 버전은 정책에 따라 정리
member-review.profile-image 프로필 이미지 child entity snapshot 프로필 버전의 이미지와 이미지별 판정 민감 상위 버전의 보관 정책을 따름
member-review.required-auth-policy 필수 인증 정책 child entity reference 회원에게 적용되는 필수 인증 종류 내부 최초 생성 뒤 명시적 정책 정정 전까지 유지
member-review.stage-snapshot 심사 단계 스냅샷 child entity snapshot 화면·호환을 위한 단계별 현재 상태 복사본 내부 재계산 가능한 보조 데이터로 유지
member-review.status-projection 심사 상태 조회 모델 root entity projection API와 Mobile의 회원별 심사 상태 요약 내부 원천 데이터 변경 시 재계산
member-review.overview-projection 심사 운영 조회 모델 root entity projection Admin 큐와 단계 이력 집계 내부 원천 데이터 변경 시 재계산

관계

출발 논리 ID 관계 역할 관계 유형 도착 논리 ID 카디널리티 소유·삭제 규칙
member-review.review-request member references member.member N:1 제출 회원의 현재 상태와 요청 당시 snapshot을 구분해 보존
member.member auth-states owns member-review.auth-state 1:N 회원 개인정보 정리 정책을 함께 적용
member-review.auth-request member references member.member N:1 회원과 요청 종류별 활성 요청을 하나로 제한
member-review.auth-request items owns member-review.auth-request-item 1:N 활성 요청 구성 변경에 따라 항목을 함께 갱신·정리
member-review.auth-request-item evidence owns member-review.auth-evidence 1:N 증거만 보관 기한에 따라 정리 가능
member-review.profile-version member references member.member N:1 회원이 참조하는 현재 버전은 승인·활성 상태여야 함
member-review.profile-version images owns member-review.profile-image 1:N 현재 활성 버전은 삭제하지 않음
member.member required-auth-policy owns member-review.required-auth-policy 1:1 회원에게 적용되는 한 세트의 필수 인증 정책을 유지
member.member review-stage-snapshots owns member-review.stage-snapshot 1:N 원천 심사 상태와 불일치하면 재계산
member-review.status-projection review-requests derives-from member-review.review-request 1:N 원천 요청과 현재 회원 상태에서 계산
member-review.overview-projection auth-requests derives-from member-review.auth-request 1:N 운영 집계이며 쓰기 기준으로 사용하지 않음

불변조건

규칙 ID 관련 논리 ID 불변조건 기준 문서
MEMBER-REVIEW-INV-001 member-review.auth-request 회원과 요청 종류별 활성 인증 요청은 동시에 하나만 존재한다 회원 심사 단일 정책
MEMBER-REVIEW-INV-002 member-review.profile-version 회원이 참조하는 현재 프로필 버전은 승인·활성 상태여야 한다 회원 심사 단일 정책
MEMBER-REVIEW-INV-003 member-review.status-projection 조회 모델은 판정 원천이 아니며 요청 상태 원천과 회원 생애주기에서만 파생한다 회원 심사 FSM

데이터 흐름

  1. 쓰기 경계의 상태 동기화는 회원별 필수 인증 정책이 없을 때 현재 전담 클럽매니저 설정 또는 시스템 기본값으로 정책을 생성한다.
  2. 회원별 필수 인증 정책이 이미 있으면 현재 동기화 경로는 전담 클럽매니저 변경이나 설정 변경만으로 기존 정책을 자동 덮어쓰지 않는다.
  3. 회원이 심사 범위별 요청과 증거를 제출한다.
  4. Admin이 요청 또는 항목 단위로 승인·반려한다.
  5. 판정 결과가 회원 생애주기와 단계 스냅샷에 동기화된다.
  6. API와 Admin은 조회 모델을 통해 현재 상태를 읽는다.

정회원 본인 또는 Super Admin의 명시적 프로필 영상 삭제는 영상 참조만 원자적으로 제거하고, 사진과 사진 심사 상태는 유지한다. 세부 행위와 권한은 회원 심사 단일 정책보안/접근통제 정책을 따른다.

현재 전담 클럽매니저 설정과 회원별 필수 인증 정책은 서로 다른 데이터다. 심사 도중 전담 클럽매니저나 설정이 바뀌면 두 값이 달라질 수 있으며, PENDING을 포함해 NORMAL이 아닌 회원의 실제 인증 데이터까지 존재하는 상태에서는 현재 클럽매니저 준비 상태에 따라 동기화 guard가 저장을 차단할 수 있다. 정확한 발생 조건, 비적용 범위와 운영 Exit Gate는 회원 심사 단일 정책전담 클럽매니저·필수 인증 변경 호환 상태를 따른다.

관련 문서