카드마다 할인 항목도 다르고, 전월실적 조건도 다르고, 한도도 달라서 매번 어떤 카드를 써야 할지 헷갈려요. 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 683 cards from 24 Korean issuers.
- 명세서 분석: CSV, Excel, PDF 파일을 올리면 알아서 읽고 항목별로 분류
- 거래 분류: 350개 이상 키워드 매칭 기반 분류 + 수동 수정 지원
- 카드 추천: 전월실적, 할인한도까지 따져서 항목별로 가장 이득인 카드 조합 계산
- 절약 비교: 카드 한 장으로 쓸 때와 체리피킹했을 때 차이를 한눈에
- 683개 카드 데이터: 24개 카드사 혜택을 YAML로 정리
- 웹 대시보드: GitHub Pages에서 바로 사용 가능. 기본 분석은 브라우저에서 처리돼요
- CLI: 터미널에서 명세서 분석
명세서에서 읽은 거래를 항목별로 나누는 과정이에요.
- 키워드 매칭 (350개 이상): "스타벅스"는 카페, "쿠팡"은 온라인쇼핑처럼 가맹점 이름으로 바로 분류
- AI 임베딩 (미구현): 현재 로드맵에 없음
- 수동 수정: 거래 목록에서 드롭다운으로 직접 고칠 수 있어요. 고친 다음 "변경 적용"을 누르면 추천이 다시 계산돼요
| 카드사 | 카드 수 | 카드사 | 카드 수 | |
|---|---|---|---|---|
| 신한카드 | 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 분류 | 미구현 (로드맵에 없음) |
| 데이터 | Zod, YAML, 683+ 카드 규칙 |
| 배포 | GitHub Pages (정적 사이트) |
| CLI/스크래퍼 | Bun, Claude API |
| 언어 | TypeScript 5.9 |
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 (683+)
│ └── 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로 보내주세요.