F5. 낙찰

F5. 낙찰

1. 기능명

경매 마감 및 낙찰자 확정

2. 기능 목적

마감 시점에 가장 많은 공감을 모은 사연을 낙찰작으로 확정한다.

  • 최고가가 아니라 최고 입찰 포인트(건 포인트 + 받은 공감) 로 낙찰자를 정한다
  • 결과를 주최자와 참여자 전원에게 알려 다음 단계(전달 논의, F6)로 이어지게 한다

3. 동작 방식

3.1 마감 조건

경매의 마감 시각이 지나면 자동으로 마감 처리된다. 주최자의 조작은 필요하지 않다.

3.2 낙찰자 선정

낙찰 사연 = 해당 경매의 사연 중 최종 입찰 포인트가 가장 높은 사연

최종 입찰 포인트 = 본인이 건 포인트(F3) + 받은 공감 가중치 합(F4)

3.2.1 동점 처리 — 확정

최종 입찰 포인트가 같으면 먼저 작성한 사연이 낙찰된다.

순위기준
1차최종 입찰 포인트
2차먼저 작성한 사연 우선 (사연 작성 시각 기준)
  • 기준 시각은 사연 최초 등록 시각이다. 수정 시각이나 입찰 시각이 아니다
  • 이 규칙으로 낙찰자는 항상 하나로 결정된다

규칙 안내 의무

동점 기준은 경매 상세 화면에 사용자가 볼 수 있게 노출한다.

같은 포인트일 땐 먼저 작성한 사연이 낙찰됩니다.

마감 전 순위 노출

입찰자 랭킹 영역에는 동점 기준이 적용된 실제 순위를 표시한다. 동점자가 마감 전에 자신의 순위를 알고 대응(추가 입찰·사연 알리기)할 수 있어야 한다. 마감 이후에야 동점 탈락을 알게 되는 상황을 만들지 않는다.

3.3 마감 처리 절차

순서처리
1경매 상태를 마감됨으로 변경한다
2최종 입찰 포인트 기준으로 낙찰 사연을 확정한다
3낙찰 사연과 낙찰자를 경매에 기록한다
4주최자와 참여자 전원에게 결과 알림을 발송한다 (F9)

이 절차는 원자적으로 처리되어야 한다. 중간에 실패하면 마감 상태만 바뀌고 낙찰자가 없는 상태가 되어서는 안 된다.

3.4 마감 이후 화면

요소표시
경매 상세마감 오버레이를 표시한다
낙찰 사연낙찰 표시를 붙여 상단에 노출한다
사연 작성·입찰·공감모두 차단한다
열람계속 허용한다
1:1 채팅이때 비로소 열린다 — 채팅방을 생성하고 주최자와 낙찰자에게만 허용한다 (F6). 유찰 시에는 생성하지 않는다
찜하기허용한다 (개인 북마크)

3.5 포인트 정산 — 확정

낙찰자가 건 포인트는 주최자에게 이전되고, 나머지는 전액 반환한다.

대상처리
낙찰자건 포인트 차감 확정
주최자낙찰자가 건 포인트를 수취
미낙찰 참여자전액 반환
유찰된 경매참여자 전원 반환, 주최자 수취 없음

포인트 순환

물건을 나누면 포인트를 얻고, 물건을 받으면 포인트를 쓴다.

항목내용
이전 금액낙찰 사연에 작성자가 직접 건 포인트
공감 가중치이전 대상이 아니다. 실제 포인트가 아니라 점수다
총량낙찰 순환에서 포인트는 이동만 하고 늘거나 줄지 않는다

자전거래는 구조적으로 불가능하다. 주최자는 자기 경매에 사연을 쓸 수 없으므로(F3), 자기 경매에서 자기에게 포인트를 보낼 수 없다.

전제

  • 포인트는 입찰 시점에 이미 차감되어 있다. 마감 처리는 미낙찰분을 되돌리고, 낙찰분을 주최자에게 보내는 동작이다
  • 공감(F4)은 포인트를 소모하지 않는다. 공감한 사람의 보유 포인트는 차감되지 않으며, 사연의 입찰 포인트만 오른다. 따라서 정산 대상은 참여자가 직접 건 포인트뿐이다

반환 기록

반환은 포인트 내역(F8)에 적립 항목으로 남긴다. 차감 기록을 지우지 않는다. 사용자가 "얼마를 걸었고 얼마를 돌려받았는지" 추적할 수 있어야 한다.

설계상 유의점

미낙찰 시 손해가 없으므로 참여자는 상한(3,000 P)까지 올릴 유인을 갖는다. 그 결과 기본 입찰 포인트가 전원 동일해지면 공감(F4)이 사실상 유일한 변별 요소가 되고, 공감까지 같으면 작성 시각(3.2.1) 으로 결정된다.

이 때문에 마감 전 랭킹 노출(3.2.1)은 필수다. 참여자가 자신의 순위를 마감 전에 알 수 없으면, 작성 시각만으로 탈락했다는 사실을 사후에 알게 된다.

4. 예외 처리

상황처리
사연이 0건인 채로 마감유찰 처리한다. 낙찰자를 기록하지 않고, 주최자에게 "참여자가 없어 유찰되었습니다"를 안내한다
최종 포인트 동점3.2.1에 따라 먼저 작성한 사연을 낙찰로 확정한다
작성 시각까지 동일실질적으로 발생하지 않으나, 발생 시 사연 식별자 기준으로 결정론적으로 정한다. 임의 선택하지 않는다
마감 처리 중 오류마감 상태와 낙찰자 확정이 함께 롤백되어야 한다. 마감됐는데 낙찰자가 없는 중간 상태를 남기지 않는다
마감 처리 지연마감 시각이 지난 경매는 화면에서 마감 상태로 표시한다. 내부 처리가 늦더라도 참여 액션은 차단한다
마감 직전 입찰·공감 도착서버의 마감 시각 판정을 기준으로 한다. 마감 이후 도착한 요청은 거부하고 사유를 안내한다
알림 발송 실패낙찰 확정은 롤백하지 않는다. 알림만 재시도하며, 사용자는 경매 상세에서 결과를 확인할 수 있어야 한다
낙찰 사연 삭제 시도차단한다. "낙찰된 사연은 지울 수 없어요"를 안내한다 (F3 3.4)
미낙찰 사연 삭제허용한다. 포인트는 마감 시 이미 반환되었으므로 추가 정산이 없다. 낙찰 결과에도 영향을 주지 않는다
주최자가 마감된 경매를 삭제F1의 삭제 정책을 따른다

5. 완료 조건

#조건
1마감 시각이 지나면 주최자 조작 없이 자동으로 마감된다
2최종 입찰 포인트(건 포인트 + 공감 가중치) 가 가장 높은 사연이 낙찰된다
3공감으로 오른 포인트(F4)가 낙찰 계산에 정확히 반영된다
4사연 0건 경매가 유찰로 처리되고 주최자에게 안내된다
5마감 상태와 낙찰자 확정이 함께 처리되거나 함께 실패한다
5-1낙찰 시 주최자가 낙찰자의 입찰 포인트를 수취한다
5-2반환액과 이전액의 합이 해당 경매의 차감 총액과 정확히 일치한다
6마감 이후 사연 작성·입찰·공감이 차단되고, 열람은 유지된다
6-1낙찰 확정과 함께 채팅방이 생성되고 주최자·낙찰자에게 알림이 간다 (F6·F9)
7마감 시각 이후 도착한 요청이 서버에서 거부된다
8알림 발송이 실패해도 낙찰 결과가 유실되지 않는다