샘호트만
샘호트만
⚔️ 베테랑 파트너
🔬 임팩트 찐친

바이브코딩 기획부터 개발까지 내가 생각하는 Bible (claude code 말고 codex로 + 비트코인 선물 자동 매매 시스템 구축을 곁들인)

소개

안녕하세요. 샘호트만 입니다. 옛날부터 투자에 관심이 많고, 예전에 개인적으로 퀀트 쪽을 많이 공부했었습니다. 이 도메인 지식을 바탕으로 한번 이번 기회에 클로드코드로 비트코인 선물(future) 자동 매매 시스템을 구축하는 프로젝트를 개발하고 있습니다. 저도 스터디가 끝날 때 쯤 다 완성할 줄 알았지만 현생에 다양한 일 때문에 잔고를 조회하고 에이전틱하게 상위 에이전트가 아주 간단하게 프롬프트만 짜서 매매 주문만 넣는 것 정도만 구현을 했습니다. 그래서 제가 현재 얼마를 벌었다와 같은 결과를 보여드리기 보다는 바이브코딩하는데 기획을 어떻게 하는지 공유하는 것이 스터디원들에게 더 많은 영감을 준다고 판단하여 이 글을 작성합니다.

참고로 선물은 위험하니까 여러분 주변 원수에게만 추천해주세요!

