콘텐츠로 이동

매칭 운영 정책

문서 역할

  • 역할: 규범
  • 문서 종류: policy
  • 충돌 시 우선 문서: 매칭 상태·키·일정·대상/예약 세부 조건은 이 문서, 관리자 역할·최대 접근 범위는 security-access-control-policy.md
  • 기준 성격: transition

목적

  • 매칭 상태, 키 소진/환불, 일정 제안, 사용자 시나리오의 기준 문서를 하나로 고정한다.
  • 라운지 인연찾기 게시글에서 시작한 매칭카드의 방향별 상태·Key·노출 기준을 고정한다.
  • N:N 그룹미팅 채팅에서 시작한 매칭카드의 접근 시간·참가 자격·0원 확인·transaction 경계를 고정한다.
  • 클럽매니저의 수동·자동 매칭 대상 범위를 전담·공유 배정 기준으로 고정한다.
  • 매칭 예약의 생성 계정별 운영 범위와 공통 예약 설정·cron 발송 경계를 고정한다.
  • matching-fsm, matching-key-system, matching-schedule-algorithm, matching-flow의 역할을 설명 문서로 정리한다.

적용 범위

  • coupler-api, coupler-mobile-app, coupler-admin-web
  • 매칭 상태 전이, 키 차감/환불, N:N 그룹미팅 출처 카드, 일정 제안 범위 검증, 클럽매니저 매칭 대상·예약 운영 범위, 매칭 사용자 흐름

단일 SoT

  • 관리자 역할과 매칭 기능별 최대 권한: 보안/접근통제 정책
  • 상위 기술 원칙: 엔지니어링 가드레일
  • 리뷰/증빙 기준: 코드 리뷰 정책
  • 매칭 상태 읽기/판정 SoT: 서버의 t_match.match_status
  • 신규 CMS 여성 수신 카드의 미로그인 판정 SoT: 카드 생성 transaction에 저장한 t_match.recipient_login_count_at_send와 만료 transaction이 잠근 t_member.login_cnt
  • 인연찾기 출처·방향 판정 SoT: 서버의 t_match.lounge_id와 최초 t_match_log.status
  • N:N 그룹미팅 출처·접근 판정 SoT: 서버의 t_match.group_meeting_event_id, 그룹미팅 행사 실효 상태, 채팅 개방 경계와 현재 행사 신청·채팅 principal
  • 키 정산 SoT: 서버의 t_member_key_log, t_member.key
  • 일정 제안 검증 SoT: 서버 검증 로직
  • 클럽매니저 매칭 대상 판정 SoT: 서버가 확인한 로그인 관리자, 현재 회원-매니저 배정(CHARGE, SHARE)과 소속 클럽
  • 매칭 예약 운영 범위 SoT: 서버가 확인한 로그인 관리자와 예약 생성 계정. 예약 확정 상태·시간과 cron 자동발송은 모든 생성 계정에 공통으로 적용한다.

필수 규칙

1) 상태 전이 기준

  • 매칭 진행/취소/종료 상태는 서버의 t_match.match_status를 단일 기준으로 사용한다.
  • 모바일/어드민은 상태 전이를 재구현하지 않고 서버 상태를 표시한다.
  • 진행 상태는 아래 값을 기준으로 사용한다.
상수 의미
0 PENDING 카드 전달됨
1 FEMALE_WANT_SEE 여성 만남희망
2 MALE_WANT_SEE 남성 만남희망
3 FINAL_CONFIRM 여성 최종컨펌
4 SEND_FAVOR_INFO 선호정보 전달
5 SUGGEST_SCHEDULE 일정 제안 진행중
6 OK_SCHEDULE 일정 확정
7 SUGGEST_LOCATION 장소 결정 진행중
8 CHAT_OPEN 채팅 활성화
9 REVIEW_REQUIRE 후기 작성 필요
10 SHARE_CONTRACT 연락처 공개 완료
11 DIRECT_MEET 직진만남
  • 취소/종료 상태는 아래 값을 기준으로 사용한다.
