DOCS/journey/troubleshooting/260130_sea_headlines_implementation.md
Claude-51124 5a1fab4297 docs: 동남아 아침브리핑 계획문서 archive 이동, 링크·README 반영
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-30 10:25:14 +09:00

1.7 KiB

동남아 스타트업 뉴스 아침 브리핑 구현

날짜: 2026-01-30 작성자: happybell80 관련 계획: journey/plans/archive/260129_동남아_스타트업_뉴스_아침브리핑.md 관련 파일:

  • skill_news/app/services/sea_news_collector.py
  • skill_news/app/services/sea_news_filter.py
  • skill_news/app/services/sea_news_service.py
  • skill_news/app/api/news_endpoints.py (POST /api/news/sea/headlines)
  • rb8001/app/commands/skill_commands.py (fetch_sea_headlines)
  • rb8001/app/services/skills/startup_news_skill.py (동남아 섹션 삽입)

구현 내용

  • Phase 1: sea_news_collector.py — Google News 검색, hl=en&gl=SG, 24시간 필터, NewsArticle 반환. TDD: test_sea_news_collector.py 5건 통과.
  • Phase 2: sea_news_filter.py — 1차 키워드 필터(후보 최대 10건), 2차 LLM 적합도(Gemini), 폴백(키워드 개수), 제목 번역(Gemini). sea_news_service.py — format_sea_news_for_slack, load_companyx_context. TDD: test_sea_news_filter.py 5건, test_sea_news_service.py 2건 통과.
  • Phase 3: POST /api/news/sea/headlines 추가. 요청 body {} 또는 {"format":"json"}. TDD: test_sea_news_endpoint.py 1건 통과.
  • Phase 4: rb8001 fetch_sea_headlines(), run_headlines_job()에서 동남아 섹션 삽입(깡프로 헤드라인 끝 → 동남아 소식 → 01~03). 실패 시 생략(graceful degradation).

교훈

  • TDD: 테스트 먼저 작성 후 구현으로 Phase 1~3 안정적으로 진행.
  • 로컬 테스트 시 LOG_FILE_PATH, ChromaDB/NewsDataManager 초기화 회피를 위해 conftest·패치로 처리.
  • 동남아 컨텍스트는 SEA_COMPANYX_CONTEXT 또는 app/data/companyx_context.txt 사용(하드코딩 금지).