1.7 KiB
1.7 KiB
동남아 스타트업 뉴스 아침 브리핑 구현
날짜: 2026-01-30
작성자: happybell80
관련 계획: journey/plans/archive/260129_동남아_스타트업_뉴스_아침브리핑.md
관련 파일:
skill_news/app/services/sea_news_collector.pyskill_news/app/services/sea_news_filter.pyskill_news/app/services/sea_news_service.pyskill_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 사용(하드코딩 금지).