기준: 공통 문서, 백엔드 개정 12절.
- 가입 토큰의 유효기간은 구현에 맞춰 **기본 30분(1,800초)**으로 정한다.
SIGNUP_TOKEN_TTL로 초 단위 조정하며 로그인 응답의expiresIn도 같은 값을 반환한다. 기존 Notion 백엔드 문서의 5분 표기는 이 정책으로 개정한다. - 가입 토큰은 앱 토큰과 분리한 서명 키를 사용하고, 소모 기록을 DB에 저장해 다중 인스턴스·재시작 이후 재사용을 막는다.
- 동일 소셜 계정은 OAuth 로그인 트랜잭션에서 기존 UUID로 복원한다. 개인정보·점수·제재를 유지하고 잔여 제재 기간을 해동한다. 영구 정지의 소셜 해시 검사는 복원보다 먼저 한다.
- 설치 ID는 활성 계정 간 중복만 차단한다. 탈퇴 계정의 설치와 밴리스트 기기 해시는 확정 차단 근거로 쓰지 않는다. 이상 신호 저장은 문서의 후속 범위다.
- 성별 입력은 MALE/FEMALE만 허용한다. 생일은 서버 검증·저장에만 사용하고 응답에서 제외한다.
- 기기 정보는 전체 또는 일부 누락 가능하다.
device_sync_policies의 활성 규칙을 우선순위 순으로 평가하고 5분 캐시를 사용한다. 조건에 필요한 기기 값이 없으면 해당 규칙을 건너뛴다. priority 0의 빈 조건 폴백이 없으면 기동을 중단한다. 로그인·가입·리프레시·인증 API가 같은 정책을 사용한다. - 회원 심사는 제출 커밋 후 동기로 실행한다. 외부 호출 중 DB 잠금을 유지하지 않는다. 상태와 null-safe 콘텐츠 비교로 결과를 반영하며, 별도 심사 작업 테이블·revision·pending 시각은 사용하지 않는다.
- 사진은
profile_image_key하나만 저장한다. 타인에게는 APPROVED만, 본인에게는 APPROVED/PENDING만 노출한다. REJECTED는 기본 이미지이고 객체를 정리한다. - 실패한 심사의 유일한 재발행자는 매일 05:00 KST PENDING 스캔이다. 운영에서
USER_MODERATION_QUEUE_URL과 SQS 접근 권한이 필요하다.MODERATION_LOCAL=true는 개발·테스트에서만 사용한다. user_activity를 기존 활동 시각으로 백필한다. 인증된 요청의 활동은 계정 본체와 분리해 날짜가 바뀔 때만 갱신한다. 23일/29일 사전 고지, 30일 방 이탈, 335일 사전 고지, 365일 계정 탈퇴를 적용한다. 고지 기록과 유예 기간이 확인되지 않으면 조치를 미룬다. 휴면 이탈은 감점·재입장 대기 없이 DORMANT로 기록한다.
아래 V57·V58은 현재 V1~V11 베이스라인으로 통합되기 전의 이력 번호다.
V57은 활동 백필·기기 정책을 추가한다. V58은 회원 심사 작업 테이블과 승인 이미지 복제 컬럼을 제거하고 이미지 컬럼을 개명한다. V58 적용 후에는 구 서버 바이너리로 단순 롤백할 수 없다.