SFTScast
Public Platform
Client / Industry · 주식회사 바이레온 · 제주대학교 감염내과 (공공 보건 · 감염병 위험 예측)
제주 SFTS 위험 예보 — 기상 자료로 2주 앞 감염병 위험을 알리는 공공 보건 예보 서비스

Problem
문제
SFTS는 백신·치료제가 없어 물리지 않는 것이 유일한 예방인데, 주민과 방문객이 "오늘 풀밭에 가도 되는지"를 판단할 지역 단위 정보가 없었습니다.
연구팀이 만든 예측 모델은 2주 전 기상으로 오늘의 확률을 내는 구조라, 이 시간 차를 이해시키지 못하면 숫자가 오해를 낳기 쉬웠습니다.
연구 결과를 논문이나 보고서가 아니라 누구나 매일 보는 서비스로 바꾸고, 공공기관·보건소가 데이터를 가져다 쓸 수 있어야 했습니다.
Solution
해결
확률을 관심·주의·경고·위험 네 단계와 한 문장 행동 요령으로 번역해 첫 화면에 두고, 기반 관측일과 당시 기온·습도를 카드마다 붙여 2주 지연 구조를 그대로 보여 줬습니다.
권역 선택 지도, 14일 막대·표, 권역 비교·추이 차트를 외부 라이브러리 없이 SVG로 그려 가볍게 만들고, 휴대전화에서는 하단 탭으로 같은 흐름을 유지했습니다.
날씨를 바꿔 보는 시뮬레이터로 모델이 무엇에 반응하는지 체감하게 하고, 권역별 CSV와 공개 API로 예측값을 열어 두었습니다.
Scope
수행 범위
- 기획 · 화면 설계
- Frontend (Next.js)
- 예측 API (FastAPI) 연동·배포
- SVG 지도·차트
- CSV 내보내기
- 예측 모델 설계·학습은 고객사 연구팀
Architecture
시스템 구조
Next.js 프런트가 FastAPI 예측 API(/api/v1)에서 권역별 14일 예보·시뮬레이션 결과·모델 메타 정보를 받아 SVG 지도와 차트로 그립니다. 기상청 공공데이터의 4개 관측지점 자료를 매일 모아 2주 지연 구조의 Gradient Boosting 모델로 확률을 계산하고, 분위수 기반 임계값으로 네 단계 경보를 매깁니다. 같은 예측값을 CSV 내려받기로도 제공합니다.
Delivery
핵심 결정
1. 2주 지연을 UI에 드러내기
모델 구조를 단순화해 숨기는 대신 "2주 전 기상 조건으로 계산" 문구와 기반 관측일을 모든 예보 옆에 두어, 이용자가 오늘 날씨와 혼동하지 않게 했습니다.
2. 라이브러리 없는 SVG 지도·차트
지도 SDK나 차트 라이브러리를 넣지 않고 제주 윤곽·관측지점·막대·꺾은선을 직접 그려, 저사양 휴대전화와 느린 망에서도 첫 화면이 빠르게 뜨게 했습니다.
3. 운영 상태를 화면에 알리기
기상 자료가 아직 안 들어왔거나 모델 파일이 없을 때 조용히 옛 값을 보여 주지 않고, 상단 안내로 상태를 밝히고 근사값임을 표시하도록 했습니다.
Result
결과
- 제주 북·남·동·서부 14일 예보
- 4개 권역
- 매일 갱신
- 경보와 행동 요령
- 4단계
- 관심·주의·경고·위험
- 예측값 공개
- CSV · API
- 권역별·일괄 내려받기
Highlights
핵심 포인트
2주 지연 구조를 숨기지 않는 화면
오늘의 위험이 2주 전 날씨로 결정된다는 모델 구조를 그대로 드러냈습니다. 예보 카드마다 기반 관측일과 당시 기온·습도를 함께 보여 숫자를 오해하지 않게 했습니다.
확률보다 단계와 행동 요령
확률은 크게 보여 주되, 관심·주의·경고·위험 네 단계 이름과 "풀밭에 들어갈 때는 긴 옷과 기피제를" 같은 한 문장 행동 요령을 항상 붙였습니다. 경보 기준선은 비교 차트와 추이 차트에 점선으로 같이 그렸습니다.
직접 그린 지도와 차트
외부 지도·차트 라이브러리 없이 제주 윤곽과 4개 관측지점, 14일 막대, 권역 비교 막대, 추이 꺾은선을 SVG로 그려 번들을 가볍게 유지했습니다. 지도에서 지점을 누르면 아래 예보가 그 권역으로 바뀝니다.
데이터를 열어 두는 구조
권역별 예측값은 CSV 내려받기와 공개 API로 제공하고, 모델 종류·학습일·경보 임계값 같은 메타 정보도 API로 확인할 수 있게 했습니다. 기상 자료 지연이나 모델 파일 부재 같은 운영 상태는 화면 상단 안내로 그대로 알립니다.
Technology
기술 (도구)
문제 해결을 위해 선택한 기술입니다. 스택 자체보다 요구사항·운영 조건에 맞춘 선택입니다.
Screens
화면







Follow · Ask · Work
이 글이 도움이 됐다면
짧은 작업 기록과 데모는 인스타그램에 올립니다. 만들고 싶은 것이 있다면 프로젝트 의뢰나 협업 제안도 편하게 보내 주세요.
