SOLO PROJECT · 2026.06–08
IT-Tech Trend Analyzer
여러 뉴스 채널의 IT 기사를 정리해 인기·급상승 이슈와 관련 기사, 기간별 변화를 살펴보는 개인 서비스.
김선호 · 수집 / 분석 / Backend·DB / Frontend / Cloud Delivery
공개 Portfolio 저장소를 연결했습니다. 비공개 개발 저장소는 링크하지 않았습니다.
01 · 문제
흩어진 뉴스에서 지금 주목할 이슈와 근거 기사를 찾을 수 있을까?
IT 뉴스는 여러 사이트에 나뉘고 같은 이슈도 다른 표현으로 등장합니다. 기사에서 키워드를 뽑아 현재 자주 언급되는 주제와 직전 구간보다 늘어난 주제를 구분하고, 집계의 근거가 된 기사를 함께 탐색할 수 있는 서비스를 만들었습니다.
주요 사용 흐름은 키워드 순위 확인, 인기·급상승 및 카테고리 선택, 날짜별 흐름과 관련 기사 확인입니다.
02 · 지표와 분석
현재와 직전 24시간의 고유 기사 수를 비교
네이버·다음·Google News RSS 기사에서 KoNLPy Okt로 키워드를 추출합니다. 겹치지 않는 현재 24시간과 직전 24시간의 고유 기사 수를 사용합니다.
mentionCount = 현재 24시간 고유 기사 수velocityScore = 현재 − 직전 기사 수hotnessScore = mentionCount × 0.4 + velocityScore × 0.6인기는 현재 언급량을, 급상승은 양수 증가량을 중심으로 보여줍니다. 기사 × 대표 키워드 × 카테고리 × 구간은 한 번만 계산합니다. 키워드별 7일 흐름과 두 키워드의 2–30일 비교도 제공합니다.
기사량 기반 휴리스틱입니다. 통계적 유의성, 미래 예측력 또는 검증된 의사결정 효과를 주장하지 않습니다.
03 · 수집과 품질
채널별 부분 실패와 단계별 데이터 건수를 추적
Naver·Daum HTML과 Google News RSS를 공통 기사 계약으로 정규화했습니다. UUID run_id와 전체·채널별 실행 상태를 기록합니다.
- RUNNING / SUCCESS / EMPTY / PARTIAL_FAILURE / FAILURE로 상태를 구분
- 같은 run_id와 payload 재전송은 멱등 처리하고 다른 payload 충돌은 거부
- crawler → validation reject → duplicate → eligible → selected → backend response 수량 대사
- articles의 source_url unique, trend_metrics 최신 스냅샷, keyword aliases, crawl runs 상태·수량 저장
Oracle 연결 환경·프로파일을 나누고 Flyway로 스키마를 관리했습니다. Oracle instance를 직접 프로비저닝했다고 주장하지 않습니다.
04 · 본인 기여
개인 프로젝트에서 데이터부터 화면과 배포까지 연결
- 여러 뉴스 채널의 기사 수집·정규화와 Python 키워드 추출
- 기사량 기반 인기·급상승 지표와 기간별 비교 구현
- Spring Boot API, Oracle 저장 구조와 Flyway schema 관리
- React 화면에서 순위·기간 변화·근거 기사 탐색 연결
- Docker·OCI 환경 배포와 실행·로그 기반 문제 확인
테스트 성공만으로 외부 서비스 E2E나 운영 DB 전체 상태가 확인된 것으로 확대하지 않습니다.
05 · 서비스와 화면
키워드 점수에서 근거 기사와 기간 변화까지
사용자는 인기·급상승 기준과 카테고리를 살피고, 선택한 키워드의 실제 관련 기사와 7일 흐름, 두 키워드의 2–30일 비교를 확인할 수 있습니다.



06 · 검증과 한계
자동 테스트와 실제 서비스 검증을 구분
표시한 수는 공개 저장소 검증 보고서(2026-07-22) 기준입니다. 성공한 자동 테스트가 외부 서비스 E2E, 운영 DB 전체 상태 또는 장기 운영을 보장하지 않습니다.
후보 200개에서 max score 0.4839로 threshold 0.85에 미달해 추천 0건이었습니다. threshold 보정은 HOLD 상태이며 기능 성공으로 표현하지 않습니다.
- Discord 실제 연결·공유 구독 E2E는 미완료
- 장기 RUNNING 수집 이력의 자동 종료·알림은 미구현
- 외부 뉴스 HTML 변경에 대비해 표본 확인이 계속 필요
검증 범위와 구현 근거는 공개 Portfolio GitHub에서 확인할 수 있습니다.