Drag to move
‹ Home

Churim

A live deal curation service that backs every pick with price history

Open ↗
Released
2026.09
Role
Planning · Development · Operations
Tech
4

Preview

  • 추림 홈 — 요약 줄과 카테고리 칩
  • 가격 추이 시트

About this app

The write-up below is in Korean. For an English overview of every project, see the CV.

왜 만들었나

지난 버전에서 “원인은 아직 못 찾았다”고 남겨 둔 네이버 오류는, 네이버가 쇼핑 검색 API를 닫은 것이었다. 파고들다 더 나쁜 것을 찾았다. 갱신이 멈춘 네이버 상품 4건 전부에 ‘역대 최저’ 배지가 붙어 있었다. 같은 등록가가 매일 기록에 쌓이니 “현재가 ≤ 과거 최저”가 늘 참이었던 것이다.

원칙은 “주장에는 증거를 붙인다”였다. 이번에는 질문이 하나 늘었다 — 그 증거는 진짜 증거인가. 가격을 실제로 관측했는지, 실제로 움직였는지, 기록 한 줄이 정말 상품 하나의 것인지.

무엇을 만들었나

churim.com 에서 운영 중인 특가 큐레이션 서비스의 v0.8.4~v0.9.8이다. 8월 중 사흘 동안 커밋 17개를 냈고, 9월 4일에 실측을 바탕으로 한 방향 검토를 남겼다.

첫 화면에는 ‘가격 추적 · 역대 최저 · 가격 내림’ 요약 줄을 올리고, 필터 첫 줄을 카테고리 칩으로 바꿨다. 직전 기록보다 싸진 상품에는 초록색 ’↓N원’이 붙는다.

추림 홈 — 요약 줄과 카테고리 칩

10월 28일 아침 갱신분이라 요약 줄 숫자는 이 글의 시점(9월 4일)이 아니라 캡처한 날의 값이다. 맨 위 요약 줄이 사이트가 가진 근거를 먼저 보여 주고, 필터 첫 줄은 카테고리 칩이 차지한다.

카드의 작은 가격 그래프를 누르면 최대 180일치 기록과 최저·평균·최고·현재가, 한 줄 판정이 담긴 시트가 열린다.

가격 추이 시트

83회 관측된 세탁기의 가격 추이 시트. 카드는 그대로 쿠팡으로 가는 링크로 두고, 그래프를 누를 때만 기록을 불러온다.

어떻게 만들었나

새로 모으기 전에 보이게 한다. 상품 72개 중 44개가 가격 기록을 갖고 있었는데, 화면에서는 작은 스파크라인 한 줄이 전부였다. 반대로 필터 첫 축인 플랫폼은 쿠팡 68 · 네이버 4 · 알리 0이라 고를 것이 없었다. 그 자리를 카테고리에 줬다.

상세는 페이지가 아니라 시트로. 상세 페이지를 따로 두면 구매까지 한 단계가 늘어난다. 카드는 링크로 두고, 그래프를 누를 때만 기록을 불러와 라이브러리 없이 SVG로 그린다.

자동화가 막히면 사람의 손을 싸게. 쇼핑 검색 API는 7월 31일자로 끝났고 대체 수단이 없었다. 네이버 상품은 가격 추적 없는 큐레이션으로 내리고, 갱신은 등록용 북마클릿에 맡겼다. 상품 페이지에서 누르면 “가격 X → Y원으로 갱신할까요?“가 뜨고, 확정은 사람이 한다.

주장의 문턱을 올린다. 그날 실제로 관측한 가격만 기록하고, 한 번도 움직이지 않은 가격에는 저점을 주장하지 않는다. 판정 14건 중 9건이 관측 내내 1원도 변하지 않은 상품이었다. 근거가 약하면 시트도 “2026-08-03 관측 기준 최저입니다”처럼 말을 낮추고, 머리글은 ’N일 추적’에서 ’N회 관측’으로 바꿨다. 관측은 매일 되지 않기 때문이다.

이미지는 이미 있는 축소본으로. 쿠팡 CDN의 축소본 경로로 URL만 바꿔, 홈 이미지를 22.5MB에서 데스크톱 2.5MB로 줄였다.

