최종 갱신 (KST)

← 일감 목록
T-096

클라 — 거래소 · 경매장 화면 (목록 · 가격대 · 수량 구매 · 검색 · 등록 · 구매 · 취소 · 내 매물)

태웅 Closed 우선순위 보통 목표 261010 · 보관됨

번호 변경 (2026-09-25) — 처음엔 T-088 이었다. 원격에 같은 번호의 다른 일감(툴팁)이 먼저 올라가 T-096으로 옮겼다. 다른 문서·로그에 남은 T-088 가운데 경매장·거래소 클라 화면을 가리키는 것은 이 일감이다.

배경

서버 쪽 경매장(장비 즉시구매, T-094)과 거래소(자원 수량 구매·시세, T-091)가 섰다. 패킷은 Unity로 미러링돼 있고 클라 구독자가 0건이다. 클라 요청: 이슈 #37 플레이어 규칙은 거래 4장, 패킷 계약은 MikaPacket.cs의 C_/S_Auction*·C_/S_Market* 주석.

클라가 알아야 할 구조

Unity 클라 ──TCP(기존 MikaNetwork)──▶ 메인 서버 ──gRPC──▶ 경매장 서버
  • 클라는 메인 서버에만 붙는다. 경매장 서버는 클라에 보이지 않는다 — 새 접속·주소·인증이 없다.
  • 산 물건 · 판매 대금 · 취소/만료 반환은 전부 우편으로 온다(S_MailArrivedResponse). 거래 응답에는 물건이 실리지 않는다.
  • 골드는 S_CurrencyResponse로 따로 온다. 등록하면 인벤토리 변화가 S_AuctionRegisterResponse에 실린다.
  • 경매장이 점검 중이면 조회·구매가 AuctionUnavailable(1000)로 온다 — 게임은 그대로 돈다.

할 일

