cherrypicker Svelte Themes

Cherrypicker

내 소비에 맞는 카드 조합 찾기 — 561 cards, 24 issuers, browser AI categorization

CherryPicker

CherryPicker

내 소비에 맞는 카드 조합 찾기

Demo · 카드 데이터


뭐하는 건가요

카드마다 할인 항목도 다르고, 전월실적 조건도 다르고, 한도도 달라서 매번 어떤 카드를 써야 할지 헷갈려요. CherryPicker는 카드 명세서를 넣으면 항목별로 어떤 카드가 가장 이득인지 계산해 줘요.

한 장짜리로 밀어 쓸 때보다 얼마나 더 아낄 수 있는지도 비교할 수 있어요.

CherryPicker analyzes your credit card statement and finds the best card for each spending category, factoring in performance tiers, monthly caps, and reward types across 561 cards from 24 Korean issuers.


주요 기능

  • 명세서 분석: CSV, Excel, PDF 파일을 올리면 알아서 읽고 항목별로 분류
  • 거래 분류: 350개 이상 키워드 매칭 + 브라우저 AI 임베딩 모델(multilingual-e5-small)로 미분류 거래 자동 분류. 수동 수정도 가능
  • 카드 추천: 전월실적, 할인한도까지 따져서 항목별로 가장 이득인 카드 조합 계산
  • 절약 비교: 카드 한 장으로 쓸 때와 체리피킹했을 때 차이를 한눈에
  • 561개 카드 데이터: 24개 카드사 혜택을 YAML로 정리
  • 웹 대시보드: GitHub Pages에서 바로 사용 가능. 서버로 데이터가 안 나가요
  • CLI: 터미널에서 명세서 분석

거래 분류 방식

명세서에서 읽은 거래를 항목별로 나누는 과정이에요.

  1. 키워드 매칭 (350개 이상): "스타벅스"는 카페, "쿠팡"은 온라인쇼핑처럼 가맹점 이름으로 바로 분류
  2. AI 임베딩 (선택): 키워드로 안 잡히는 거래는 브라우저에서 multilingual-e5-small 모델을 돌려서 의미 유사도로 분류. 모델은 33MB 정도, 버튼을 눌러야 내려받아요
  3. 수동 수정: 거래 목록에서 드롭다운으로 직접 고칠 수 있어요. 고친 다음 "변경 적용"을 누르면 추천이 다시 계산돼요

지원 카드사

카드사 카드 수 카드사 카드 수
신한카드 65 카카오뱅크 9
현대카드 48 수협은행 8
삼성카드 47 MG새마을금고 8
롯데카드 47 토스뱅크 5
KB국민카드 47 케이뱅크 5
하나카드 45 신협 4
우리카드 42 KDB산업은행 2
IBK기업은행 35 우체국 2
NH농협카드 34 제주은행 19
iM뱅크 21 BNK 19
BC카드 18 전북은행 11
SC제일은행 10 광주은행 10

기술 스택

Astro 6, Svelte 5, Tailwind CSS 4
파싱 PapaParse, SheetJS, pdfjs-dist
AI 분류 Transformers.js, multilingual-e5-small (브라우저 WASM)
데이터 Zod, YAML, 561개 카드 규칙
배포 GitHub Pages (정적 사이트)
CLI/스크래퍼 Bun, Claude API
언어 TypeScript 6

프로젝트 구조

cherrypicker/
├── apps/web/              # Astro 정적 웹앱 (GitHub Pages)
│   ├── src/lib/parser/    # 브라우저용 파서 (CSV, XLSX, PDF)
│   ├── src/lib/analyzer.ts # 분석 파이프라인
│   ├── src/lib/categorizer-ai.ts # AI 임베딩 분류기
│   └── public/data/       # 빌드된 cards.json
├── packages/
│   ├── core/              # 분류기, 계산기, 옵티마이저 (순수 TS)
│   ├── parser/            # Node/Bun용 파서 (CLI에서 사용)
│   ├── rules/data/cards/  # 카드사별 YAML (561개)
│   └── viz/               # 터미널 테이블, HTML 리포트
├── tools/
│   ├── cli/               # CLI 진입점
│   └── scraper/           # Claude API로 카드 혜택 수집
└── scripts/build-json.ts  # YAML → JSON 빌드

사용법

hletrd.github.io/cherrypicker에서 바로 써 볼 수 있어요. 명세서를 올리면 브라우저에서 바로 분석해요. 서버로 데이터가 나가지 않아요.

로컬 개발

git clone https://github.com/hletrd/cherrypicker.git
cd cherrypicker
bun install

# 카드 데이터 빌드
bun run scripts/build-json.ts

# 웹 개발 서버
bun run dev:web

# CLI로 명세서 분석
bun run analyze

카드 데이터

카드 혜택은 packages/rules/data/cards/{카드사}/{카드이름}.yaml 파일로 관리돼요.

card:
  id: "shinhan-b-big"
  issuer: "shinhan"
  name: "B.Big"
  nameKo: "삑"
  type: credit
  annualFee:
    domestic: 10000
    international: 13000

performanceTiers:
  - id: tier1
    label: "전월 30만원 이상"
    minSpending: 300000

rewards:
  - category: "public_transit"
    type: discount
    tiers:
      - performanceTier: tier1
        fixedAmount: 200
        monthlyCap: 6000

globalConstraints:
  monthlyTotalDiscountCap: 15000

카드 데이터 수정이나 새 카드 추가는 PR로 보내주세요.


라이선스

MIT

Top categories

Loading Svelte Themes