상수 의미
-1 FEMALE_PASS 여성 패스
-2 MALE_PASS 남성 패스
-10 CANCELED 무응답 취소
-100 FINAL_CONFIRM_CANCEL 여성 최종컨펌 취소
-101 CONFIRM_NO_REPLY 최종컨펌 무응답
-102 FAVOR_INFO_NO_REPLY 선호정보 무응답
-103 SCHEDULE_NO_REPLY 일정제안 무응답
-104 SCHEDULE_ACCEPT_NO_REPLY 일정수락 무응답
-105 SCHEDULE_NOT_SELECTED 일정 불합의
-106 LOCATION_NO_REPLY 장소결정 무응답
-107 CHAT_ROOM_LEAVE 채팅방 나가기
-108 USER_BLAME 회원 신고
-109 CHAT_SCHEDULE_CANCEL 일정변경 취소
-110 CHAT_3_DAYS_OVER 3일 채팅 종료
  • 대표 진행 경로는 PENDING -> FEMALE_WANT_SEE -> MALE_WANT_SEE -> FINAL_CONFIRM -> SEND_FAVOR_INFO -> SUGGEST_SCHEDULE -> OK_SCHEDULE -> SUGGEST_LOCATION/CHAT_OPEN -> REVIEW_REQUIRE -> SHARE_CONTRACT 순서다.
  • 상태 도표와 예시 경로 시각화는 매칭 FSM에 두되, 충돌 시 이 문서가 우선한다.

인연찾기 카드 경로

  • 인연찾기 카드는 카테고리 12의 MANAGER_ONLY 게시글을 출처로 하며, 같은 전담 클럽매니저 배정 범위의 이성 회원 사이에서만 생성한다.
  • 자기 게시글, 휴면·직진만남 제한 회원, 지인·차단 관계, 이미 존재하는 일반/인연찾기 매칭 쌍은 거부한다.
  • 카드 생성 시 lounge_id를 보존한다. Admin 방향 표시와 방향별 환불처럼 기원 판정이 필요한 경로는 최초 매칭 로그 상태를 사용한다.
발송 방향 최초 상태 최초 응답자 최초 만료 최초 수락 뒤
남성 → 여성 PENDING 여성 전달 시점부터 3일 FEMALE_WANT_SEE, 남성 응답 대기
여성 → 남성 FEMALE_WANT_SEE 남성 전달 시점부터 3일 MALE_WANT_SEE, 여성 최종컨펌 대기
  • 여성 → 남성 경로의 취소 후 비활성 카드는 아래 조회자에게 2일간 On:Going에 남긴다.
취소 단계 취소 상태 2일 잔존 조회자
남성 최초 응답 대기 MALE_PASS, CANCELED 카드를 보낸 여성
여성 최종컨펌 대기 FEMALE_PASS, CONFIRM_NO_REPLY 먼저 수락한 남성
  • 현행 남성 On:Going 조회는 lounge_id, female_key=0, 취소 상태와 남은 만료시간으로 잔존을 판정한다. 따라서 남성 → 여성 카드에서 여성이 최초 3일 안에 직접 FEMALE_PASS하면 카드를 보낸 남성에게 최초 만료시각까지 비활성 카드가 남는다. PENDING 무응답으로 만료된 CANCELED는 남지 않는다.
  • App For You의 CMS/일반 1:1 카드 표시 상한은 10장이며 lounge_id가 있는 인연찾기 카드는 이 수에 포함하지 않는다.
  • Admin 로그는 인연찾기 여부와 발송 방향을 분리해 표시하며, 최초 상태 PENDING은 남성 → 여성, FEMALE_WANT_SEE는 여성 → 남성으로 판정한다.

N:N 그룹미팅 카드 경로

  • 현재 적용 상태에서 N:N 그룹미팅 카드는 최초 모집 마감으로 채팅이 초기화되고, 최신 event_at 기준 전날 KST 13시 개방 경계에 도달했으며, 행사 시작 +24시간 전인 실효 OPEN·CONFIRMED 방에서만 전달한다.
  • 발송자는 현재 호스트 또는 APPROVED 참가자여야 하고 대상은 같은 행사의 현재 APPROVED 참가자여야 한다. 호스트·본인·동성, 지인·차단 관계, 이미 존재하는 일반·라운지·다른 행사 매칭 쌍은 기존 거절 규칙을 따른다.
  • FINISHED·CANCELED와 행사 시작 +24시간 경계를 지난 방은 채팅 이력·후기 접근만 읽기 전용으로 유지하고 전체 프로필 열람과 카드 사전 검사·전달을 허용하지 않는다.
  • 카드 생성 시 group_meeting_event_id를 보존한다. 사전 검사는 팝업 표시를 위한 read 경계이며 실제 전달의 권한 판정을 대신하지 않는다.

