03

Designing how AI agents debate.

Project
주주곰
Year
2026 — Now
Type
FinTech · AI Agent
Role
PM · AI Build

Origin

이 종목 괜찮아?에
답할 수 있는 도구가 없었다

시작은 부모님이었습니다. 담고 있는 종목이 궁금한데, 검색하면 복잡한 지표와 전문 용어만 나왔습니다. 이 종목 왜 샀어?라는 질문에 답할 수 있는 도구는 없었습니다.

그런데 부모님만의 문제가 아니었습니다. AED에서 퀀트 리서처를 위한 대시보드를 만들면서 — 전문가조차 여러 분석을 직접 종합하는 데 시간을 쓴다는 걸 알았습니다. 하물며 개인투자자는요.

역할 서비스 기획 · 에이전트 설계 · 프롬프트 엔지니어링 · AI Build
기간 2026.02 ~ 현재 (진행 중)
스택 FastAPI · React 19 · Claude · SSE · Supabase

Who is this for?

재현, 36

IT기업 팀장 · 투자 4년차

Primary

"출퇴근길에 종목 뉴스는 보는데, 여러 소스를 직접 종합할 시간은 없다. AI가 '왜'를 설명해줬으면."

영호 & 미영, 50대

5개 계좌 · 15+ 종목 · 엑셀 관리

Origin

"종목 팔아야 하는지 모르겠어. 누가 쉽게 설명해주면 좋겠는데." 이 프로젝트의 시작점이자 첫 번째 실사용자.

수민, 28

대기업 주니어 · 투자 1년차

Growth

"유튜버마다 말이 달라서 누구를 믿어야 할지 모르겠다. 분석 과정 자체를 배우고 싶다."

Research

1,400만 개인투자자,
대부분 이렇게 관리하고 있다

한국 성인 3명 중 1명이 주식을 합니다. 상당수가 위탁·ISA·연금저축·퇴직연금 등 여러 계좌에 종목을 분산하고 있지만, 한눈에 볼 도구는 없습니다.

실제로 저도 부모님 포트폴리오를 엑셀로 관리하고 있었습니다. 5개 계좌, 15개 이상 종목, 매주 현재가를 수동으로 갱신하고, 수익률을 직접 계산했습니다. #DIV/0! 에러가 나면 수식을 하나하나 고쳤습니다.

자산_포트폴리오.xlsx
실제 엑셀 포트폴리오 — 5개 계좌 × 15+ 종목

수동 갱신

매주 1~2시간 현재가 입력, 수익률 재계산. GOOGLEFINANCE도 20분 지연

수식 깨짐

#DIV/0!, #N/A 에러. 종목 추가할 때마다 VLOOKUP 수정 필요

계좌 분산

위탁·ISA·연금저축·퇴직연금 — 각각 다른 증권사, 통합 뷰 없음

분석 불가

가격은 알지만 "왜 올랐는지", "팔아야 하는지" 판단 도구 없음

기존 대안 한계 주주곰
토스증권 한 증권사 계좌만. 타사 + 연금 통합 불가 OCR로 어떤 증권사든 스크린샷 한 장
엑셀/구글시트 수동 갱신, 수식 에러, 분석 기능 없음 자동 시세 + AI 6개 에이전트 분석
해외 앱 (Portseido 등) 한국 종목 미지원, 한국어 없음 한국·미국 종목 동시 지원
AI 챗봇 (ChatGPT 등) 일회성 답변, 포트폴리오 맥락 없음 내 종목 맥락 + 4인 토론 + Q&A

Context Shift

사용자가 바뀌면
같은 데이터도 달라진다

AED에서 500개 AI 전략의 성과 대시보드를 설계한 경험이, "같은 주식 데이터를 일반 투자자에게는 어떻게 보여줘야 하는가"라는 질문으로 이어졌습니다.

Hardest Decision

AED에서는 데이터를 최대한 많이 보여주는 것이 가치였습니다. 리서처는 스스로 해석할 능력이 있으니까요. 주주곰에서는 반대로 — 정보를 얼마나 줄이고, 어떤 순서로 보여줄지가 핵심이었습니다. "더 보여주자"는 유혹을 계속 참아야 했습니다.

