📝 한줄 요약
매일 받는 한국·미국 증시 알림을 더 믿고 읽기 쉽게 만들기 위해, 한 번에 모든 일을 하던 큰 Skill을 다섯 개의 작은 책임으로 나눴습니다. 핵심은 기능을 잘게 쪼개는 것이 아니라, 실제 실행에서 서로 다른 이유로 실패하는 일을 각각의 Skill이 맡게 만든 것이었습니다.
바쁘시면 이것만 읽어도 돼요:
처음 에는 시장 기준일 판단, 데이터 수집, 뉴스 해석, 위기 판단, Telegram 편집이 하나의 흐름에 섞여 있었습니다.
이를
시장 기준일 판정 → 데이터 수집 → 뉴스 근거 분리 → 특별 이슈 판정 → 최종 편집으로 나눴습니다.실제 테스트에서 API 요청 제한, 잘못된 티커, 검색 자동화 차단 때문에 많은 항목이
미확인으로 남았습니다.수치를 억지로 채우는 대신, 실패 원인을 기록하고 독립적인 대체 출처를 확인하도록 수집 규칙을 바꿨습니다.
배운 점은 분리의 기준이 “한국과 미국” 같은 화면 구분이 아니라, 실패 원인과 검증 방법이 다른 책임이라는 점이었습니다.
🎯 이런 분들께 도움이 돼요
시장·경제 뉴스 알림을 AI로 자동화하고 싶은 분
AI가 숫자와 뉴스 원인을 섞어서 말하는 문제가 걱정되는 분
하나의 긴 프롬프트나 Skill이 점점 복잡해지는 경험을 한 분
금융·건강·법률처럼 확인되지 않은 정보를 조심스럽게 다뤄야 하는 자동화를 만드는 분
AI의 첫 실행 실패를 다음 실행 규칙으로 바꾸고 싶은 분
😫 문제의 원인: 시장 브리핑은 생각보다 한 가지 일이 아니었습니다
처음 목표는 단순했습니다. 매일 정해진 시간에 한국 증시와 미국 증시, 관련 경제 뉴스까지 한 번에 정리해서 받아보는 것이었습니다.
하지만 시장 브리핑은 지수만 읽어주는 일이 아니었습니다. 한국 시장은 당일 마감 기준을 확인해야 하고, 미국 시장은 한국시간 기준으로 가장 최근에 끝난 정규장 종가를 가져와야 합니다. 주말이나 휴장일에는 억지로 당일 수치를 만들지 않고 마지막 거래일을 밝혀야 합니다.
여기에 환율, 금리, 유가, 금, VIX 같은 거시지표와 뉴스까지 붙으면 더 복잡해집니다. 특히 금융기관 유동성 우려나 지정학 이슈처럼 시장을 크게 흔들 수 있는 사건이 생기면, 단순한 뉴스 요약이 아니라 다음을 구분해야 했습니다.
공식 발표나 복수 보도로 확인된 사실
실제로 시장에서 관측된 지수·금리·환율 움직임
그 움직임을 어떻게 해석할 수 있는지
아직 확인되지 않아 단정하면 안 되는 내용
처음에는 이 모든 일을 하나의 큰 Skill이 맡았습니다. 한 번 실행할 때는 편해 보였지만, 데이터를 다시 확인하거나 특정 오류를 고치려면 전체 흐름을 다시 살펴봐야 했습니다.
문제는 Skill이 길다는 데 있지 않았습니다.
기준일 판단, 데이터 수집, 뉴스 해석, 위기 판단, 편집이 서로 다른 실패를 일으키는데도 한 덩어리로 묶여 있었다는 점이 문제였습니다.
🛠️ 처음에 요청한 일
text매일 오후에 미국 증시와 한국 증시 하루 요약, 관련 경제 및 주식 주요 뉴스를 Telegram으로 알려줘.
특별한 이슈가 생기면 해당 내용을 더 자세히 파악해서 알려줘.
처음에는 이 요청에 필요한 정보를 많이 넣는 쪽으로 생각했습니다. 주요 지수, 업종, 종목, 환율, 금리, 원자재, 경제 뉴스, 특별 이슈, 다음 날 체크포인트까지 한 번에 담으려 했습니다.
그런데 실제로 사용해보니 “무엇을 포함할까?”보다 먼저 “누가 어떤 일을 책임질까?”를 정해야 했습니다.
🔧 큰 Skill을 다섯 개의 작은 책임으로 나누기
전체 흐름은 유지하고, 실패하는 위치만 분리했습니다
한국 시장용 Skill과 미국 시장용 Skill을 완전히 따로 만들지는 않았습니다. 두 시장을 함께 읽는 브리핑이라는 목적은 그대로 두고, 각 단계가 다른 종류의 실패를 담당하도록 나눴습니다.
text시장 기준일 판정
↓
시장 데이터 수집
↓
뉴스 근거와 시장 해석 분리
↓
특별 이슈·위험 등급 판정
↓
Telegram용 최종 브리핑 편집
1. market-session-resolver: 먼저 “언제의 시장인가?”를 정했습니다
첫 번째 Skill은 수치를 가져오기 전에 기준 시각부터 정합니다.
한국은 당일 정규장 종가인지
미국은 가장 최근 정규장 종가인지
장중·시간외 수치가 있다면 참고용으로 구분할지
주말·휴장일에는 어느 거래일을 기준으로 쓸지
이 단계를 따로 둔 이유는 간단합니다. 한국의 당일 종가와 미국의 장중 수치를 같은 기준처럼 보여주면, 숫자가 맞아도 브리핑의 의미가 틀어지기 때문입니다.
2. market-data-collector: 숫자와 출처만 책임지게 했습니다
두 번째 Skill은 KOSPI, KOSDAQ, S&P 500, Nasdaq, Dow와 환율·금리·유가·금·VIX 같은 수치를 수집합니다.
여기서 중요한 규칙은 “왜 올랐는지”를 설명하지 않는 것이었습니다. 이 단계는 다음만 책임집니다.
어떤 자산의 수치인지
등락률이 무엇인지
어느 거래일 기준인지
종가인지 장중인지
출처가 무엇인지
그래야 뉴스 해석이 잘못됐을 때 숫자 수집 과정까지 다시 의심하지 않아도 됩니다.
3. market-news-evidence: 사실과 해석을 같은 문장에 넣지 않았습니다
세 번째 Skill은 뉴스와 시장 반응을 정리합니다.
text[확인된 사실] 공식 발표 또는 복수 보도로 확인된 사건
[시장 반응] 실제로 관측된 금융주·금리·환율·VIX 움직임
[해석] 위 움직임을 바탕으로 한 조건부 설명
[미확인] 아직 추가 검증이 필요한 내용
이 구분이 없으면 “특정 뉴스가 나왔고 지수가 움직였다”는 사실을 “그 뉴스 때문에 지수가 움직였다”는 단정으로 바꾸기 쉽습니다.
특히 시장 참여자 심리도 감정적으로 표현하지 않고, 금융주 약세·국채 수요·달러·금·VIX 같은 관측 가능한 신호를 근거로만 설명하도록 했습니다.
4. special-event-triage: 모든 변동을 위기라고 부르지 않게 했습니다
금융기관 이슈, 전쟁, 중앙은행의 돌발 조치처럼 특별한 사건이 생기면 브리핑 길이를 늘려야 할지 판단하는 Skill입니다.
위험 등급은 다음처럼 정했습니다.
등급
의미
🟢 정상
일반적인 시장 변동 범위
🟡 주의
특정 이슈나 변동성 확대를 관찰할 단계
🟠 경계
여러 시장·업종에서 검증된 스트레스 신호가 함께 나타난 단계
🔴 심층 점검
다수 기관·시장 또는 당국 대응을 상세히 확인해야 하는 단계
여기서 가장 중요하게 둔 규칙은 이것입니다.
🔴 심층 점검은 국가 위기 확정이 아니라, 더 자세히 확인해야 하는 시장 상황입니다.
시장 약세나 VIX 상승 하나만으로 국가 위기나 금융 시스템 전체 위기를 선언하지 않도록 했습니다.
5. market-briefing-editor: 사람이 읽는 메시지로 다시 조립했습니다
마지막 Skill은 앞 단계의 결과를 Telegram 메시지로 편집합니다.
매일 같은 순서로 읽을 수 있도록 아래 구조를 고정했습니다.
text위험 등급
데이터 기준
오늘의 핵심
- 확인된 사실
- 시장 반응과 투자자 심리
- 현재 위험 수준
한국 증시
미국 증시
거시 지표
특별 이슈 심층 분석
다음 거래일 체크포인트
VIX 설명도 길게 늘어놓지 않았습니다.
VIX는 S&P 500 옵션 기반의 향후 30일 예상 변동성 지수입니다. 상승은 시장의 불확실성·헤지 수요 확대 신호일 수 있으나, 단독으로 위기를 의미하지는 않습니다.
이 한 문장으로 의미와 주의점을 같이 전달하도록 했습니다.
🧪 실제 테스트에서 만난 문제: 데이터가 없었던 게 아니었습니다
새 구조를 만든 뒤 실제 Telegram 메시지를 한 번 보내보았습니다. 메시지 형식과 전달 자체는 동작했지만, 한국 시장·환율·거시지표에 미확인이 많이 남았습니다.
처음에는 데이터가 없는 날인가 싶었지만, 실행 기록을 확인해 보니 원인은 달랐습니다.
한 시장 데이터 제공자가 요청 제한을 반환함
대체로 사용한 일부 티커나 주소가 실제로는 페이지 없음으로 연결됨
검색을 통한 우회 시도가 자동화 차단을 만남
수집 실패 뒤에 검증 가능한 두 번째 경로를 찾는 규칙이 충분하지 않음
중요했던 것은 빈칸을 그럴듯한 숫자로 채우지 않은 점이었습니다. 하지만 “미확인”이라고만 쓰고 끝내면 브리핑의 완성도는 낮아집니다.
그래서 실패 자체를 다음 실행을 위한 데이터로 보기로 했습니다.
🔁 실패를 수집 규칙으로 바꾸기
수집 Skill에 실패 유형을 남기도록 보완했습니다.
실패 유형
의미
rate_limited
데이터 제공자의 요청 제한
ticker_or_url_invalid
티 커·주소 오류 또는 페이지 없음
bot_blocked
검색·웹페이지의 자동화 접근 차단
timestamp_or_basis_missing
수치는 보이지만 기준일·종가 여부가 불명확함
source_conflict
출처마다 수치나 기준이 서로 다름
그리고 이제는 한 경로가 실패했다고 바로 미확인으로 끝내지 않도록 했습니다.
text첫 수집 경로 확인
↓
실패 유형 기록
↓
독립적인 대체 출처 확인
↓
자산명·수치·등락·기준일·시장 상태 검증
↓
그래도 비교 가능한 값이 없을 때만 미확인 표기
재실행에서는 이전에 비어 있던 한국 주요 지수와 Nasdaq 항목을 채울 수 있었습니다. 반면 같은 기준일의 수치·등락·시장 상태를 함께 검증하지 못한 환율과 일부 거시지표는 계속 제외했습니다.
이 결과는 “모든 항목을 채웠다”가 아니라, 채울 수 있는 항목과 아직 채우면 안 되는 항목을 구분하는 규칙이 생겼다는 데 의미가 있었습니다.
✅ 결과: 한 번의 알림이 아니라, 고칠 위치가 보이는 시스템이 됐습니다
이전에는 브리핑 결과가 부족하면 큰 프롬프트 전체를 더 길게 써야 했습니다.
이제는 문제가 생긴 위치를 구분할 수 있습니다.
문제가 생긴 곳