'등락률 말고, 내 계좌가 얼마 움직였나' — 그 깨달음에서 시작한 투자 비서 만들기

들어가며

기성 자산 관리 앱을 쓰면서 늘 답답했던 게 있다. "오늘 나스닥 +1.2%, 환율 1,470원" 같은 숫자는 보여주는데, 정작 내가 궁금한 "그래서 오늘 내 계좌는 얼마 움직였는데?" 에는 아무도 답을 안 해줬다. 같은 +5%라도 비중이 작은 종목이면 내 자산엔 거의 영향이 없고, 비중이 큰 종목이면 1~2%만 움직여도 체감이 크다. 앱은 남의 언어(등락률)로 말하고, 나는 내 언어(계좌 영향)로 듣고 싶었다.

게다가 대부분의 앱은 API가 막혀 있어서 내 맥락을 직접 넣을 방법이 없었다. 그래서 이번엔 앱을 쓰는 대신, 내 모든 맥락을 직접 건넨 에이전트에게 내 방식대로 자산을 관리받기로 했다.

강의에서 얻은 깨달음, 그리고 내가 잡은 방향

이번에 가장 크게 남은 깨달음은 두 가지였다.

하나는 "등락률은 남의 언어, 계좌 영향은 내 언어"라는 것. "나스닥 +1.2%"가 아니라 그게 내 계좌에 얼마인지로 봐야 비로소 의사결정에 쓸 수 있다. 공식 자체는 단순하다 — 전일 대비 가격 변화 × 내 보유 수량 × 환율 = 내 포트폴리오 실제 영향.

다른 하나는 AI에게 시그널을 뱉게 하지 말고 검증을 시켜라는 것. 자산 규모가 클수록 자동매매는 위험하니, 봇은 종목을 찍는 대신 내 판단을 가혹하게 검증하는 역할이어야 한다.

그래서 방향을 이렇게 잡았다 — 앱을 쓰는 대신 내 맥락을 직접 건넨 에이전트에게, 예측이 아니라 내가 정한 원칙으로 자산을 관리받는다.

지금까지 만든 것 (그리고 아직 안 된 것)

방향을 잡고 한 걸음씩 만들어왔다. 솔직하게 지금 상태는 이렇다.

  • 하루 여러 번 자동 시장 브리핑 — 매크로 + 관심 종목을 등락률 크기에 따라 단계별로 강조하고, 많이 움직인 것끼리 묶어 텔레그램으로

  • 검증 멘토 페르소나 — 같은 데이터를 냉철하게 한 번 더 짚어주는, 종목을 찍지 않는 회의주의 멘토

  • 스스로 학습하는 구조 — 매일 경제 콘텐츠를 흡수해 멘토의 관점을 누적

  • 모의 환경 증권사 API 연결 — 실전은 나중에, 모의부터

  • "내 계좌 영향" 환산은 아직 다음 단계 — 위 공식과 알림 등급 틀은 세웠지만, 실제 보유 수량을 연동해 "오늘 내 계좌가 얼마 움직였나"를 정확히 찍어주는 건 아직 못 했다. 지금은 등락률 기반 강조까지다. 이게 이 프로젝트의 가장 가까운 다음 목표다.

활용한 툴

  • 코딩 에이전트 (Claude Code · Codex) — 가이드 프롬프트 + 페이지 소스를 던지면 스크립트를 직접 작성·실행

  • 증권사 OpenAPI (모의 환경) — 토큰 발급 · 시세 · 잔고

  • 증권사 API 연동 플러그인 — 실전/모의 키 혼동을 막는 안전 가드 자동 적용

  • 텔레그램 봇 — 송신 전용 봇 + 양방향 멘토 봇 분리

  • 에이전트 런타임 + 보조 모델 호출 — 데이터 처리와 페르소나 톤 생성을 역할별로 분리

진행 과정

1. 최소 동작부터 — 페이지 소스를 던지니 스크립트가 나왔다

처음부터 거창하게 가지 않았다. 금융 사이트 페이지를 우클릭해 소스를 통째로 복사한 다음, "이 페이지에서 매크로 지표 몇 개를 긁어서 터미널에 깔끔하게 출력하는 프로그램을 만들고, 필요한 라이브러리는 네가 직접 설치하고 실행까지 해서 결과를 보여줘"라고 코딩 에이전트에 넘겼다. 정말로 스크립트를 짜고 라이브러리를 깔고 실행해서 결과까지 보여줬다.

