계획 수립과 PRD 작성하기
— 아이디어에서 MVP 설계까지
코인 직접 투자를 하다 보면 누구나 한 번쯤 겪는다. 오를 것 같아 못 팔고, 내릴 것 같아 못 사는 그 심리적 함정을. 이성이 아니라 감정이 매매를 결정하는 순간들이 반복되면서, 규칙 기반의 자동매매 시스템이 필요하다는 결론에 이르렀다. 아래에 거래소 선택부터 기술 스택 확정, 첫 번째 PRD 작성까지의 과정을 정리했다.
01 왜 자동매매인가
코인 시장은 24시간 열려 있다. 사람이 직접 보기엔 너무 긴 시간이고, 보고 있어도 감정이 개입하면 의미가 없다. 손실이 나면 본전 심리에 물타기를 하고, 수익이 나면 욕심에 매도 타이밍을 놓친다. 이 패턴을 끊으려면 사람이 아니라 규칙이 매매를 결정해야 한다.
규칙 기반 매매가 자리를 잡으면 백테스팅이 가능해진다. 과거 데이터에 전략을 돌려보고 성과를 수치로 확인한 뒤 실전에 적용하는 흐름이 만들어진다. 감과 직관이 아니라 데이터가 판단 기준이 된다.
02 거래소 선택: Korbit
원래 거래하던 Korbit을 그대로 선택했다. 플랫폼을 새로 익히는 비용을 없애기 위해서다. 기술적으로도 선택에 무리가 없었다.
-
REST API 문서 품질 국내 거래소 중 API 문서가 잘 정리되어 있고, 엔드포인트별 요청/응답 스펙이 명확하다.
-
HMAC-SHA256 인증 표준적인 서명 방식으로 구현이 복잡하지 않다. API Key + Secret으로 서명을 생성하는 방식이다.
-
공개/인증 API 분리 시세·캔들은 인증 없이, 잔고·주문·체결은 인증 후 호출하는 구조가 명확하게 구분되어 있다.
주의할 점이 하나 있다. Rate Limit이 초당 9회이기 때문에 요청 사이에 0.11초 딜레이를 반드시 넣어야 한다. 여러 코인을 동시에 폴링할 때 이 부분을 놓치면 요청 차단이 발생한다.
03 기술 스택 결정
복잡한 데스크탑 앱 대신 브라우저에서 어디서든 접근할 수 있는 웹 기반으로 방향을 잡았다. 별도의 디자인 시안 없이, 평소 마음에 들었던 금융 관련 화면을 캡처해서 Claude에게 넘기는 방식으로 UI 방향을 설정했다.
| 레이어 | 기술 | 포트 |
|---|---|---|
| Frontend | Next.js 16 + React 19 + TypeScript + Tailwind CSS | 3000 |
| Backend | FastAPI + Python + async/await | 8000 |
| Database | PostgreSQL (SQLAlchemy ORM, asyncpg) | — |
| Exchange | Korbit REST API (HMAC-SHA256) | — |
백엔드를 FastAPI + Python으로 선택한 이유는 하나다. 이후 추가할 알고리즘 계산, 머신러닝 모델 연동, 데이터 분석 라이브러리를 모두 Python 생태계에서 처리할 수 있기 때문이다.
04 1단계 범위 결정: MVP 우선
처음부터 전체를 만들려다 실패하는 경우가 많다. 자동매매 알고리즘, 백테스팅, 손익 분석은 모두 2단계로 미뤘다. 1단계에서 목표한 것은 딱 세 가지다.
- 01 전체 화면 레이아웃 구성 — 좌우 2분할 구조. 좌측 Portfolio, 우측 Control Panel.
- 02 Korbit API 연동 — 시세 조회, 잔고 조회, 캔들 데이터 수신.
- 03 Portfolio 페이지 — 보유 코인 현황(현재가, 매수 단가, 평가손익)을 실시간으로 표시.
05 PRD: 화면 구성과 기능 목록
PRD(Product Requirements Document)를 작성하고 Claude에게 넘겼다. 화면 레이아웃은 ASCII 아트로 표현했다. 말로 설명하는 것보다 구조가 훨씬 명확하게 전달된다.
┌─────────────────────┬──────────────────────┐
│ Portfolio Panel │ Control Panel │
│ (보유 코인 현황) │ (자동매매 관리) │
│ │ │
│ - 보유 현금 │ - 코인 추가/삭제 │
│ - 코인별 카드 │ - 자동매매 ON/OFF │
│ · 현재가 │ - 각종 설정 버튼 │
│ · 매수 단가 │ │
│ · 평가손익 │ │
│ · 미니 차트 │ │
│ · 자동매매 여부 │ │
└─────────────────────┴──────────────────────┘
주요 기능 목록은 다음과 같이 정리했다.
-
보유 코인 현황 매수 총 금액, 현재 평가금액, 매수 단가, 현재 단가, 수익률을 카드 형태로 표시.
-
자동매매 적용 코인 선택 거래량 상위 20개 리스트를 팝업으로 표시. 이미 적용된 코인은 선택 불가 처리.
-
Start.bat / Stop.bat 프론트엔드 + 백엔드 서버를 동시에 시작하거나 종료하는 배치 파일.
06 첫 번째 바이브코딩 프롬프트
Claude에게 전달한 첫 번째 프롬프트다. 구현 방식보다 무엇을 만들어야 하는지, 어떤 UI 구조인지를 먼저 설명했다. 알고리즘은 제외하고 UI와 API 연동만 먼저 만들어달라고 요청했다.
# 전달한 프롬프트
코인 매매 거래소 : Korbit
기술스택 : NEXT.js + python + CSS wind 로 구성, 웹기반 UI 제공
UI : 화면을 좌우 2분할
> 좌측: 보유 코인들의 현황 (시세추이, 매수 총 금액, 총 보유 금액, 매수 단가, 현재 단가)
> 우측: 옵션 설정
주요 기능:
> 자동매매 적용 코인 선택: 거래량 상위 20개 리스트, 이미 반영된 항목은 선택 불가
> 자동매매 설정: 알고리즘 선택, 적용 금액/주기 변경, 기간 설정, 손익 분석
> 서버 자동 시작/종료 배치 파일 (Start.bat, Stop.bat)
"자동 매매 알고리즘"을 제외한 모든 UI를 구성하고,
"자동 매매 알고리즘"은 제안해줘
07 결과물: 디렉토리 구조
첫 번째 프롬프트 결과로 아래 구조가 생성됐다. 백엔드와 프론트엔드가 src/ 아래에 나란히 위치하는 모노레포 구조다.
Coin_Automatic_Trade_System/
├── Start.bat / Stop.bat # 서버 시작/종료
├── src/
│ ├── backend/
│ │ ├── main.py # FastAPI 진입점
│ │ ├── korbit_client.py # Korbit API 클라이언트
│ │ ├── db_pg/
│ │ │ ├── models.py # ORM 테이블 정의
│ │ │ └── pipeline.py # upsert/log 함수
│ │ ├── routers/
│ │ │ ├── market.py # 시세, 캔들
│ │ │ ├── trading.py # 잔고, 체결 내역
│ │ │ ├── auto_trade.py # 자동매매 CRUD
│ │ │ └── analysis.py # 백테스트, 손익
│ │ └── services/
│ │ ├── auto_trade_service.py # 알고리즘 구현
│ │ └── scheduler_service.py # 30초 폴링 루프
│ └── frontend/
│ ├── app/page.tsx # 메인 대시보드
│ └── components/
│ ├── PortfolioPanel.tsx # 좌측: 보유 현황
│ ├── ControlPanel.tsx # 우측: 자동매매 관리
│ └── modals/ # 각종 팝업 모달
└── docs/
30초마다 실행되는 스케줄러가 핵심이다. 폴링 주기로 Korbit API를 호출하고, 알고리즘 시그널을 생성한 뒤 조건이 충족되면 주문을 실행한다. 이 흐름이 시스템 전체의 뼈대를 이룬다.
감정을 제거하고 규칙으로 매매하겠다는 목표로 시스템 설계를 시작했다. Korbit REST API, Next.js + FastAPI 스택을 선정하고, 자동매매 알고리즘을 제외한 UI와 API 연동만을 1단계 목표로 삼아 PRD를 작성했다. 바이브코딩으로 첫 번째 프롬프트를 던지자 디렉토리 구조가 생성됐고, 30초 폴링 기반의 스케줄러 뼈대가 만들어졌다. 2편에서는 이 뼈대 위에 실제 매매 전략들을 얹는 과정을 다룬다.

'비전공자의 바이브 코딩 > 일상 & 기초' 카테고리의 다른 글
| 클로드코드(Claude Code)로 코인 자동매매 프로그램 만들기 : #3. 편의 기능 및 1차 완성 (0) | 2026.05.16 |
|---|---|
| 클로드코드(Claude Code)로 코인 자동매매 프로그램 만들기 : #2. 자동매매 전략 수립 (0) | 2026.05.16 |
| 클로드코드(Claude Code)로 주식 분석 웹 서비스 만들기 : #5. 카카오톡 연동하기 (1) | 2026.05.05 |
| 클로드코드(Claude Code)로 주식 분석 웹 서비스 만들기 : #4. 주식 분석 기능 만들기 (0) | 2026.05.05 |
| 클로드코드(Claude Code)로 주식 분석 웹 서비스 만들기 : #3. 웹 페이지 만들기 (0) | 2026.05.04 |