CMS 여성 수신 카드의 3일 미로그인 낭비 카드 분류

  • 대상은 CMS 매칭 연결·예약 발송으로 여성에게 새로 전달하는 PENDING 카드다. 카드 생성 transaction에서 여성의 현재 login_cntrecipient_login_count_at_send에 저장하고 최초 PENDING 로그도 함께 남긴다.
  • recipient_login_count_at_send IS NULL인 배포 이전 카드와 큐레이터·인연찾기 등 다른 경로는 대상이 아니다. 과거 카드·알람·프로필 열람 이력은 역산하거나 복원하지 않는다.
  • 전달 3일 뒤 PENDING 만료 transaction이 여성 회원과 매칭을 잠근 뒤 현재 login_cnt를 발송 스냅샷과 비교한다. 횟수가 한 번이라도 증가했으면 일반 무응답 취소일 뿐 낭비 카드가 아니다.
  • 횟수가 그대로이면 CANCELED 전이와 함께 is_wasted=1로 분류한다. 배지·프로필 열람 여부 같은 추가 조건은 낭비 카드 정의에 사용하지 않는다.
  • Admin의 기존 낭비된 카드 건수는 is_wasted=1인 취소 카드만 집계한다. 운영자가 기존 전체삭제를 실행하면 해당 t_match 원본을 물리 삭제하고, 그 뒤 기존 중복 매칭 규칙에 따라 매칭 기회를 다시 사용할 수 있다.
  • Apple 저장 세션 복원, 기존 로그인 경로, 중복 매칭·후보·한도 규칙은 변경하지 않는다.

2) 키 소진/환불 기준

  • 키 차감/환불은 서버가 판단하고 t_member_key_log에 기록한다.
  • 핵심 차감 규칙은 아래를 기준으로 사용한다.
주체 액션
여성 패스 -5
여성 남성 프로필 보기 -35
여성 천천히 결정하기 -5
남성 일반 매칭 여성 프로필 보기 -10
남성 큐레이터 제안 여성 프로필 최초 확인 0
남성 여성 비디오 보기 -15
남성 미니프로필 보기 -10
남성 3일 채팅 -5
남성 만남 수락 등급별 차감
남성 채팅 재활성화 -60
남성 직진만남 -77
공통 후기 작성 보상 +15
  • 인연찾기 카드 전달자는 방향과 관계없이 서버 설정 t_setting.id = 26-5 Key를 사용한다.
  • N:N 그룹미팅 카드의 free_send=true는 유효한 0 Key 전달이다. Mobile은 0원이어도 전달 전에 명시적 확인 팝업을 표시하며, 확인 전·취소·dismiss에서는 전달 명령을 호출하지 않는다. 0원 성공은 매칭과 최초 상태 로그를 남기되 회원 Key 잔액과 Key 원장은 변경하지 않는다.
  • 여성 → 남성 경로에서 남성의 최초 수락은 남성 본인 등급의 매칭 Key, 여성의 최종 수락은 여성 본인 등급의 매칭 Key를 사용한다. 서버가 응답한 금액과 다른 클라이언트 입력은 거부한다.
  • 등급별 만남 수락 Key의 설정값 0은 유효한 0원 수락 요금이다. 0 자체만으로 요청값 누락, 발송 방향 또는 환불 여부를 판정하지 않는다. 0원 수락도 유료 수락과 같은 상태 전이와 매칭 로그를 남기되 회원 Key 잔액과 Key 원장은 변경하지 않는다.
  • 카드 전달 Key 차감, matching.match 생성과 최초 상태 로그는 한 트랜잭션으로 처리한다. N:N 그룹미팅 출처는 같은 transaction에서 행사와 발송자·대상의 신청·채팅 principal 및 요청한 대상 식별자를 잠그고 위 개방·실효 상태·현재 자격을 다시 확인한 뒤에만 쓰며, 하나라도 달라졌으면 Key·매칭·로그를 모두 쓰지 않고 rollback한다. 카드 전달 푸시는 커밋 뒤 시도하며 푸시 실패로 완료된 트랜잭션을 되돌리지 않는다.
  • 큐레이터 제안 여성 프로필 무료 확인은 로그인 회원이 해당 매칭의 남성이고, match_status=PENDING, curator_status=PENDING/MALE_WANT_SEE/FROM_CURATOR, 프로필 요청(video=0)인 경우에만 적용한다.
  • 무료 확인 성공 시 서버는 해당 매칭의 여성 프로필 확인 상태를 Y로 기록하고 Key 잔액과 Key 원장은 변경하지 않는다. For youOn:Ongoing 중 어느 경로에서 먼저 확인해도 같은 매칭 상태를 사용하며, 이미 확인한 카드는 재요청·재진입 후에도 블러를 다시 적용하지 않는다.
  • 여성의 남성 프로필 열람은 큐레이터 제안 여부와 관계없이 기존 -35 차감과 남성 프로필 확인 상태를 사용하며, 위 무료 확인 예외와 독립적으로 처리한다.
  • 여성의 남성 공개사진 최초 열람은 FEMALE_VIEW_MALE_PROFILE(1015) 로그를 기존 플래그·Key 잔액·Key 원장 처리와 같은 transaction에 남긴다. 재열람은 추가 차감·로그를 만들지 않으며 배포 이전에 없던 여성 열람 로그는 복원하지 않는다.

  • 핵심 환불 규칙은 아래를 기준으로 사용한다.

