문제
병·의원과 딜러가 검수된 중고 의료장비를 경매·직거래로 사고팔고, 이 플랫폼을 한·태 양방향 무역으로 넓힙니다. 입찰은 한꺼번에 몰릴 수 있습니다.
결정
- 경매 단위 advisory lock을 잡는 SECURITY DEFINER RPC 하나에서 판정·가격·마감·알림을 원자적으로 만들고, 최대 입찰가는 본인 전용 RLS 테이블에만 저장합니다.
- "두 사이트, 하나의 시스템" — 경매 사이트와 무역 사이트가 회원·관리자·상품등록·다국어·보안을 공유하는 구조로 내부 의견 충돌을 정리했습니다.
- 정렬 기준을 배지와 같은 실시간 계산식으로 바꿔, 저장된 할인율과 실시간 값이 어긋나지 않게 했습니다.
부서진 곳과 고친 방법
- 모든 페이지가 402로 멈췄습니다. 루트 레이아웃이 모든 URL에서 카테고리 127행과 경매 28행×35컬럼을 캐시 없이 조회해 하루 약 60만 REST가 나갔습니다. 한도만 풀면 다시 터지므로 코드부터 고쳤습니다.
- 예시 매물 60건이 마감 자동 연장 없이 한날 일괄 종료될 상황이었습니다. 마감 10분 전인 예시 로트만 7~14일 뒤로 미는 크론을 넣었고, 입찰·조회가 있는 로트는 건드리지 않습니다.
AI 지휘
Claude Code가 하단 탭 라벨이 안 보이는 것을 "캡처 착시"로 보고하자, 기각하고 재측정을 요구했습니다.
결과
- 입찰 RPC 110 PASS / 0 FAIL — 동시성 20파도 · RLS 역검증 · 롤백 왕복
- 게이트 25종 그린
- 데스크톱 LCP 중앙값 1,151ms(Lighthouse 5회 중 4회 같은 요소)
- 4개국어 번역 1,434키
- 12대분류 × 65세부, 감사로 결함 130건 도출·원인별 분류