sequenceDiagram
participant SS as signal_service
participant MK as market.py
participant NW as news.py
participant HL as headlines.py
SS->>MK: detect_market(symbol)
MK-->>SS: market(KR/US), query
SS->>NW: fetch(query, market)
alt market == KR
NW->>NW: Google News RSS (ko)
else market == US
NW->>NW: GDELT API
alt GDELT 실패
NW->>NW: Google News RSS (en-US) 폴백
end
end
NW-->>SS: raw_headlines[]
SS->>HL: dedup(raw_headlines, limit)
HL-->>SS: headlines[]
클래스 의존
flowchart LR
subgraph Application["Application"]
signal_service["signal_service.py"]
end
subgraph Domain["Domain"]
market["market.py (detect_market, news_query)"]
news["news.py (fetch)"]
headlines["headlines.py (dedup)"]
end
subgraph Config["Config"]
config["config.py (NEWS_LIMIT)"]
end
signal_service --> market
signal_service --> news
signal_service --> headlines
news --> market
headlines --> config