2026-09-30 결정: 거래소(자원)는 경매장 탭 안 하위 탭으로 둔다 · 등록은 경매장 화면의 [등록](인벤토리 칸에서 바로 올리지 않는다) · 인챈트 필터·표기는 이번에 빼고 이름·등급·가격만 — 능력치 칸 기획이 바뀌는 중이다(이슈 #46).

  • [x] 수신 — ServerPacketHandler에 응답 8종 · AuctionModel(창구 — 조회 결과·페이지 커서·송신) · 결과 코드 1000~1013 문구(ResultMessages)
  • [x] 등록 응답의 인벤토리 반영 — 자원은 ItemChangeInfos, 장비는 EquipId로 지운다(PlayerDataModel — 장비 제거는 EquipSync로 오지 않는다)
  • [x] 거래소(자원) — 목록(최저가·판매 중 수량·최근가·전일 평균) · 이름 검색 · 가격대 · 수량 구매(N개·단가 상한). T-091
  • [x] 장비 탭 — 이름·분류·희귀도 검색 · [더 보기](커서 페이지) · 즉시구매(ExpectedTotalPrice · AuctionPriceChanged면 다시 검색 안내) · 산 물건은 우편
  • [x] 등록 — 자원(TID·수량) / 장비(끼지 않은 개체만). 단가 즉시 판매가 ~ x10(가격 밴드 유지 — 2026-09-30 결정) · 총액 · 등록비 미리보기
  • [x] 서버 콘솔이 경매장 서버(10060)도 함께 띄운다 — 안 떠 있어 "점검 중"이 뜨던 원인
  • [x] 탭 재구성(2026-09-30) — 구매(자원·장비·캐릭터 축) · 등록 · 내 매물 3탭. 캐릭터 축은 (준비 중)
  • [x] 즉시 판매 vs 경매 등록 구분 — 인벤토리 툴팁 즉시 판매가·경매 등록가 · [즉시 판매] 버튼 · 등록 안내문·힌트·확인 창
  • [x] 수량·단가 입력 — 넘치면 최대값으로(보유량·상한·살 수 있는 수량), 모자라면 입력 끝에 최소값으로
  • [x] 내 매물 — 검색 결과에 [내 매물] 표시 · [구매] 잠금 · 거래소 가격대 "내 매물 N개" · 살 수 있는 수량에서 제외
  • [x] 가격 정렬(로컬 사본만) — 낮은 가격순 ↔ 높은 가격순 (자원·장비). "받은 순"은 2026-10-01 뺐다 · 장비는 받은 페이지 안에서만 정렬된다
  • [x] [더 보기] 버튼에 받은 수 — 더 보기 (20개 받음) · 전부 받음 (37개) (서버는 20개씩 · 커서 · HasMore)
  • [x] 가독성(2026-10-01) — 줄 아이콘 칸(ItemIconView) · 줄 툴팁(가격 기준 · 능력치 칸) · 라벨/가격 색 구분 · 등록 안내문·힌트 줄 나눔 · 구매 확인에 구매 후 골드 · 검색·도구 줄 드롭다운 라벨이 화살표와 겹치던 것
  • [x] 판매자 줄 — 서버가 준 이름(SellerName), 내 것은 나 (2026-10-03 · #47)
  • [x] CharacterTable.BasePrice 컬럼 추가 — 등급별 50·100·250·600·1500·4000 (캐릭터 즉시 판매·경매 하한)
  • [x] 캐릭터 경매 (2026-10-03 · #47) — 구매 › 캐릭터 검색(Character Search Presenter — 장비 검색의 복제) · 줄은 레벨, 적성 5종은 툴팁 · 등록 · 우편 캐릭터 첨부 · 결과 코드 문구. 즉시 판매는 T-075
  • [x] 등록할 수 없는 장비·캐릭터도 흐린 줄로 남기고 툴팁에 사유(EntityBlockText) (2026-10-03)
  • [x] 인벤토리 칸 Shift+우클릭 → 경매 등록(물건이 골라진 채로) (2026-10-03 · 결정 4)
  • [x] 개선안 P4 — 내 매물 자동 갱신 + 탭 배지 · P5 — "n분 전에 받음" · P6 — 정렬 버튼 "받은 것 중 …" (2026-10-03)
  • [ ] ⏸ 개선안 P1 — 장비·캐릭터 TID별 시세 요약 → T-119 (서버 T-118 · 이슈 #52) — 이 일감의 완료를 막지 않는다
  • [x] 내 매물 · 취소 — 열 때마다 새로 받는다 · Reserved는 취소 잠금 · 취소 확인 창에 "등록비 미환급"
  • [x] 씬 — Auction Page 안 하위 탭 4개 · AuctionRowView 프리팹 · Auction (MODEL) 오브젝트
  • [x] 능력치 칸 표기 — 매물 줄 능력치 n/N · 아이콘 칸 네모 · 툴팁. 지금은 옛 인챈트 필드로 읽는다(EquipLabel.ReadStatOptions)
  • [x] 새 능력치 구조 — 칸 수는 EnchantGradeTable.SlotCount(서버와 같은 표) · 장비 검색에 인챈트 등급 드롭다운 하나(옵션 다중 선택은 매물이 쌓인 뒤) (2026-10-03 · #46)
  • [x] 실측 (2026-10-03 사용자 실측) — 경매장 서버를 띄우고 계정 둘로 등록 → 검색·구매 → 우편 수령 (거래소 수량 구매 · 취소 반환 · 캐릭터 경매 · 판매자 이름 · 인챈트 검색 · Shift+우클릭 · 내 매물 배지 포함)
  • [x] 실측 뒤 옛 Character Auction Page(꺼 둔 (준비 중) 자리) 삭제 (2026-10-03)
  • [x] 실측 폴리싱 (2026-10-03) — 장비 검색 줄이 열 폭을 밀던 것(2단으로 나눔) · 등록 화면 3줄 문구 넘침 · "등록은 되는데 내 매물·검색이 빈다"는 클라가 아니라 메인 DB만 비워 경매장 DB와 매물 ID가 겹친 것(경매장 DB 삭제로 복구 · Agent 로그 2026-10-03-auction-character-entity-sell.md)

완료 조건

클라에서 등록 → 다른 계정으로 검색·구매 → 우편 수령까지 화면으로 돈다 — 자원·장비·캐릭터 모두.

막고 있는 것 / 선행 일감

  • 없음. 서버는 완료(T-094). 우편함 화면은 T-083(✅ 2026-09-26)

관련 커밋

  • 33f5a5a 캐릭터 경매 · 캐릭터·장비 즉시 판매 (2026-10-03)
  • 이 커밋 — 실측 폴리싱 · 보관