걸렸던 것

공개 중이던 ‘역대 최저’ 3건 중 2건이 가짜였다. 쿠팡 검색 API는 같은 상품을 옵션별로 여러 행으로 주는데, 가격 기록의 키가 상품 ID뿐이라 두 옵션 가격이 한 기록에 번갈아 쌓였다. 14,860 → 13,880 → 14,860 → 13,880은 등락이 아니라 다른 상품 둘이 교대로 찍힌 값이었다. 그 가짜 진동이 ‘움직여야 저점’ 조건을 통과시켰다. 공허한 저점을 막으려던 문턱이 다른 문으로 샌 것이다. 매일 도는 점검은 오염된 기록을 자기 자신과 비교해 늘 통과했고, 13일 만에 다시 들여다보고서야 드러났다.

지혈은 절반만 먹혔다. 한 번의 수집에서 두 옵션이 같은 키를 쓰면 판정에서 빼게 했는데, 옵션 하나만 잡힌 날에는 충돌이 안 보여 배지가 되살아났다. 한 번이라도 섞인 기록은 영구 격리하고, 키에 옵션 ID를 넣어 원인을 고쳤다. 섞이지 않은 옛 기록은 새 키로 이어 붙여 65건이 추적을 유지했다. 배포 뒤 남은 배지는 1건, 실제로 779,000원에서 689,000원으로 내린 건조기였다.

복사해 둔 규칙은 한쪽만 고쳐진다. 키를 바꾼 직후 상세 시트 43건 중 22건이 ’이력이 충분하지 않습니다’를 띄웠다. 서버에 같은 키 규칙의 사본이 있었고, 주석에는 “동일 규칙”이라고까지 적혀 있었다.

어디까지 왔나

이제 배지 하나가 붙으려면 관측했는가, 움직였는가, 한 상품의 기록인가를 모두 통과해야 한다. 도입의 질문 셋에는 코드로 된 문턱이 생겼다.

9월 4일 실측은 증거의 양과, 그 증거를 볼 사람 쪽이 비어 있음을 보여 줬다. 상품별 가격 기록 1,653개 중 68.8%가 한 번만 관측됐고, 판정 문턱인 7회에 닿은 것은 7.1%뿐이다. 특가 목록이 매일 바뀌기 때문이다. “최대 180일”은 상한일 뿐이었다. 클릭의 상당수는 봇이었다. 16일 중 11일이 ’눌린 상품마다 정확히 한 번씩’인 패턴이었다 — 고르게 퍼져 있어 사람이라고 봤는데, 크롤러가 바로 그렇게 훑는다. 사이트맵에는 홈 하나뿐이고 구글 서치콘솔에도 등록하지 않아, 브랜드명으로 검색해도 나오지 않았다.

그래서 절반만 검증됐다. 주장은 정직해졌지만, 증거가 쌓일 만큼 머무는 상품도, 그걸 보러 오는 사람도 아직 확인하지 못했다.

남은 것

9월 검토가 정한 다음 순서는 아직 손대지 않았다. 첫째는 계측이다 — 지금은 방문 수도, 사람의 클릭 수도 모른다. 둘째는 사실과 다른 문구다. 딜 섹션 부제 ’할인폭이 큰 순서’는 할인율 데이터가 68건 중 0건이라 성립하지 않고, 카드 캡션은 아직 ’N일 추적 중’이라 시트의 ’N회 관측’과 어긋난다. 셋째가 검색엔진 등록과 상품별 주소다.

상품마다 한 줄 이유를 쓰게 만든 ‘고른 이유’ 칸은 코드만 끝났고, 9월 4일 기준 8건 중 0건이 채워져 있다. 알리 자동 수집도 코드만 있고, API 키 발급 단계에서 멈춰 있다.

Version history

  1. Churim2026.08
  2. Churim2026.09

Information

Made by
Kipyo Bae (kipioneer)
Version
2026.09
Role
Planning · Development · Operations
Tech
Node.js · Express · Coupang Partners API · SVG
Released
Link
churim.com