상황 환불 규칙
MALE_PASS 여성 결제 키 전액 환불
FINAL_CONFIRM_CANCEL 남성 결제 키 + 프로필 열람 키 전액 환불
SCHEDULE_NOT_SELECTED 양측 결제 키의 50% 환불
FEMALE_PASS, CHAT_ROOM_LEAVE, USER_BLAME, CHAT_3_DAYS_OVER 환불 없음
  • 여성 → 남성 인연찾기의 남성 환불은 male_key만 반환하고 프로필 열람 Key와 최초 카드 전달 Key는 포함하지 않는다. 남성 → 여성 인연찾기는 일반 1:1 환불 기준을 따른다.
  • 모든 키 변동은 t_member_key_logt_member.key를 함께 기준으로 판정한다.
  • 키 항목 예시와 로그 기록 방식은 매칭 키 시스템에 두되, 충돌 시 이 문서가 우선한다.

3) 일정 제안 기준

  • 일정 제안/역제안은 서버 검증을 단일 기준으로 사용한다.
  • 일정 제안은 최대 4회까지 가능하다.
  • 각 제안은 4~7개 일정 후보만 허용한다.
  • 모든 일정 후보는 미래 날짜여야 하며, 같은 일시를 중복해서 제안할 수 없다.
  • 일정 후보 입력 형식은 YYYY-MM-DD 또는 YYYY-MM-DD HH:mm:ss만 허용한다.
  • 허용 범위 안의 일정 후보는 YYYY-MM-DD HH:mm:ss 기준으로 비교한다. 같은 날짜라도 시간이 다르면 서로 다른 후보로 허용하고, 정규화한 일시가 같으면 MATCHING_SCHEDULE_DUPLICATE_DATE 실패 응답을 반환한다. 시간 없는 YYYY-MM-DD 입력은 해당 날짜의 00:00:00으로 비교한다.
  • 채팅방 내 일정 변경도 같은 날짜 입력 형식 검증을 사용하며, 허용 범위 밖 또는 계약 밖 형식은 MATCHING_SCHEDULE_CHAT_INVALID_DATE 실패 응답을 반환한다.
  • 제안 횟수별 허용 범위는 아래를 기준으로 사용한다.
제안 횟수 허용 범위
1차 내일 ~ 오늘 + 14일
2차 내일 ~ 1차 제안일 + 14일
3차 내일 ~ 1차 제안일 + 14일
4차 1차 제안일 + 15일 ~ 1차 제안일 + 25일
  • 허용 횟수, 일정 후보 개수, 동일 일시 중복, 범위 조건을 하나라도 위반하면 즉시 실패시킨다.
  • 4차 제안까지 합의되지 않으면 상태를 SCHEDULE_NOT_SELECTED로 종료하고 양측에 50% 환불을 적용한다.
  • 각 제안 이후 다음날 자정까지 응답이 없으면 SCHEDULE_NO_REPLY 또는 SCHEDULE_ACCEPT_NO_REPLY로 종료한다.
  • 예시 범위와 시퀀스 설명은 매칭 일정 제안 알고리즘에 두되, 충돌 시 이 문서가 우선한다.

4) 클럽매니저 매칭 대상과 예약 운영 범위

  • 이 절의 시작 회원은 상대 후보 목록을 열기 전에 클럽매니저가 기준으로 선택하는 회원이고, 상대 후보는 그 회원과 매칭할 수 있도록 서버가 반환하는 회원이다.
  • 클럽매니저 계정에는 현재 로그인한 매니저에게 전담(CHARGE) 또는 공유(SHARE)로 배정된 같은 소속 클럽 회원만 적용한다. 두 배정 중 어느 것도 없는 다른 클럽·매니저의 회원은 제외한다.