그다음은 자연어로 한 단계씩 늘렸다. "여기 종목 몇 개 정보도 밑에 추가해줘" → 실행 → 확인 → "이제 텔레그램으로도 보내줘" → 실행 → 확인. 매 단계 결과를 눈으로 보고 다음으로 넘어가는 점진 증분이 핵심이었다. 처음부터 전체를 그리려 하지 않고 최소 동작을 검증한 뒤 확장하니 막히는 지점이 명확했다.

2. 방향을 바꾼 한 줄 — "등락률" 대신 "내 계좌 영향"

여기서 이 프로젝트의 핵심 메시지가 나왔다.

(전일 대비 가격 변화) × (내 보유 수량) × (환율) = 내 포트폴리오 실제 영향

별것 아닌 곱셈 같지만, 이 한 줄이 무엇을 만들지의 방향을 통째로 바꿨다. "그동안 어떤 앱도 명쾌하게 답해주지 못한 질문 — 오늘 내 계좌가 실제로 얼마 움직였는가"에 답하는 걸 목표로 삼게 됐다. 다만 솔직히 말하면 지금까지 구현한 건 등락률 단계별 강조까지고, 실제 보유 수량을 연동한 진짜 계좌 영향 환산은 다음 단계로 남겨뒀다 (구체 종목·수량은 비공개라 연동도 신중하게 가는 중). 그래도 측정의 기준을 등락률에서 계좌 영향으로 옮긴다는 방향 하나가 이후 모든 설계의 축이 됐다.

3. 알림이 노이즈가 되는 문제 → 등급제 + 메시지 진화

전부 똑같은 톤으로 알리니 금세 노이즈가 됐다. 그래서 관심 / 중요 / 긴급 3등급을 도입했다. 단순 등락률이 아니라 내 계좌 영향 금액까지 결합해 등급을 매기니, 진짜 봐야 할 것만 눈에 들어왔다.

메시지 포맷도 한 번에 완성하지 않고 단계적으로 진화시켰다. 가독성용 이모지, 매크로·국내·해외 카테고리 분류, 날짜·시각·시장 상태 헤더, 중요·긴급 강조, 휴장일엔 발송하지 않는 캘린더 게이트까지. 골격을 먼저 모방하고 → 내 필요에 맞게 진화하는 사이클이 학습에서 실전으로 넘어가는 핵심이었다.

트레이딩 데스크 raion market이라는 단어가 포함된 트레이딩 데스크 1 클로드

4. 증권사 API — 모의부터, 실전은 나중에

잔고·시세를 직접 받으려고 증권사 OpenAPI를 붙였다. 여기서 한 가지 원칙을 세웠다. 실전 키부터 발급하면 위험하다. 이미 발급돼 있던 실전 키는 폐기하고 모의 환경으로 다시 발급받아 시작했다. 연동 플러그인이 실전/모의를 자동으로 구분하고 실수로 실전 주문이 나가는 걸 막아주는 가드를 깔아둬서, 검증 단계에서 사고 날 일을 원천 차단했다.

5. 멘토 페르소나 — 시그널을 뱉는 게 아니라 같이 검증하는 역할

데이터만 보내면 결국 판단은 내 몫이라 늘 불안했다. 그래서 30년 넘게 시장 사이클을 겪은 베테랑 매크로 투자자 톤의 멘토 페르소나를 만들었다. (실존 인물 톤을 참고했지만 사칭 방지를 위해 비공개로만 운용한다.)

이 멘토의 핵심은 직접 종목을 찍어주지 않는다는 것이다. 대신 "이 시그널이 과거 위기 데이터에 다 통과하나? 거래비용·슬리피지 빼고도?" 같은 식으로 가혹하게 검증한다. 자동매매 시스템이 빠지기 쉬운 낙관에 일부러 제동을 거는 회의주의자 역할이다. 시그널을 뱉는 대신 같이 분석하고 결정은 내가 하는 흐름.

기술적으로는 역할별 모델 분리를 적용했다. 주력 데이터 처리는 에이전트 본체가 맡고, 멘토 톤 생성은 별도 모델 호출로 분리했다. 한 봇이 데이터 처리와 페르소나 톤을 다 떠안지 않게 하니 안정성과 비용 통제가 같이 좋아졌다. 알림 봇이 시세를 보낸 직후, 같은 데이터를 멘토 모델에 넘겨 한두 문장 코멘트를 붙이는 식이다. 멘토가 실패해도 원래 알림엔 영향이 없게 조용히 건너뛴다.