3개월 전, 대시보드 제작 프로젝트에서 1등을 했던 경험이 있습니다. 대략적인 기획은 조코딩님 영상(https://youtu.be/j3LIM-EFBIg?t=6349) 참고해주세요. 제가 어떤 생각을 하고 있는지 참고하는데 도움이 되실 겁니다.

매매의 핵심은 '언제, 왜' 사고파는지에 대한 명확한 근거, 즉 '맥락(Context)'을 수집하고 판단하는 것입니다. 저는 이 과정을 자동화하기 위해 여러 하위 에이전트(Sub-agent)가 각자의 역할을 수행하며 수집한 정보를 상위 에이전트가 종합하여 최종 투자 결정을 내리는 아키텍처를 구상했습니다. 3개월 전에 구현한 코드가 있었지만 당시에 claude 3.7 sonnet + cursor 로 구현 했을 때에 사이즈를 키워나가니 제 지식과 별개로 스파게티 코드가 되어버려 유기를 해버렸습니다. 그래서 더 체계적인 기획과 AI 도구를 활용하여 프로젝트를 재정비하고 개발한 과정을 공유하고자 합니다. 이제 제가 바이브코딩 하기 전 어떤 과정을 거치는지 보여드리겠습니다.

진행 방법

저는 코딩부터 시작하는 대신, 기획 단계에 가장 많은 시간과 노력을 투자합니다. 아이디어를 구체화하고 개발 과정의 효율을 높이는 저만의 워크플로우를 소개합니다.

1. 아이디어 스케치 및 브레인스토밍 (Obsidian + Excalidraw)

산책하고 뇌를 깔끔하게 비워놓은 상태에서 그림을 조금씩 그려봅니다.

가장 먼저 ObsidianExcalidraw 플러그인을 사용해 아이디어를 시각적으로 스케치하고 생각을 정리합니다. AI가 매매 결정을 내리기 위해 어떤 정보(맥락)가 필요할지 브레인스토밍하며 전체적인 아키텍처를 그렸습니다.

  • 수집할 맥락의 종류: 투자 유튜버들의 분석, 최신 뉴스, 경제 지표, 과거 매매 기록(DB) 등

  • 목표: 다양한 소스로부터 수집된 맥락을 바탕으로 AI가 통계적, 상식적으로 유의미한 투자 결정을 내리게 하는 것

4개월 전에 그렸던 초기 아키텍처입니다. 지금의 방향과는 조금 달라졌지만, 이런 식으로 생각을 구체화하는 단계를 반드시 거칩니다. 제일 중요한 것은 도메인 지식이 제일 중요하다고 생각하며 해당 내용을 캡처해서 언어모델과 대화를 진행하며 저도 아이디어를 습득합니다.

2. AI와 기획 구체화, 컨텍스트 엔지니어링 (Gemini & Claude)

스케치를 바탕으로 GeminiClaude 같은 LLM(거대 언어 모델)과 대화하며 기획을 다듬습니다. 이때 중요한 것은 "이거 만들어 줘"가 아니라, 제가 기획한 내용을 먼저 제시하고 더 나은 방향이 있는지 제안을 구하는 것입니다.

사용한 프롬프트 예시 (Gemini):

저는 비트코인 선물 암호화폐 자동매매 봇을 구현하고자 합니다. 
그 전에 저는 당신과 대화를 하며 기획을 하고 싶습니다. 저는 python 조금과 n8n 을 할 수 있는 역량을 가지고 있습니다.
최종적으로는 하위 에이전트들의 결과를 종합하여 상위 에이전트(성능이 좋은 똑똑한 모델)가 최종 결정하여 롱/숏/포지션유지(현금보유 또는 포지션 있는 상태고려) 를 의사결정합니다. 롱/숏 포지션을 잡을 때에는 가격 타점과 현재(이건 일봉, 4시간봉, 15분 봉 등 타임프레임에 대한 정의가 필요함) 비트코인 가격대에 대한 정보를 인입받아 json으로 출력해서 python과 바이낸스 api를 이용하여 매매를 하는 것이 목표입니다.

우선 제가 옛날에 막 생각했었던 내용을 한번 작성한 내용입니다. 한번 보시고 의견을 주면 좋겠습니다.

---
언어모델의 단점은 현재 시점이 언제인지 알 수 없고 지식 범위가 단절되어있다는 것이 굉장히 큰 문제입니다. 전체적인 시황이나 맥락을 프롬프트에 구성하여 전달해야하기 때문에 하위 에이전트의 역할이 중요합니다. 
매매를 하기 직전에 투자 근거를 제시하고 그 다음 포지션 진입을 수행합니다. 이 근거와 포지션 진입 히스토리를 바탕으로 매매일지를 작성합니다. 매매일지는 db 형태로 구성되어야하며, 투자 회고를 수행해서 최근이나 장기적으로 내가 잘한점 못한 점을 반성하여 포지션 들어갈 때 유의를 하여 접근합니다.
아래 내용은 제가 뷰로 그리고 있는 에이전트 목록들 입니다.



---

1. Fear & Greed Index (그냥 값만 따로 뽑아서 어디다 저장만 해도 될듯?)
(후략...)

이런 과정을 통해 AI와 의견을 주고받으며 기획의 완성도를 높이고, 실제 API와 연동할 출력 형식까지 미리 정의합니다. 실제로 gemini 2.5 pro, claude 4.1 opus, codex gpt 5 high 서로 돌아가면서 엄청 대화를 많이 나눴습니다. 언어모델에게 시키는 것보다 저는 오히려 이 친구들에게 정말 많이 배우면서 같이 성장하는 방향으로 나아가고 있습니다.

3. 프로젝트 폴더 구조 설계

8월 말부터 claude code opus 4.1 모델의 품질이 급격하게 떨어졌고 해외 reddit이나 국내에서 thread 에서도 말이 많았습니다. 저도 여기에 많은 실망을 해서 대체재를 찾던 중 codex가 나왔고 매우 흡족하고 있습니다. 코딩에 들어가기 전, 프로젝트의 전체적인 폴더 구조를 짜는 것은 정말 중요합니다.

개발에서 Scaffolding(프로젝트 개발을 바로 시작할 수 있도록 폴더구조, 기본파일, 설정파일을 자동으로 만들어주는 과정)이라는 개념이 있습니다. 그 안에 프로젝트 폴더 구조를 잘 짜야하는 내용도 포함이 되어있습니다. 프로젝트 구조가 잘 잡혀 있으면 추후 기능을 추가하거나 디버깅할 때 피로도가 훨씬 줄어듭니다. 이 과정 역시 AI의 도움을 받아 초안을 만듭니다.

사용한 프롬프트 예시 (Gemini 2.5 pro, 또 다른 대화 세션) :

"파이썬 기반의 비트코인 자동 매매 프로젝트를 시작하려고 해. 내가 선호하는 개발 방식은 Feature-Sliced Design (FSD) Architecture 사상(실제 유튜브 영상 https://www.youtube.com/watch?v=pYAYTJ0vFfs 대본을 요약한 맥락을 제공함)이야. 이 사상을 바탕으로 확장 가능하고 유지보수가 용이한 폴더 구조를 추천해 줘."

→ 초기 버전 제미나이 답변 예시

네, 좋습니다. 선호하시는 Feature-Sliced Design (FSD) 사상을 자동매매 봇 프로젝트에 맞게 변형하여 적용하는 것은 매우 훌륭한 선택입니다. FSD의 핵심인 \*\*'계층적 구조와 모듈화'\*\*는 복잡한 상호작용을 하는 에이전트 시스템을 깔끔하게 관리하는 데 큰 도움이 될 것입니다.

사용자 인터페이스(UI)가 없는 백엔드 서비스의 특성을 고려하여, FSD의 사상을 적용한 파이썬 프로젝트 폴더 구조를 아래와 같이 제안합니다.

-----

### 제안하는 프로젝트 폴더 구조

이 구조는 각 디렉터리가 명확한 책임을 지고, 의존성 방향이 `상위 계층 -> 하위 계층`으로 흐르도록 설계되었습니다. 즉, **`orchestrator`는 `agents`를 알고 있지만, `agents`는 `orchestrator`를 몰라야 합니다.**

```
trading-bot/
├── .env                  # API 키 등 민감 정보 저장
├── .gitignore            # Git 버전 관리에서 제외할 파일 목록
├── README.md             # 프로젝트 설명서
├── requirements.txt      # 프로젝트 의존성 패키지 목록
├── main.py               # 🤖 봇을 시작하는 메인 진입점

├── data/                 # 런타임 중 생성되는 데이터 (Git 추적 안 함)
│   ├── trade_journal.db  # 매매일지를 저장할 SQLite DB 파일
│   └── logs/             # 시스템 로그 파일 저장
│       ├── bot.log
│       └── errors.log

├── core/                 # 共有(Shared) 계층: 프로젝트 전반에서 사용되는 핵심 기반 기능
│   ├── __init__.py
│   ├── api_clients/      # 외부 API 클라이언트 모음
│   │   ├── __init__.py
│   │   ├── binance_client.py
│   │   └── llm_client.py
│   ├── (중략 ...)
```

-----

### 각 디렉터리의 역할과 책임

#### `main.py` (최상위 진입점)
(후략)

4. 서브 에이전트 구현 (Claude Code)

최근에 배운 Claude Code의 서브 에이전트 기능을 활용해 '실시간 계좌 잔고 모니터링' 기능을 구현해 보기로 했습니다. Claude Code가 서브 에이전트 기능을 제대로 이해하고 활용할 수 있도록, 공식 문서를 복사해서 먼저 학습시켰습니다.

사용한 프롬프트 예시 (Claude Code):

(공식 문서 내용(https://docs.claude.com/en/docs/claude-code/sub-agents) 을 붙여넣기 한 후)

"이 문서는 Claude Code의 서브 에이전트 기능에 대한 설명이야. 이 기능을 활용해서 비트코인 선물 계좌의 잔고와 현재 포지션을 실시간으로 조회하고 보고하는 서브 에이전트를 만들고 싶어. 어떤 서브 에이전트를 만들면 좋을지 추천해 줄래?"

이 과정을 통해 여러 아이디어를 얻었고, 최종적으로 계좌를 조회하는 파이썬 스크립트를 실행하는 간단한 서브 에이전트를 만들었습니다. (근데 제 개인적인 소견으로는 결국 자연어로 서브에이전트 만드시는 것 보다 그냥 코드로 짜서 일반화+자동화 시키는게 제일 좋습니다.)

클로드코드에서 쉽게 에이전트를 만들 수 있다. 하지만 script로 일반화 + 자동화 추천
  • 에이전트 생성: /agent 명령어로 생성

  • 에이전트 이름: account_monitor

  • 설명 (Description): "사용자의 암호화폐 거래소 계좌 잔고 및 현재 포지션을 조회합니다."

  • 연결된 스크립트: 거래소 API를 이용해 계좌 정보를 가져오는 get_balance.py

Python

이제 Claude Code 터미널에서 /agent account_monitor를 실행하면 위 스크립트가 동작하여 제 계좌 현황을 바로 확인할 수 있습니다.

선물 포지션 잡혀져 있는 것을 확인할 수 있다!

결과와 배운 점

배운 점과 나만의 꿀팁

  • 기획이 70%, 코딩이 30% : 코딩부터 달려들지 말고, 생각을 충분히 정리하고 구조를 잡는 시간이 장기적으로는 개발 속도를 더 빠르게 만듭니다.

  • 좋은 폴더 구조의 중요성: 잘 만들어진 템플릿을 참고하거나, FSD와 같은 개발 사상을 AI에게 알려주고 폴더 구조를 짜 달라고 요청하면 '기술 부채'를 크게 줄일 수 있습니다. (추천 영상: [Feature-Sliced Design (FSD) Architecture 소개 영상 링크(https://www.youtube.com/watch?v=pYAYTJ0vFfs)])

  • AI에게 공손하게 요청하기: "해주세요"처럼 공손한 톤으로 요청할수록 AI가 더 길고 상세한, 양질의 답변을 제공한다는 연구 결과(politeness)가 있습니다. 저도 항상 '공손충' 모드를 유지합니다.

  • 샘호트만 체감상 도구별 특성 파악:

    • Claude Code: 처음 개발을 접하는 사람에게 좋습니다. 생각지 못한 부분까지 알아서 구현해 주는 '오버 엔지니어링' 성향이 초보자에겐 좋은 경험이 될 수 있습니다. 하지만 최근까지도 품질 저하 이슈가 있는 것 같고, 가끔 엉뚱한 방향으로 갈 때가 있습니다.

    • Codex: 개발 경험이 있는 사람에게 더 좋습니다. 딱 시킨 것만 정확하게 수행해 주기 때문에, 불필요한 코드가 없고 개발자의 의도를 명확하게 반영할 수 있어 만족도가 매우 높았습니다. (현재 제 주력 툴입니다!)

  • 저의 마지막 조언: AI 시대에는 컨텍스트 엔지니어링이 핵심입니다. 좋은 기획과 구조화된 접근이 결국 성공적인 자동화 시스템을 만드는 지름길입니다!

시행착오와 앞으로의 계획

가장 큰 벽은 역시 '현생'이었습니다. 꾸준히 시간을 내기 어려워 개인 프로젝트가 지연되고 코드가 복잡해지는 문제가 있었습니다(8월 말에 있었던 Claude의 품질 저하 이슈로 인해 개발에 너무 많은 스트레스를 받았습니다.) 추석 연휴 때 최고는 '남이 시킨 것'을 개발하는 것이 아니라 '내가 만들고 싶은 것'을 만들 수 있는 시간이 생겨서 좋은데요. 하지만 현생이 바빠 추석 때에도 '남이 시킨 것'을 개발할 것 같습니다 흑흑...

앞으로는 이 프로젝트를 수 개월에 걸친 장기 과제로 생각하고, 조금씩 꾸준히 기능을 붙여나갈 계획입니다. 특히, Claude Code Hooks 기능을 활용하여 매매 주문을 넣기 전(pre-tool-use)에 계좌 잔고를 확인하는 안전장치를 추가하는 등 시스템의 안정성을 높이는 작업을 진행할 예정입니다.

긴 글 봐주셔서 감사합니다.

6
1개의 답글

👉 이 게시글도 읽어보세요