CMS 경로 시작 회원 상대 후보 필수 규칙
매칭 예약 리스트 생성 여성 전담(CHARGE) 회원 남성 전담(CHARGE) + 남성 공유(SHARE) 회원 여성 공유회원은 자동 생성의 시작 회원으로 사용하지 않는다.
매칭 연결 여성 전담(CHARGE) 회원 남성 전담(CHARGE) + 남성 공유(SHARE) 회원 시작 회원과 상대 후보는 같은 클럽 범위여야 한다.
큐레이터 제안 남성 전담(CHARGE) 회원 여성 전담(CHARGE) + 여성 공유(SHARE) 회원 여성 공유회원은 이 경로의 상대 후보로 수동 매칭할 수 있다.
  • 공유(SHARE) 회원은 위 표의 상대 후보로만 사용하며 시작 회원 목록에는 포함하지 않는다.
  • 여성 공유회원은 자동 예약 리스트에서 제외하고 큐레이터 제안의 상대 후보로만 매칭할 수 있다.
  • 슈퍼어드민은 전담·공유 배정으로 범위를 제한하지 않고 기존 매칭 자격 조건을 충족한 전체 회원을 대상으로 한다.
  • 이 규칙은 매칭 대상 판정 기준이며, 회원 조회·관리 권한은 보안/접근통제 정책을 따른다.
  • Admin은 전담·공유 배정에 따른 매칭 범위를 재구현하지 않고 서버가 반환한 목록을 표시한다.
  • 일반 클럽매니저는 매칭 예약 화면의 예약목록·공통 설정 조회, 리스트 생성, 예약 확정·취소, 즉시 발송, 전체·선택 삭제 작업을 모두 사용할 수 있다. 작업 유형의 사용 가능 여부는 일반 클럽매니저 계정마다 동일하고, 각 작업이 처리하는 예약 데이터 범위는 아래 생성 계정 규칙을 따른다.
  • 일반 클럽매니저의 예약목록 조회·생성·단건/선택/전체 삭제·즉시 발송은 현재 로그인한 계정이 생성한 예약만 대상으로 한다. 슈퍼어드민은 전체 예약을 대상으로 같은 작업을 수행할 수 있다.
  • 예약 확정 상태·시간과 취소는 공통 설정으로 유지한다. cron 자동발송은 생성 계정과 관계없이 발송 시각이 지난 전체 예약을 처리한다.
  • 일반 클럽매니저의 계정별 즉시 발송은 다른 계정의 예약을 처리하거나 공통 예약 상태를 해제하지 않는다. 공통 예약 상태는 cron·슈퍼어드민의 전체 발송 완료 또는 명시적 예약 취소에서만 해제한다.

5) CMS 전담매니저 표기와 매칭 필터

  • CMS 회원관리의 모든 탭은 각 회원의 전담매니저 컬럼을 표시한다.
  • 큐레이터 제안, 매칭 연결, 매칭 연결 화면의 매칭 버튼으로 여는 상대 후보 목록에는 각 회원의 전담매니저 컬럼을 표시한다.
  • 매칭 연결큐레이터 제안 목록은 매칭 후보 팝업과 같은 지역×등급 필터를 제공한다.
  • 전담매니저 컬럼 값은 현재 조회한 클럽매니저나 공유 배정 매니저가 아니라 회원의 전담(CHARGE) 배정을 기준으로 한다.

