이전 글: 4편 — Java HttpClient로 외부 API 7개 연동하기
다음 글: 6편 — Claude로 블로그 초안 자동 생성 + Notion 동기화
왜 AI를 세 가지나 쓰는가
처음엔 하나로 처리하려 했다. ChatGPT 하나에 뉴스 정제부터 투자 분석, 블로그 생성까지 넣으면 구조가 단순해진다. 실제로 해봤다. 결과는 세 가지 문제로 나왔다.
- 뉴스가 100건이 넘으면 컨텍스트 길이 제한에 걸린다
- 정제와 분석을 한 번에 요청하면 응답 품질이 둘 다 애매해진다
- 비용이 예상보다 빠르게 올라간다
결국 각 AI가 잘하는 것을 맡기는 쪽으로 갔다.
| Google Gemini | 대량 텍스트 빠른 처리, 비용 효율 | 영문 뉴스 정제 + 감성 분류 |
| OpenAI GPT-4o-mini | 구조화된 JSON 출력, 금융 문맥 이해 | 종목별 BUY / HOLD / SELL 분석 |
| Anthropic Claude | 긴 형식 글쓰기, 자연스러운 한국어 | 블로그 본문 초안 생성 |
비용 구조도 영향을 줬다.
정제 단계는 뉴스 수십 건을 매일 처리하므로 저렴한 Gemini가 유리하다.
분석은 정확도가 중요해서 GPT-4o-mini를 선택했다.
블로그 생성은 긴 한국어 출력 품질이 중요해서 Claude가 적합했다.

Gemini: 뉴스 정제와 감성 분류
Gemini에게 요청하는 것은 영문 뉴스 한 건을 받아서 아래 형식의 JSON으로 변환하는 것이다.
프롬프트에서 가장 중요한 부분은 "JSON만 출력하라"는 지시다.
마크다운이나 설명을 붙이지 말라는 내용을 명시해야 4편에서 다룬 파싱 실패가 줄어든다.
다음 영문 뉴스를 분석하고 아래 JSON 형식으로만 응답하세요.
다른 텍스트나 마크다운은 포함하지 마세요.sentiment: POS(긍정), NEG(부정), NEU(중립)
eventType: EARNINGS, MACRO, REGULATORY, PRODUCT, MANAGEMENT, OTHER
impactStrength: HIGH, MEDIUM, LOW
signalScore: 1~10 (투자 영향도)뉴스 제목: {title}
뉴스 내용: {content}

Gemini Rate Limit이 가장 예민하다.
3초 대기를 넣고 있는데, 뉴스가 100건을 넘어가면 이 단계만 5분 이상 걸린다.
실제로 Gemini Rate Limit 초과가 3개월 운영 중 가장 많은 실패 원인이었다.
ChatGPT: 종목별 투자 분석
하나의 분석 요청에 들어가는 컨텍스트 구성이 이 단계의 핵심이다.
네 가지 데이터 소스를 조립해서 GPT-4o-mini에 넘긴다.
- 오늘 MARKET / GLOBAL / THEME 뉴스 요약 (공통 시장 컨텍스트)
- 해당 종목의 정제된 뉴스 목록 (Gemini 출력 활용)
- 해당 종목의 현재가와 전일 대비 등락률
- S&P500, 나스닥, 다우 등 시장 지수 현황
프롬프트에서 핵심 규칙이 하나 있다.
S&P500이 -2% 이상 하락한 날에는 개별 종목 뉴스가 아무리 좋아도 BUY 대신 WAIT를 권장하도록 명시했다.
시장 전체 흐름을 무시하고 개별 종목을 매수하는 판단을 막기 위해서다.

{
"action": "BUY",
"positionType": "LONG",
"timing": "TODAY",
"confidence": 72,
"buyRange": "180~185",
"stopLoss": "172",
"nextCatalyst": "8월 실적 발표",
"riskFactor": "시장 전반 조정 가능성",
"analysisContent": "..."
}예측 정확도 자동 평가
ChatGPT가 어제 내린 판단이 실제로 맞았는지를 매일 06:50에 자동으로 평가한다.
판정 기준은 다음과 같다.
| BUY | 다음 날 등락률 +0.5% 이상 |
| SELL | 다음 날 등락률 -0.5% 이하 |
| HOLD | 다음 날 등락률 ±2% 이내 |
| WAIT | 평가 제외 (NA) |
2개월치 데이터가 쌓이면서 패턴이 보이기 시작했다.
HOLD 판단이 가장 안정적이고, BUY 판단이 가장 변동이 크다.
시장 전체 상승일과 하락일에 따라 적중률 차이가 명확하게 갈린다.

데이터가 쌓이면서 AI 분석을 "어떤 상황에서 신뢰할 수 있는가"를 파악하는 게 가능해졌다.
단순히 판단 결과를 따르는 게 아니라,
HOLD 판단은 신뢰하고 BUY 판단은 시장 흐름을 함께 보고 결정하는 방식으로 활용하고 있다.
정리
| 뉴스 정제 | Gemini | 처리량 많음, 저비용, 정제 품질로 충분 |
| 투자 분석 | GPT-4o-mini | 정확한 JSON 구조화, 금융 판단 품질 |
| 블로그 생성 | Claude | 장문 한국어 출력 품질, 자연스러운 문체 |
AI를 분업시키는 구조가 처음에는 복잡해 보이지만,
실제로 운영해 보면 각 단계가 독립적이라 한 AI에 문제가 생겨도 나머지 단계에 영향이 없다.
Gemini가 Rate Limit에 걸려도 수집된 원문 뉴스는 DB에 그대로 남아 있고,
수동으로 정제를 재실행할 수 있다.
다음 편에서는 이 파이프라인의 마지막 단계인 Claude 블로그 초안 생성과 Notion 동기화를 다룰 예정이다.
데이터를 어떻게 프롬프트로 조립하는지,
Markdown을 Notion Block으로 어떻게 변환하는지 기록하겠다.