AED · 퀀트 리서처 주주곰 · 개인투자자
정보 구조 467개 전략 × 10개 지표 테이블 점수 하나 + "왜?"를 토론으로 설명
언어 Sharpe 1.2, MDD -15%, CAGR 18% "저평가이지만 부채 높아서 주의"
신뢰 설계 리서처가 직접 수치 검증 4명이 반박 → 사용자가 다각도 판단
데이터 입력 DB에서 자동 로드 OCR 스크린샷 or 수동 입력
플랫폼 데스크톱 웹 (사내) 모바일 PWA (홈 화면 추가)

핵심 판단

제약이
설계를 만든다

계좌 연동 불가, API 무료 티어 한계, LLM 비용 — 세 가지 제약이 이 프로젝트의 모든 판단을 결정했습니다.

01
데이터 입력

계좌 연동 없이 포트폴리오 읽기

토스나 증권사처럼 계좌를 직접 연동하는 건 개인 프로젝트로는 불가능했습니다. API가 없으면, 카메라가 있습니다. 사용자의 증권앱 화면에는 종목명, 수량, 평균 매수가, 수익률 — 모든 정보가 이미 있습니다.

A 수동 입력 (진입장벽 3분) vs B OCR 스크린샷 (진입장벽 5초) → B 선택
!

제약
증권사 OpenAPI는 사업자 등록 필요. 개인이 접근할 수 있는 계좌 연동 수단 없음

설계
Google Vision(무료 1,000회/월) → 텍스트 추출 → Claude CLI → 종목 JSON 파싱 → 종목코드 자동 매칭

결과
증권앱 스크린샷 1장 → 포트폴리오 자동 등록. 수동 입력 대비 사용자 진입장벽 대폭 감소

02
분석 구조

에이전트 1개에서 6개로

처음에는 하나의 AI에게 종합 분석을 시켰습니다. 기술적 분석은 깊은데 매크로 환경은 한 줄로 끝나거나, 뉴스는 자세하지만 재무제표는 빠지는 문제가 반복됐습니다.

A 하나의 프롬프트에 전부 (두루뭉술) vs B 관점별 전문 에이전트 6개 (깊이) → B 선택

Iteration — 1개 → 3개 → 6개

하나의 프롬프트에 "기술·펀더멘털·매크로·뉴스 전부 분석해줘"라고 넣으면, AI는 앞부분에 집중하고 뒷부분은 대충 넘어갔습니다. 3개로 나눠봤지만 여전히 뉴스와 원자재가 빠졌고, 결국 섹터별로 필요한 관점이 다르다는 걸 깨닫고 6개로 확장했습니다.

1

기술·가치·리스크는 기본으로 필요하다고 판단

2

뉴스·원자재·연관종목까지 세분화하면 더 깊은 분석 가능

3

섹터별 가중치로 불필요한 에이전트는 생략 (에너지→원자재 우선, 기술→펀더멘털 우선)

Agent Architecture — 점진적 확장

Before · 단일 AI

"AAPL 분석해줘" → 두루뭉술한 답변

After · 6 전문 에이전트

Technical

차트·지표

Fundamental

재무·밸류

Macro

금리·환율

News

센티먼트

Commodity

원자재

Related

연관종목

Supervisor — 종합 점수 + 시그널

03
신뢰 설계

분석 결과로는 판단이 안 됐다

6개 에이전트가 분석한 결과가 나왔습니다. 점수도 나오고, 시그널도 나옵니다. 그런데 투자자마다 관점이 다릅니다 — 같은 분석 데이터를 놓고도 결론이 달라야 자연스럽습니다.

A AI가 "매수" 한마디 (맹목적 추종) vs B 4인 토론으로 관점 제시 (사용자가 판단) → B 선택

Iteration — 프롬프트 3회 수정

첫 버전에서 4명의 페르소나가 비슷한 말만 반복했습니다. "리스크 관리자"도 결국 "조심하세요"로 끝났고, "성장 투자자"와 "가치 투자자"의 차이가 불분명했습니다. 각 페르소나에게 구체적 분석 프레임워크(DCF, 차트 패턴, 섹터 상관관계 등)를 지정하고, 반박 단계에서 "상대방의 어떤 근거가 약한지" 명시하도록 프롬프트를 수정했습니다.