실제로 멘토에게 코멘트를 시키는 프롬프트는 짧다 (페르소나 정의는 별도 파일로 주입):

방금 단톡방에 오늘 시세가 발송됐어. 본문은 (시세 데이터). 이 멘토 페르소나로 1~3문장만 짧게 코멘트해. 시장 흐름·외국인 매매·환율·차트 관점 중 핵심 한두 가지만. 사변·추측은 빼고 본문 수치에만 근거해. 이모지·서식 없이 평문으로.

핵심은 마지막 두 줄이다. "수치에 근거, 사변 금지"를 명시하니 멘토가 그럴듯한 헛소리를 훨씬 덜 한다.

6. 스스로 똑똑해지는 구조 — 매일 학습하는 멘토

가장 욕심냈던 부분이다. 멘토가 고정된 지식에 머물지 않고 매일 새 콘텐츠를 학습해 관점을 누적하게 만들었다. 여러 경제 유튜브 채널을 시간대별 슬롯에 매핑해서, 한 슬롯에 한 채널의 새 영상 하나만 자동으로 가져와 자막을 추출하고, 멘토 톤으로 단순 요약이 아니라 냉철하고 뾰족한 인사이트로 재해석해 노트로 쌓는다. 새 영상이 없으면 그냥 건너뛴다.

품질 기준도 걸어뒀다. 학습 프롬프트에 일부러 품질 게이트를 넣은 게 핵심이다:

방금 이 영상 자막을 봤어. (자막 본문) 멘토 톤으로 냉철하고 뾰족한 인사이트 1~3줄만 뽑아. 금지 — 단순 요약, "현금은 쓰레기다" 같은 추상 결론. 요구 — 구체 수치·종목·매크로 변수 인용. 요구 — "우리 시장에 어떻게 적용되나" 한 줄. 요구 — 반대 시나리오·리스크 한 줄 같이.

특히 마지막 줄, 반대 시나리오를 반드시 같이를 요구에 넣은 게 컸다. 이게 빠지면 흡수하는 자료가 죄다 한 방향 확신으로 쏠린다. 덕분에 쌓이는 노트가 "좋은 얘기"에서 멈추지 않고 검증 가능한 형태로 남는다.

시행착오

가장 크게 데인 건 어느 날 정해진 시각에 알림이 하나도 안 온 사고였다. 분명 며칠째 잘 돌던 자동 발송이 갑자기 침묵했다. 파보니 원인이 동시에 두 개 겹쳐 있어서 진단이 까다로웠다.

  • 원인 1 — Python 버전 함정: 스케줄러가 부르는 Python이 구버전으로 잡히면서, 최신 문법으로 짠 코드가 통째로 죽고 있었다. 터미널에서 수동으로 돌리면 멀쩡한데 자동 실행만 실패하니 한참 헤맸다. → 실행 환경을 명시적으로 고정하는 방식으로 바꿔 해결.

  • 원인 2 — 단체방 자동 전환: 텔레그램 단체방이 어느 순간 슈퍼그룹으로 자동 마이그레이션되면서 채팅 ID가 통째로 바뀌어 있었다. 봇은 옛 ID로 계속 쏘고 있었으니 도착할 리가 없었다. → 새 ID로 갱신.

교훈은 명확했다. 수동 실행이 되는 것과 자동 실행이 되는 건 전혀 다른 문제다. 그리고 자동화는 조용히 실패하기 때문에 발견이 늦는다. 이후로는 새 자동화를 붙일 때 반드시 실제 자동 실행 경로로 검증하고, 실행 환경(인터프리터·경로)을 추측이 아니라 명시적으로 고정하는 걸 원칙으로 삼았다.

또 하나 크게 데인 건 AI 진단의 정확도는 결국 입력 데이터에 달렸다는 거였다. 멘토에게 내 계좌 중 한 곳을 진단시켰는데, 만기·세제·한도를 두고 세 번이나 잘못 짚었다. 가입일을 부정확하게 알고 "곧 만기라 시급하다"고 했다가, 정확한 가입일을 확인하고 나서야 "아직 한참 여유 있다"로 바로잡혔다. 조언이 아무리 그럴듯해 보여도 전제 데이터가 틀리면 결론도 틀린다. 그래서 "확인되지 않은 건 단정하지 말고 모른다고 답하라"를 멘토의 기본 원칙에 넣었다. 자동화·AI를 신뢰하기 전에 그 입력부터 검증하는 게 먼저였다.

