F7. 찜하기
1. 기능명
경매 찜하기(관심 등록)
2. 기능 목적
관심 있는 경매를 저장해 두고 나중에 다시 찾는다.
- 사연을 바로 쓰지 않더라도 경매를 놓치지 않게 한다
찜은 개인 북마크다. 공개 지표가 아니므로 정렬이나 순위에 쓰지 않는다. 인기순 정렬 기준은 모인 사연 수다 (F2 3.2).
변경점 — 기존에는 '입찰참여자' 모드에서만 찜이 동작했다. 찜은 단순 북마크이므로 참여 여부와 무관하게 개방한다.
3. 동작 방식
3.1 권한
| 관계 | 찜하기 |
|---|---|
| 비회원 | - |
| 주최자 | - |
| 참여자 | O |
| 방문자 | O |
주최자만 제외한다. 자기가 등록한 경매를 스스로 찜하는 것은 의미가 없고, 인기순 정렬을 왜곡할 수 있다.
3.2 토글
| 동작 | 처리 |
|---|---|
| 찜 | 내 찜 목록에 추가 |
| 찜 해제 | 내 찜 목록에서 제거 |
찜 수를 공개하지 않는다. 다른 사용자에게 보이는 숫자가 없다.
3.3 처리 순서
내 행 하나만 추가하거나 삭제한다. 다른 사용자의 값을 읽거나 쓰지 않는다.
- 찜 상태에 따라 행을 삽입하거나 삭제한다
- 성공 시 아이콘 상태를 갱신한다
찜은 (경매, 사용자) 단위로 저장되므로 동시 조작 경합이 발생하지 않는다.
3.4 마감된 경매
찜하기와 해제 모두 허용한다. 찜은 경매 결과에 영향을 주지 않는 개인 북마크이므로, 마감 이후에도 목록을 정리할 수 있어야 한다.
3.5 표시
| 위치 | 표시 |
|---|---|
| 홈 · 탐색 목록 | 카드 우측에 찜 아이콘. 상세로 들어가지 않고 바로 찜한다 |
| 경매 상세 | 찜 아이콘(활성/비활성) |
| 마이페이지 찜 목록 | 찜한 경매 전체 (F8) |
목록에서도 찜한다. 둘러보다 마음이 가는 물건을 만났을 때 상세로 들어갔다 나오게 하지 않는다. 노출 규칙은 상세와 같다 — 주최자와 비회원에게는 그리지 않는다 (3.1). 비회원에게 목록에서만 보이면 상세와 어긋난다.
마감 임박 캐러셀에는 넣지 않는다. 158×168 짜리 카드라 하트를 얹으면 제목·남은 시간과 부딪힌다. 그 자리는 훑어보는 곳이고, 찜은 바로 아래 목록에서 할 수 있다.
판정은 서버가 끝낸다. 탐색 목록은 화면이 이어서 더 불러오는 구조라, 찜 가능 여부와 현재 상태를 목록 데이터에 실어 보낸다. 화면에서 다시 판정하면 같은 규칙이 두 곳에 생긴다 — 상세가 can.favorite 하나로 정하는 것과 같다.
4. 예외 처리
| 상황 | 처리 |
|---|---|
| 비회원이 찜 시도 | 로그인으로 유도하고, 로그인 후 원래 경매로 복귀시킨다 |
| 주최자가 자기 경매 찜 시도 | 찜 버튼을 노출하지 않는다 |
| 중복 클릭 / 빠른 연타 | 처리 중에는 버튼을 비활성화한다 |
| 동시에 여러 사용자가 찜 | 각자 자기 행만 추가·삭제하므로 서로 영향을 주지 않는다 |
| 찜 요청 실패 | 아이콘 상태를 원래대로 되돌리고 실패 안내를 표시한다 |
| 경매 정보 조회 실패 | 찜 버튼을 비활성 상태로 두고 재시도를 안내한다 |
| 찜한 경매가 삭제됨 | 찜 목록에서 제외해 표시한다. 목록이 깨지지 않아야 한다 |
| 찜 목록 조회 실패 | 에러 상태와 재시도를 제공한다. 빈 목록으로 위장하지 않는다 |
5. 완료 조건
| # | 조건 |
|---|---|
| 1 | 주최자를 제외한 로그인 사용자 전원이 찜할 수 있다. 유형 조건이 없다 |
| 2 | 참여 여부와 무관하게 찜이 동작한다 (참여자·방문자 모두 가능) |
| 3 | 주최자에게 자기 경매의 찜 버튼이 노출되지 않는다 |
| 4 | 찜·해제가 토글로 동작한다 |
| 5 | 연타·동시 조작에도 상태가 어긋나지 않는다 |
| 6 | 요청 실패 시 아이콘이 원래 상태로 복원된다 |
| 6-1 | 찜 수가 다른 사용자에게 노출되지 않는다 |
| 7 | 마감된 경매도 찜·해제가 가능하다 |
| 8 | 찜한 경매가 마이페이지 찜 목록에 나타난다 |
| 9 | 홈·탐색 목록에서 상세로 들어가지 않고 찜할 수 있다 (3.5) |
| 10 | 목록에서도 주최자·비회원에게는 찜 버튼이 보이지 않는다 |