?

고민
"AI가 답을 주면 끝이지 않나?" → 하나의 답으로는 매매 결심이 안 됐음

설계
4명의 투자 페르소나가 의견 → 교차 반박 → 종합. 토론 후 궁금한 점은 Q&A로 이어서 질문

핵심
AI가 결정을 내리는 게 아니라, 다양한 관점을 보여주고 사용자가 판단

주주곰 토론 — 4인 페르소나 의견
04
스코프 판단

뭘 안 만들지 결정하기

만들 수 있는 기능은 무한하지만, 1인 프로젝트에서 모든 걸 만들 수는 없습니다. "재현이 출퇴근길 5분 안에 쓸 수 있는가?"를 기준으로 기능을 쳐냈습니다.

자동 매매 제외 — 분석 도구와 실행 도구는 다릅니다. 재현은 "판단의 근거"를 원하지, 대신 매매해주는 걸 원하지 않았습니다.

실시간 알림 제외 — 장중 알림은 직장인에게 노이즈. 장 마감 후 요약이 더 가치 있다고 판단했습니다.

소셜 기능 제외 — 커뮤니티·랭킹은 핵심 가치인 분석 깊이와 충돌해 MVP에서 뺐습니다.

Q&A 추가 — 토론 후 "그래서 내 상황에선?"을 물어볼 수 있게. 토론의 가치를 개인 맥락으로 연결합니다.

Scope Decision Framework

"재현이 월요일 아침 출근길에, 지하철에서 5분 안에 쓸 수 있는가?"

IN

종목 검색 → AI 분석 → 토론 → Q&A

IN

OCR 포트폴리오 → 전체 진단 + 리밸런싱

OUT

자동 매매 · 장중 알림 · 소셜 · 백테스트

기준: 핵심 가치(분석 깊이)에 기여하는가? 5분 안에 쓸 수 있는가?

Product

주주곰이 하는 일

종목 검색부터 AI 분석, 4인 토론, 포트폴리오 진단까지 — 모바일에서 5분 안에.

주주곰 홈 — 아침 대시보드

홈 — 아침 대시보드

아침에 장 열리기 전 — "내 종목들 오늘 어떨까"

주주곰 종목 상세 — AI 종합 판단

종목 상세 — AI 종합 판단

종목 검색 → 종합 판단 + 핵심 요인 3개

주주곰 토론 — 4인 페르소나 + Q&A

토론 — 4인 페르소나 + Q&A

"가치투자 관점에서 저평가, 하지만 리스크 주의"

주주곰 포트폴리오 — 진단 + 리밸런싱

포트폴리오 — 보유 종목 관리

계좌별 종목 · 수익률 · 평가금액 한눈에

주주곰 리서치 — 분석 이력

My Research — 분석 이력

리서치한 종목의 시그널 변화 추적

Iteration

만들면서 쓰고,
쓰면서 고쳤다

이 프로젝트의 첫 번째 사용자는 기획자 본인이었습니다. 매일 모바일로 앱을 쓰면서 발견한 문제를 같은 날 수정하는 사이클을 반복했습니다. 하루 24건의 커밋이 나온 날도 있었습니다 — 그만큼 실사용에서만 보이는 문제가 많았습니다.

1

"팔란티어가 한국 ETF로 등록됐어요"

OCR로 증권앱을 읽으면 "SOL 팔란티어미국채커버드콜혼합"이라는 한국 ETF가 들어있습니다. 그런데 Claude가 종목명을 "팔란티어"로 축약 → 미국 주식 PLTR로 매칭 → 엉뚱한 종목이 등록됐습니다.

발견

한국 ETF 이름에 미국 종목명 포함 → partial match 함정

원인

OCR 프롬프트가 종목명 축약 허용 + US 매핑이 KR보다 우선

수정

프롬프트에 "절대 축약 금지" + 한국 매칭 우선 순서로 변경

2

"삼성전자를 검색하면 아무것도 안 나와요"