그 밖의 잔 시행착오들:

  • 모든 종목에 뉴스를 다 붙였더니 메시지가 너무 길어졌다 → 숫자와 뉴스를 분리하고 선별

  • 라이브러리 자동 설치가 환경에 따라 엇갈렸다 → 의존성을 코드에 함께 명시

  • 봇 토큰·채팅 ID 같은 민감값이 대화에 노출되지 않도록 관리 방식을 따로 정리

배운 점

  • 최소 동작 → 점진 증분이 가장 빠른 길이었다. 한 번에 전체를 그리면 어디서 막혔는지 모른다.

  • 자동화의 본질은 수익 보장이 아니라 내가 정한 원칙을 흔들림 없이 실행하게 돕는 것이다. 예측이 아니라 실행.

  • AI에게 낙관이 아니라 검증 역할을 맡기니 자동매매의 위험을 훨씬 차분하게 다룰 수 있었다.

  • 모델을 역할별로 쪼개는 것만으로 안정성과 비용이 같이 좋아진다.

  • 계좌 성격마다 봐야 하는 주기가 다르다. 장기 연금성 계좌는 분기에 한 번 조율이면 충분하고, 단기로 굴리는 계좌는 매일 봐야 한다. 그래서 알림도 모든 계좌를 같은 빈도로 보내지 않고 성격별로 나눴다. "더 자주 알림 = 더 좋음"이 아니었다.

  • AI 조언은 입력 데이터부터 검증해야 믿을 수 있다. 그럴듯한 결론일수록 전제를 먼저 의심하게 됐다.

향후 계획

  • 이번 주: 자동 발송 첫 주 운영 안정화 + 실제 보유 수량을 연동해 "내 계좌 영향" 환산을 처음으로 구현 (지금은 등락률 강조까지 — 이게 바로 다음 목표)

  • 다음 단계 — 리밸런싱: 한 번에 전액이 아니라 분할 전환 / 구간을 정해놓고 주기적 점검 / 수수료·추적오차까지 함께 고려 / API 오류·중복 주문 안전장치. 예측이 아니라 정해둔 원칙대로 분할 매수·매도하는 구조로

  • 마지막 단계: 뉴스·콘텐츠 선별 자동화(너무 많지 않게) + 검증 모드에서 운영 모드로 단계 전환

도움이 필요한 점

이 비서는 Fear & Greed 지수 같은 지표로 "지금 시장이 어떤 상태인지"를 알려주는 데서 그치지 않고, "그래서 내가 어떤 판단을 내리면 좋을지"까지 조언을 해준다. 그런데 이 조언의 판단력을 어떤 기준으로 학습시켜야 할지가 가장 큰 고민이다.

방향은 이렇게 잡아두고 있다.

  • 시장 예측 정확도가 아니라 "나 + 내 원칙" 적합도로 — 매수/매도를 맞히게 만들면 어차피 빗나간다. 대신 내가 미리 정한 원칙(자산배분 목표·리스크 한도·현금 비중 마지노선)을 현재 상황에 일관되게 매핑하는 쪽으로

  • 조언을 사실·해석·권고 세 단으로 분리 — "지표는 과열 구간(사실) → 이런 의미(해석) → 그래서 너는(권고)". 섞지 않아야 나중에 어느 단계가 틀렸는지 추적이 된다

  • 내가 받은 조언을 기록해두고 나중에 결과와 맞춰보기 — 좋은 자료를 흡수하는 것만으로는 부족하고, 자기가 내린 조언이 맞았는지 되먹임이 쌓여야 조언이 보정된다고 본다

  • 모든 권고에 반대 시나리오를 같이 — "이게 틀리면 어떤 신호일까"를 항상 달아서 한쪽으로 쏠리는 걸 막는다

그래도 막상 "어떤 데이터로, 어떤 형태로 그 판단력을 길들일지"는 여전히 손에 잡히지 않는다. 비슷하게 AI에게 투자 판단 조언을 맡겨보신 분들은 어떤 기준·원칙으로 그 조언의 질을 다듬으셨는지 궁금하다.

5
2개의 답글

뉴스레터 무료 구독