뉴스 이슈에 「내 생활 영향」과 실제 시세를 붙이는 법 — 규칙표·FRED·SVG로 지어내지 않기
작성 2026-10-20
뉴스 이슈를 모아 보여 주는 것만으로는 「그래서 나한테 뭐가 달라지는데?」에 답하지 못해요. 그래서 이 사이트에 이슈마다 내 생활에 미칠 수 있는 영향 카드를 붙이고, 전문가 발언을 실제 시세 차트 위에 찍어 발언 뒤 시장이 어떻게 움직였는지 사후 확인하는 기능을 만들었어요. 사람 한 명과 AI(Claude Code)로 하루 안에 만든 과정이고, 숫자는 모두 2026-10-20 빌드에서 다시 잰 값이에요.
전체 흐름
- 매시: 언론사 RSS → 같은 사건끼리 묶은 이슈(/news/), 검색이 몰린 핫이슈(/hot/), 실명 전문가 발언 노드(/money/experts/)
- 하루 1번: 공개 시세를 받아
market.json(12.8KB)에 저장 — 매시 빌드는 이 캐시만 읽어요 - 빌드: 이슈 제목 → 영향 규칙표 매칭 → 카드 / 발언 날짜 → 시세 값 → 7일·30일 뒤 등락
- 정적 HTML + 인라인 SVG 로 배포(GitHub Pages, 서버 없음)
1. 영향 규칙표: 문장을 지어내지 않는 장치
생활 영향은 AI가 그때그때 문장을 만들면 그럴듯한 추측이 섞이기 쉬워요. 그래서 문장은 미리 써 둔 규칙표(JSON) 안에서만 꺼내 써요.
| 항목 | 값 |
|---|---|
| 규칙 수 | 10개(금리·환율·유가·부동산·반도체·증시·가상자산·물가·정책·안보) |
| 규칙 하나 | 키워드 정규식 + 「영향 대상 → 변화 → 확인 방법(링크)」 1~3줄 + 체감도(내 지갑·일상·일정, 낮음/보통/높음) + 연결할 시세 지표 |
| 문장 규칙 | 단정 금지, 「~할 수 있어요」로만. 끝에 「일반 정보, 개인 상황마다 다름, 투자 권유 아님」 |
| 제외 | 사망·사고·화재 등 단어가 있는 이슈는 카드를 붙이지 않음(오늘 60개 중 1개 제외) |
| 매칭 결과 | /news/ 이슈 60개 중 7개, /hot/ 핫이슈 26개 중 7개에 카드 |
숫자는 기사 제목에서만 뽑아요(%·%p·원·달러·bp·「N월 N일」 정규식). 뽑은 숫자 옆에는 언론사와 제목을 같이 적어서 출처 없는 숫자가 나가지 않게 했어요.
2. 공개 시세 소스와 robots.txt 확인
| 지표 | 출처 | 받은 일수 |
|---|---|---|
| S&P 500, 나스닥 종합, 원/달러, WTI, 미 국채 10년 | FRED 공개 CSV(fredgraph.csv?id=…) — robots.txt 「User-agent: *」 허용, 막힌 건 그래프 이미지 경로뿐 | 81~83일 |
| 비트코인(원화) | 업비트 공개 API 일봉 | 120일 |
| 코스피·국고채·반도체 지수 | 무료·허용 출처 미연결(한국은행 ECOS 는 인증키 필요) | — (발언 타임라인만) |
6개 지표를 받는 데 1.6초 걸려요. 네이버 금융·야후처럼 robots.txt 로 막힌 곳은 처음부터 후보에서 뺐어요. 하나가 실패하면 그 지표만 어제 값을 유지해요.
3. 발언-시세 사후 적중 계산
- 발언 날짜의 값 = 그날 또는 그 전 마지막 거래일 종가
- 7일 뒤 값 = 발언일+7일 이후 첫 거래일 종가. 아직 그날이 안 왔으면 「7일 뒤(10/27) 확인 예정」으로만 표시
- 낙관(🟢)인데 올랐거나 신중(🔴)인데 내렸으면 「발언 방향대로」, 아니면 「발언 방향과 반대」 — 조롱 표현 없이 사실만
- 기관별 순위표는 판정된 발언이 5건 이상인 곳만. 그보다 적으면 「표본 N건」으로만 보여 줘요
오늘 기준 최근 30일 전문가 발언은 15건이고, 수집을 시작한 지(10/16) 일주일이 안 돼서 아직 판정된 발언은 0건이에요. 숫자가 쌓이기 전에는 순위표를 만들지 않는다는 규칙이 그대로 화면에 드러나요.
4. 정적 JSON + SVG 차트
- 차트는 라이브러리 없이 빌드 때 SVG
path하나 + 발언 점circle(지금 8개)로 그려요. 페이지에 붙는 스크립트는 점을 누르면 아래에 제목·기관·원문 링크를 여는 몇 줄뿐이에요. - FRED 는 하루 이틀 늦게 반영돼서, 발언이 시세보다 최근이면 점이 차트 끝에 몰렸어요. 날짜 축을 「오늘」까지 늘리고 점선 오른쪽(아직 시세 없는 날)의 점은 흐리게 찍어 해결했어요.
- 같은 날 발언 여러 개는 15px씩 위로 비켜 찍어요.
5. 지어내지 않기 위해 넣은 것 정리
- 생활 영향 문장: 규칙표에 있는 문장만(코드 62줄 + 규칙 JSON 44줄)
- 숫자: 기사 제목 속 숫자 + 출처, 시세는 공개 데이터 + 출처 표기
- 본문 복사 없음: 기사는 제목과 원문 링크만
- 사후 확인: 발언과 결과를 같은 화면에 두되, 7일이 안 지나면 판정하지 않음
- 평론은 사실(출처 링크)과 의견(「루리의 시선」 상자)을 화면에서 나눠요 — 예: 나스닥 1.1% 반등했지만 「AI 거품」 말 나오는 이유
결과 화면
- 전문가 말 vs 실제 시세 — 30일 차트, 발언 점, 적중 보드, 생활 영향
- 이슈 감별 — 「💥 오늘 이슈, 내 생활엔?」
- 핫이슈 — 이슈별 영향 카드와 평론 링크
출처
- FRED 공개 CSV(SP500·NASDAQCOM·DEXKOUS·DCOILWTICO·DGS10) — 확인 2026-10-20
- 업비트 공개 API 일봉 — 확인 2026-10-20
- 이 사이트 빌드 로그·market.json — 확인 2026-10-20
관련: 전문가 말 vs 실제 시세
이 글에 대해 묻고 싶으면 ❓ 개발 FAQ에 남겨 주세요.
📤 공유