한국 종목 개요 탭이 완전히 빈 화면. 에러 메시지조차 없었습니다. 원인을 추적하니 3개의 문제가 겹쳐 있었습니다.

원인 1

Finnhub이 한국 종목 미지원 → 데이터 fetch 자체를 스킵하는 코드

원인 2

yfinance 폴백은 API 라우트에만 있고, 프론트 훅에는 적용 안 됨

원인 3

로딩 스켈레톤 없이 조건부 렌더링 → 데이터 없으면 빈 화면

→ 하나의 사용자 피드백이 백엔드 폴백 + 프론트 훅 + UI 스켈레톤, 3개 레이어 수정으로 이어진 사례

+2 더 많은 피드백 사례 보기 — 분석 속도 5분 문제, 한국 ETF 티커 인식 오류
3

"분석이 5분째 안 끝나요"

한국 종목 분석 시 모든 에이전트가 50점(기본값)으로 나왔습니다. 근본 원인을 추적해보니 "비용 절감을 위한 설계"가 "한국 종목에서의 성능 저하"로 이어진 구조적 문제였습니다.

구조

Claude CLI subprocess × 6 에이전트. 프로세스 시작에만 15초 오버헤드

한국 종목 악화

Finnhub 데이터 없음 → data_quality 0.0 → LLM 자기검증 발동 → Claude 3번 호출

개선

에이전트 data_assembly에 yfinance 폴백 + Sonnet 모델 + 타임아웃 조정

→ "무료로 만들자"는 판단이 어떤 트레이드오프를 만드는지 체감한 사례. API 전환 시기를 판단하는 근거가 됨

4

"한국 ETF 가격이 0원이에요"

0040X0(SOL 팔란티어미국채커버드콜혼합)처럼 알파벳이 포함된 한국 종목 코드를 미국 종목으로 인식 → 가격 0, 수익률 없음, 통화 USD로 표시되는 문제.

원인

isKoreanTicker 정규식이 ^\d6$ — 숫자 6자리만 허용하여 알파벳 포함 코드 누락

수정

^\d[\dA-Z]5$로 변경 — 숫자로 시작 + 숫자/대문자 5자리

영향 범위

백엔드 3개 + 프론트 2개, 총 5개 파일 수정. 가격 조회·통화 표시·UI 전체에 영향

→ 정규식 한 줄이 서비스 전체 5개 레이어에 퍼져있던 사례. 한국 종목 코드 체계를 제대로 이해하지 못한 초기 설계의 부채

Feedback Cycle — 하루 단위

모바일 사용
문제 발견
원인 추적
코드 수정
배포
재검증

PM이 직접 사용자이기 때문에, 발견→수정→검증이 같은 날 안에 완료

기술 선택

왜 이 조합인가

모든 기술 선택에는 "왜?"가 있습니다.

Claude Code (Max 구독)

Claude Max를 구독하고 있었습니다. API는 건당 과금이지만, Claude Code는 구독 안에서 사용 가능합니다. 사이드 프로젝트에서 LLM 추가 비용 없이 품질을 유지하는 판단이었습니다.

+LLM 추가 비용 없음 (Max 구독 활용)
프로세스 오버헤드, 동시 호출 제한
잘 되면 API로 업그레이드 예정

SSE (Server-Sent Events)

분석 6개 + 토론 9개 = 15번의 LLM 호출. 전부 끝날 때까지 기다리면 사용자는 떠납니다. 에이전트가 하나씩 완료될 때마다 실시간으로 화면에 나타나게 했습니다.

+단방향 스트리밍에 최적, 재연결 자동
양방향 불가 (필요 없었음)

Google Vision → Claude CLI 파싱

OCR은 Google Vision 무료 1,000회/월로 충분합니다. 텍스트 추출 후 Claude CLI가 종목명·수량·가격을 JSON으로 파싱합니다.

+OCR 비용 0원, 다양한 증권앱 대응
이미지 품질에 의존

PWA (모바일 홈 화면)

투자 정보는 이동 중에 확인합니다. React Native는 오버킬이었고, PWA면 홈 화면에 추가해서 앱처럼 쓸 수 있습니다.

