프로젝트 / 서비스

여울목 · 계곡 급류 사전경보 서비스

비가 내리지 않는 계곡에서도 상류 강우로 물이 불어납니다. 상류 강수량과 하류 수위 상승폭을 지점 단위로 연결해 두 단계로 경보하는 서비스를 2인 팀으로 설계했습니다.

팀장 · 서버·데이터·판정 엔진My AI 랩 선정 · 개발 중 (11월 중간평가, 12.11 최종 제출)2026.08 ~FastAPI한강홍수통제소 API기상청 API허브생성형 AI APIiOS자체 서버(Proxmox)DockerCloudflare Tunnel

직접 작성배운 점 3편 바로가기 ↓

30초 요약

계곡에서는 이용자가 있는 곳에 비가 오지 않아도 상류 강우로 물이 불어납니다. 위험이 시작되는 지점과 피해가 생기는 지점이 떨어져 있어서, 현장에서 하늘과 물만 보고는 알아차릴 수 없습니다. 이미 공개된 관측 데이터로 그 시간차를 메울 수 있는지 확인하려고 시작했습니다.

내가 한 일

  • 두 단계 경보 설계: 상류 1시간 누적 강수량 기준 초과 시 사전 경보, 하류 직전 30분 수위 상승폭 기준 초과 시 즉시 경보
  • 절대 수위 대신 상승폭을 보도록 판정 기준 정의. 같은 수위도 평시에 머문 것과 30분 만에 올라온 것은 다르게 처리
  • 경보 화면에 관측소명·관측 시각·실측값·기준값을 함께 띄우도록 설계. 숫자 없는 '위험' 표시는 쓰지 않음
  • 관측 지연·결측 시 마지막 값을 현재값으로 쓰지 않고 '자료 지연 · 판정 불가'로 표시, 결측만으로 기발령 경보를 해제하지 않도록 규칙 정의
  • 판정은 규칙 엔진, 설명은 생성형 AI로 역할 분리. AI 응답의 수치·단계가 원자료와 일치하는지 검사하고 실패 시 고정 문구로 대체
  • 쓸 공공데이터 조사: 한강홍수통제소 수위·유량·댐 방류, 기상청 레이더강수량, 산림청 산악기상
  • 2026 AI·디지털 기반 사회문제 해결 챌린지 출품(서류 탈락) 후 설계를 보완해 이어가는 중
  • 강릉과학산업진흥원 『My AI 랩 프로젝트』 선정, 10.29 개발 시작. 11월 중간평가, 12.11 최종 제출
  • 첫 대상 지역을 원주 금대리 계곡·서곡리 계곡으로 정하고 계곡별 상류 강수·하류 수위 관측소 짝 지음 (서곡리는 하류 수위 관측소가 없어 강수 사전 경보만)
  • 개발 서버 구성: 홈랩 Proxmox에 서비스 전용 VM을 따로 두고 Docker 설치, API 키는 저장소 밖 서버 파일에만 두고 저장소에는 이름만 적은 양식 파일을 올림, GitHub 접근은 이 저장소 전용 배포 키로 제한

확인한 결과

  • 한강홍수통제소·기상청·산림청 API가 전부 무료이고 개발계정 일 1,000건 한도인 것 확인
  • 대상 지역을 강원 영서권으로 좁힘. 강릉은 동해안 수계라 한강홍수통제소 관측망 밖인 것 확인
  • 도달시간을 공식으로 못 박지 않기로 함. 소양강 중권역에 6개 공식을 적용하면 10~46시간까지 벌어진다는 선행연구 확인
  • 영서권 실제 사고 사례 확인 (2025.7 원주 판부면, 2019.8 횡성 갑천면)
  • 개발 서버에서 한강홍수통제소(수위 관측소 제원)와 기상청(관측 강수·수치모델 예보) API를 실제로 호출해 응답 확인
  • 관측값이 한강홍수통제소는 약 10분, 기상청은 약 4분 늦게 올라오고, 결측은 빈칸이나 -99.9로 온다는 것 확인 → 수집은 현재 시각에서 10분 여유를 두고, 결측은 0이 아니라 판정 불가로 처리
  • 헬스체크 API를 컨테이너로 띄우고 Cloudflare Tunnel로 공개한 뒤, 폰 5G(와이파이 끔)에서 yeoulmok.ihaewon.com/api/health 응답 확인

개요

상류 관측소의 강수량과 하류 관측소의 수위 변화를 지점 단위로 묶어서 보여주는 서비스입니다. 관측 정보를 새로 만들지 않고, 이미 공개된 데이터를 계곡 이용자와 현장 담당자가 쓸 수 있는 형태로 전달하는 데 목적이 있습니다. 공식 홍수특보를 대체하지 않습니다.

첫 대상은 원주 금대리 계곡과 서곡리 계곡입니다. 서비스 구현은 시작 단계이고, 위 내용은 조사와 설계로 정한 방향입니다. 서버 세팅, API 명세, 관측 데이터 확인은 진행 단계의 실습 로그에 기록했고, 이후 단계도 같은 방식으로 이어서 남깁니다.