6) 회귀 검증

  • 서버 테스트는 자동 예약 생성에서 여성 전담 시작 회원, 남성 전담·공유 상대 후보, 여성 공유 시작 회원 제외, 다른 클럽·매니저 범위 제외를 검증한다.
  • 수동 매칭 테스트는 매칭 연결큐레이터 제안의 서로 다른 성별·배정 방향을 각각 검증한다.
  • 예약 운영 테스트는 일반 클럽매니저의 조회·삭제·즉시 발송이 생성 계정별로 격리되고, 계정별 즉시 발송 뒤에도 공통 cron 예약 상태가 유지되며, cron·슈퍼어드민 전체 발송만 공통 상태를 해제하는지 검증한다.
  • 큐레이터 프로필 확인 테스트는 남성의 최초 무료 확인과 반복 확인의 멱등성, 일반 카드의 무료 요청 거절, 여성의 남성 프로필 유료 열람 격리, For youOn:Ongoing 양쪽 진입 경로의 동일 상태 반영을 검증한다.
  • 프로필 열람 테스트는 여성→남성 최초 열람이 기존 차감값을 그대로 사용하면서 플래그·잔액·원장·1015 로그를 원자적으로 기록하고 재열람에는 추가 로그를 만들지 않는지 검증한다.
  • CMS 미로그인 낭비 카드 테스트는 신규 카드의 발송 스냅샷, 로그인 0회/1회, 원자적 CANCELED·is_wasted 분류, 배포 전 NULL 제외, 기존 Admin 건수·물리삭제 연결을 검증한다.
  • 인연찾기 테스트는 두 방향의 최초 상태·3일 만료·전달 Key 트랜잭션, 0원을 포함한 역할별 수락 Key, 최초 로그 기반 방향, CMS 카드 10장 집계 제외, 여성 → 남성 취소 상태별 조회자 비대칭 2일 잔존, 남성 → 여성 직접 패스의 최초 만료시각까지 잔존과 환불 범위를 검증한다.
  • N:N 그룹미팅 카드 테스트는 채팅 개방과 행사 시작 +24시간의 직전·정각·직후, 행사 일시 변경, 승인 취소·퇴장·대상 식별자 변경 경쟁을 검증한다. 사전 검사 뒤 상태가 바뀐 경우 transaction rollback, Key·매칭·로그·푸시 0건을 확인하고, 0원 팝업의 확인 전·취소·backdrop·뒤로가기·중복 확인과 재시도를 검증한다. 라운지 출처의 기존 Key·상태·푸시 경로는 같은 변경에서 회귀 검증한다.

7) 시나리오 문서 역할

  • 매칭 플로우는 시나리오 설명 문서다.
  • 사용자/운영 흐름 예시를 제공하지만, 상태/키/검증의 규범 문서가 아니다.

전환 기준

  • 전환 목표: 상세 문서는 예시, 시퀀스, 구조 설명만 유지하고 상태 값, 환불 규칙, 일정 판정의 원문 SoT는 이 문서에만 둔다.
  • 클럽매니저 매칭·예약 범위 전환 완료 조건: 서버가 표의 경로별 시작 회원·상대 후보 범위와 생성 계정별 예약 운영 범위를 적용하고, 공통 예약 설정·cron 발송을 유지하며, Admin의 전담매니저 컬럼·지역×등급 필터와 대상 범위 회귀 테스트가 함께 반영된 상태다.
  • 일정 검증 drift 제거 조건: coupler-api/lib/matching-schedule-parser.ts가 허용 범위와 계약 형식을 벗어난 일정 후보, 허용 범위 안의 동일 일시 중복을 감지하되 같은 날짜의 다른 시간은 허용하고, coupler-api/controller/app/v1/match.tsaddSchedule이 저장 전에 MATCHING_SCHEDULE_INVALID_DATE 또는 MATCHING_SCHEDULE_DUPLICATE_DATE로 실패시키며, parser/controller 테스트가 같은 결론을 검증한다.
  • 인연찾기 경로 완료 조건: 서버가 두 발송 방향의 상태·Key·출처·환불·노출 규칙을 적용하고, Mobile이 방향별 알림을 해당 매칭 탭으로 연결하며, Admin이 최초 로그 상태로 방향을 표시하고 관련 회귀 테스트가 함께 반영된 상태다.
  • N:N 그룹미팅 카드 경로 완료 조건: 서버의 사전 검사와 실제 쓰기 transaction이 같은 채팅 개방·실효 상태· 현재 principal을 판정하고, Mobile이 0원 전달에도 명시적 확인을 적용하며, 종료 이력 접근과 전체 프로필· 카드 동작 차단을 분리한 회귀 테스트가 함께 반영된 상태다.
  • 상세 문서 정리 완료 조건: 매칭 FSM, 매칭 키 시스템, 매칭 일정 제안 알고리즘, 채팅 시스템, 매칭 플로우가 상태/키/환불/일정 값 또는 API 요청 field를 새 규범으로 정의하지 않고 이 문서, Swagger, 코드 경계 링크 또는 예시/시각화 역할로만 설명한다.
  • 전환 추적: 본 절의 완료 조건과 해당 변경 PR/릴리스 기록을 기준으로 추적한다. 완료 전 상세 문서의 값 표현이 이 문서와 충돌하면 이 문서를 우선한다.

관련 문서