+별도 앱스토어 배포 불필요
+Service Worker 자동 갱신

3단 폴백 체인 (모든 데이터 경로)

무료 API는 언제든 끊깁니다. Finnhub은 분당 60회 제한, BeatTheCap은 첫 로딩에 60초. "안 될 때"를 먼저 설계하고, 사용자에게는 "그냥 되네"로 보이게 만들었습니다.

1 Finnhub + BeatTheCap (API 키)
2 yfinance (무료, 한국종목)
3 Graceful Empty (에러 없는 빈 상태)

적용: 시세 · 차트 · 재무 · 뉴스 · 검색 · 배치 시세 — 6개 전체 경로

Cost Structure

월 $100으로 AI 서비스 운영하기

항목 현재 확장 시
LLM Claude Max $100/월 API 전환 ~$0.02/분석
데이터 Finnhub 무료 + yfinance 유료 티어 or 자체 수집
OCR Google Vision 무료 1K/월 유료 or on-device
DB Supabase 무료 $25/월 Pro
프론트 Vercel 무료 $20/월 Pro
합계 $100/월 ~$145/월 + 종량

→ "지금은 무료, 잘 되면 업그레이드" — 사이드 프로젝트의 비용 전략

Architecture

배포 구조

FE

Vercel

React 19 + Vite · PWA · 자동 배포

↕ HTTPS
BE

FastAPI (로컬 Mac + ngrok)

6 에이전트 · Claude CLI · SSE 스트리밍

DB

Supabase

PostgreSQL

AI

Claude CLI

Sonnet · subprocess

API

Finnhub + yfinance

3단 폴백

OCR

Google Vision

무료 1K/월

→ ngrok은 개발/테스트용. 사용자 확대 시 Railway($5/월)로 전환 예정

현재 상태

현재 상태와
다음 단계

6

전문 에이전트
기술·펀더멘털·매크로·뉴스·원자재·연관종목

~45s

분석 1건 소요
15 LLM call, SSE 실시간 표시

3단

데이터 폴백 체인
Finnhub → yfinance → Graceful Empty

KR+US

한국·미국 종목
KRX 전체 + NASDAQ/NYSE

Next Steps

실사용자 검증

부모님 + 직장인 3~5명 대상 사용성 테스트. "토론 결과를 보고 실제로 판단에 도움이 됐는지" 측정. 이 결과에 따라 다음 우선순위가 결정됨

아침 브리핑

재현의 "출근길 5분" 시나리오. 보유 종목 변동 요약 + 오늘 주목할 이슈 자동 생성

Claude API 전환

동시 호출 제한 해소 + 응답 속도 개선. 사용자 늘어나면 전환 예정

Key Learnings

이 프로젝트에서 배운 것

1. 제약이 가장 좋은
기획서다

계좌 연동이 안 되니까 OCR이 나왔고, API 비용을 쓸 수 없으니까 CLI 활용과 폴백 체인이 나왔습니다. "할 수 없는 것"을 정의하면 "해야 할 것"이 선명해집니다.

2. AI의 답이 아니라
관점을 설계해야 한다

하나의 AI가 "매수"라고 하면 사용자는 그냥 따릅니다. 4명이 서로 다른 이유로 논쟁하면, 사용자가 스스로 판단합니다. AI 서비스의 가치는 "답"이 아니라 "판단할 수 있는 구조"에 있었습니다.

3. 사용자가 바뀌면
모든 설계가 바뀐다

AED에서 퀀트 리서처에게 "Sharpe 1.2"라고 보여주던 것을, 주주곰에서는 "위험 대비 수익이 괜찮다"로 번역해야 했습니다. 같은 데이터, 완전히 다른 기획. 직접 겪어봐야 알 수 있었습니다.

4. 다음에 다르게 할 것

사용자 검증을 더 일찍 했어야 합니다. 기능을 다 만든 뒤에 피드백을 받으니 방향 수정 비용이 컸습니다. 다음에는 핵심 흐름 하나(검색→분석→토론)를 먼저 만들고, 실사용자 반응을 본 뒤 확장하겠습니다.

Other Projects

더 많은 프로젝트 보기

elliebinn@gmail.com · GitHub