Part AHOW WE FORECAST
어떻게 예고하나
데이터를 어디서 받아, 어떤 공간 단위로 세우고, 어떤 모델로 위험을 읽고, 그 불확실성과 근거를 어떻게 남기는지 한 단계씩 공개합니다.
A1
무엇으로 예고하나
출처는 여럿, 파이프라인은 하나입니다
예고는 데이터에서 시작합니다. 공공기관 12곳이 만드는 26종 자료를 매일 같은 파이프라인으로 받아, 9개 광역 연안의 이름 붙은 갯벌과 항구 450곳 단위로 다시 세웁니다(첫 연안인 충청남도가 그중 70곳입니다).
Halia는 12개 국가 공공기관이 생산하는 26종의 핵심 데이터를 일 단위 운영 파이프라인으로 수집하고, 9개 광역 연안의 주요 갯벌 450곳 단위로 재구성합니다. 수집된 원천 데이터는 갯벌 단위마다 49개의 입력 변수로 가공됩니다 — 관측·보간·파생 해양·기상 값, 시간 흐름(lag), 이웃 갯벌과의 공간 관계, 주변 시설(갯벌·어항·체험마을·하수처리시설) 근거까지 묶여, 모델이 바다 상태를 여러 각도에서 읽는 검증 가능한 입력이 됩니다. 관측소가 드문 해역의 수온·염분은 주변 관측점에서 격자마다 공간 보간으로 채우고, 그날 어떤 방식으로 보간했는지와 그 오차(RMSE)를 함께 남깁니다.
Fig. 01DATA FLOW
Fig. 01-ADATA SOURCES
관측 · 핵심 입력값
환경, 기상, 해양 기준선. 모델이 직접 받아쓰는 입력.
조위 · 조류
KHOA · 국립해양조사원
- 분야
- 해양 관측
- 갱신
- 7일
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 핵심 입력
해양 부이 (수온·염분)
KHOA · 국립해양조사원
- 분야
- 해양 관측
- 갱신
- 1일
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 핵심 입력
조석 예보
KHOA · 국립해양조사원
- 분야
- 해양 예보
- 갱신
- 1일
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 핵심 입력
기상 부이
KMA · 기상청
- 분야
- 해양 기상
- 갱신
- 7일
- 라이선스
- 제3자 권리 포함 : 저작권 표시
- 역할
- 핵심 입력
육상 기상 관측 (일사·강수)
KMA · 기상청
- 분야
- 육상 기상
- 갱신
- 1일
- 라이선스
- 제3자 권리 포함 : 저작권 표시
- 역할
- 핵심 입력
자외선 지수
KMA · 기상청
- 분야
- 보조 기상
- 갱신
- 7일
- 라이선스
- 미확인
- 역할
- 보조 입력
파고 예보
KMA · 기상청 동네예보
- 분야
- 해양 기상
- 갱신
- 1일
- 라이선스
- 제3자 권리 포함 : 저작권 표시
- 역할
- 보조 입력
해양환경 기준선
KOEM · 해양환경공단
수집이 멈춰 있습니다 · 마지막 실측 2025년 11월 30일 · 직전 적재분(4월 29일)은 대체값이었습니다
- 분야
- 해양 환경
- 갱신
- 연 1회
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 기준선 비교
수산자원 관측
NIFS · 국립수산과학원
해파리는 게시판 공지 제목만 받습니다 · 밀도·좌표 없음 · 지수는 전량 대체값 · 마지막 7월 23일
- 분야
- 수산 자원
- 갱신
- 7일
- 라이선스
- 미확인
- 역할
- 핵심 입력
패류독소 속보
NIFS · 국립수산과학원
- 분야
- 수산 안전
- 갱신
- 7일
- 라이선스
- 공공누리 제3유형(출처표시·변경금지)
- 역할
- 보조 입력
해색 위성 GOCI-II
NOSC · 국가해양위성센터
일부 날짜는 대체값입니다 · 최근 30일의 15% · 마지막 7월 18일
- 분야
- 위성 영상
- 갱신
- 7일
- 라이선스
- 미확인
- 역할
- 핵심 입력
위성 표층수온 (1km)
NOSC · 국가해양위성센터
- 분야
- 위성 영상
- 갱신
- 1일
- 라이선스
- 미확인
- 역할
- 핵심 입력
댐 수문 방류량
K-water · 한국수자원공사 · data.go.kr 15099110
- 분야
- 담수 유입
- 갱신
- 7일
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 담수 유입 관측(카탈로그 dormant 등재)
하천 수위·유량
HRFCO · 한강홍수통제소(표준수문DB)
- 분야
- 담수 유입
- 갱신
- 7일
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 담수 유입 관측(카탈로그 dormant 등재)
이벤트 · 검증 신호
감염병 통계와 식품 회수 기록. 모델이 낸 결과와 맞춰보는 자료.
비브리오패혈증 환자
KDCA · 질병관리청
- 분야
- 감염병 통계
- 갱신
- 주 단위 공표
- 라이선스
- KOSIS 이용지침: 자유이용(출처명시)
- 역할
- 검증용 외부 신호
식품 회수
MFDS · 식품의약품안전처
- 분야
- 식품 안전
- 갱신
- 14일
- 라이선스
- 저작권법 제24조의2(자유이용·출처명시)
- 역할
- 사건 신호
기상 특보
KMA · 기상청
- 분야
- 기상 특보
- 갱신
- 2일
- 라이선스
- 제3자 권리 포함 : 저작권 표시
- 역할
- 경보 근거
노로바이러스 주간 신고
KDCA · 질병관리청
- 분야
- 감염병 통계
- 갱신
- 시즌(겨울)
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 겨울철 관측 신호
이안류 지수
KHOA · 국립해양조사원 · data.go.kr 15156028
국가(KHOA) 이안류 지수 수신·중계 — 관측(observed) · 대천 해수욕장 1곳 한정 · 지수·등급은 KHOA 산출값 그대로입니다
- 분야
- 친수 안전
- 갱신
- 시즌(6~9월)
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 국가 산출 지수 중계
외부 추정 (측정값 아님)
다른 기관이 산출한 추정값입니다. Halia가 직접 측정한 값이 아니며, 역할은 행별로 적었습니다.
식중독 예측 지수외부 추정
MFDS · 식품의약품안전처
- 분야
- 외부 추정
- 갱신
- 1일
- 라이선스
- 미확인
- 역할
- 외부 추정값
비브리오 예측 지수외부 추정
MFDS · 식품의약품안전처
- 분야
- 외부 추정
- 갱신
- 2일
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 외부 추정값
ROMS 예측수온외부 추정
KHOA · 국립해양조사원
- 분야
- 외부 추정
- 갱신
- 2일
- 라이선스
- 공공누리 제1유형(출처표시)
- 역할
- 외부 추정값(수온 입력 보완)
공간 · 시설 기준 자료
갯벌, 어항, 시설 좌표를 모은 기준 자료입니다.
갯벌 위치 자료
해양수산부 · 갯벌면적 표준데이터
- 분야
- 공간 기준
- 갱신
- 참조(1회 수집)
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 공간 기준
어항 위치
해양수산부 · 어항 공동활용체계
- 분야
- 공간 기준
- 갱신
- 참조(1회 수집)
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 공간 보조
어촌체험마을
한국어촌어항공단 · 체험휴양마을 표준데이터 · 공공데이터포털 배포
- 분야
- 운영 기준
- 갱신
- 참조(1회 수집)
- 라이선스
- 미확인
- 역할
- 운영 보조
공공하수처리시설
KECO · 한국환경공단 하수처리시설
- 분야
- 환경 시설
- 갱신
- 참조(1회 수집)
- 라이선스
- 이용허락범위 제한 없음
- 역할
- 오염원 보조
공공데이터 활용은 공공데이터 포털 이용약관을 따릅니다. 외부 추정값 (식약처 식중독, 비브리오)은 Halia가 직접 측정한 값이 아니라는 점을 따로 표기합니다. 참조 데이터는 원본 공표 시에만 바뀝니다.
이용허락 미확인은 아직 확인하지 못했다는 뜻이며, 이용할 수 없다는 뜻이 아닙니다.
Fig. 01-B34 ENVIRONMENTAL VARIABLES
| 카테고리 | 개수 | 예시 |
|---|---|---|
| 해양 환경 (관측·파생) | 9 | 수온 · 염분 · 엽록소 · 산성도 · 용존산소 · 영양염(질소·인) |
| 기상 (실측) | 5 | 일사량 · 풍속 · 파고 · 강수량(24시간·7일) |
| 시간 흐름 (자동 생성) | 8 | 수온의 1일~80일 전 값 · 비브리오의 1~4주 전 값 |
| 이웃 갯벌 (근접 관계) | 3 | 이웃 갯벌 수온 평균 · 수온 공간 변화율 · 상류 하천 유입(금강 하구권) |
| 위험 지수 · 파생 | 7 | 식품위해 · 비브리오 지수 · 수온/염분 이상치 · 강우 후 영양염 · 갯벌 노출 시간 |
| 계절성 | 2 | 연중 시기(사인·코사인 주기) |
| 환경 변수 분류 합계 | 34 | 표의 환경 변수 카테고리만 합산 |
표의 환경 변수 분류 34개에 갯벌·어항·체험마을·하수처리시설 기반 공간 지표 15개를 더해, 오늘 예고를 낸 모델의 입력 변수는 총 49개입니다. 아래 검증 표의 점수를 낸 모델은 이것과 다른 파일이며 입력 변수가 54개였습니다 — 적조·해파리·패류독소·용존산소 대리지표 5개가 그 뒤로 입력에서 빠졌습니다(그 자료를 안 받는다는 뜻은 아니고, 이 모델의 입력이 아니라는 뜻입니다).
시간 흐름 변수는 1일·7일·30일·80일 전 수온처럼 지난 값을 함께 봅니다. 다만 이 지난 수온은 아직 그날 잰 값이 아니라 계절 흐름을 따라 계산한 값이라, 실제 관측값과는 차이가 있을 수 있습니다.
Fig. 01-CDATA → DECISION
데이터는 점수에서 끝나지 않습니다. 12개 기관의 공공데이터가 각각 어떤 기능을 거쳐 현장의 결정·행동으로 이어지는지를 한 줄씩 잇습니다 — 같은 바다 데이터 하나를 어업·관광·보건·안전 여러 부문의 판단으로 갈라 씁니다.
- KHOA
조석 · 수온 · 조류
국립해양조사원
캘린더 물때 · 갯벌 고립 위험 지수 · 수온 공간보간
갯벌 고립 위험 카드
안전 - KMA실시간
풍랑 · 강풍 특보
기상청
실시간 특보 판독
해상 특보 표시·알림
안전 - NIFS실시간
고수온 · 저수온 · 적조 · 패류독소
국립수산과학원
고수온·저수온 국가 예보 수신 · 패류독소 속보 파싱
수온 위험 카드 · 패류독소 이력
어업 - MFDS
비브리오 지수 · 회수
식품의약품안전처
식약처 비브리오 환경 신호
식중독 예방 경보
보건 - KOEM
수질 · 용존산소 · 엽록소
해양환경공단
해변 수질 · 빈산소 신호
매일 남기는 환경 기록
관광 - KDCA
비브리오 환자 집계
질병관리청
보건 감시 추세
화면 없음 — 모델 입력으로만
보건 - KDCA
노로바이러스 주간 신고
질병관리청
겨울 노로 전국 관측을 생산해역 격자에 투영
노로 위험 카드(겨울 점등)
보건 - NOSC
GOCI-II Chl-a · SST
국가해양위성센터
적조 보조지수 · 관측 보강
보강된 위성 관측 화면
근거
Fig. 01-DONE SIGNAL → MULTI-HAZARD
개별 위험은 정부가 이미 무료로 제공합니다. Halia만의 자리는 엮는 데 있습니다 — 같은 수온 한 변수가 비브리오·고수온·적조의 서로 다른 기준선을 동시에 넘는 것을 한 화면에서 근거(임계값·출처)와 함께 보여 줍니다. 슬라이더로 직접 확인해 보세요.
- 비브리오 환경 신호보건경고 구간
경고 기준 25°C 이상
기준선 21 · 25 · 28 °C출처 식약처 비브리오 기준 - 고수온 양식 경보어업예비주의보
예비 단계 25°C 이상
기준선 25 · 28 °C (경보는 28°C 3일 연속)출처 국립수산과학원 고수온 기준 - 적조 발생 환경환경발생 환경 조성정성적
수온 상승기 — 발생 조건의 하나 충족
기준선 정성적 · 여름 고수온기출처 국립수산과학원 적조 속보
A2
어디를 예고하나
이름 붙은 갯벌 450곳으로 봅니다
시·군 경계로만 나누면 갯벌 위험을 한 덩어리로 뭉뚱그리게 되고, 1km² 정사각형 격자로 나누면 갯벌이 없는 바다까지 셈에 들어옵니다. Halia는 자연 지형과 어업 활동을 따라 갯벌·항·만 450곳을 골라, 위험을 실제 현장 단위로 읽습니다.
Halia는 9개 광역 연안을 이름 붙은 갯벌과 항구 450곳으로 나눕니다(첫 연안인 충청남도가 그중 70곳입니다). 어업·관광·환경 보호의 실질 거점인 이 단위들은 지형과 생태의 의미를 그대로 살려, 모델이 위험을 계산하는 기본 단위가 됩니다.
| ID | 갯벌·항·만 | 시·군 | 특성 |
|---|---|---|---|
| G-SC-01 | 서천 갯벌 01 | 서천군 | 금강 하구권 갯벌 |
| G-BR-01 | 보령 갯벌 01 | 보령시 | 천수만 남부권 갯벌 |
| G-TA-01 | 태안 갯벌 01 | 태안군 | 가로림만 인접 갯벌 |
| G-SS-01 | 서산 갯벌 01 | 서산시 | 가로림만 연안 갯벌 |
| G-DJ-01 | 당진 갯벌 01 | 당진시 | 아산만 연안 갯벌 |
| G-HS-01 | 홍성 갯벌 01 | 홍성군 | 천수만 내측 갯벌 |
| 예시 6곳 표기 · 전체 450곳 갯벌은 제품 화면(기관 전용)에서 확인 | |||
Fig. 02RISK MAP PREVIEW
A3
주변 시설 근거
갯벌마다 주변 근거를 붙입니다
공간 근거 레이어는 주요 갯벌 450곳마다 주변 갯벌·어항·체험마을·하수처리시설을 거리와 개수로 집계해 붙입니다. 위험 점수만 내놓는 것이 아니라, 갯벌을 둘러싼 어업 활동·관광 노출·오염원 부담까지 함께 보여 줍니다.
갯벌 면적
15126804해양수산부_갯벌면적
20km 주변 갯벌 수 · 최근접 갯벌 거리
어항
15147455해양수산부_공동활용체계_어항
10km 주변 어항 수 · 최근접 어항 거리
체험마을
15013113전국농어촌체험휴양마을표준데이터
20km 주변 체험마을 수 · 관광 노출 대리지표
하수처리시설
3073222한국환경공단_공공하수처리시설 현황
시군·20km 시설 수 · 방류량/TN/TP 부하 대리지표
A4
어떻게 위험을 읽나
세 모델을 겹쳐 읽습니다
Halia의 위험도 모델은 선형 신호와 비선형 패턴을 함께 읽는 다중 모델 앙상블입니다. 49개의 환경·공간 지표를 입력받아 해역별 위험도를 계산하고, 그 불확실성도 함께 내놓습니다.
환경 변수 수집 → 세 모델(선형·랜덤포레스트·보조 로지스틱)의 확률을 가중 평균으로 결합 → 확률 보정 → 최종 위험 신호 산출.
Fig. 03MODEL CASCADE
Logistic Regression
선형 관계를 안정적으로 읽는 기준 축입니다. 스케일 조정 뒤 위험 확률의 기본 골격을 잡습니다.
- Library
- scikit-learn
- Class weight
- balanced
- Role
- 기준선 확률 축
Random Forest
비선형 패턴과 변수 간 상호작용을 읽는 주력 축입니다. 현재 앙상블에서 가장 큰 비중을 차지합니다.
- n_estimators
- 550
- min_samples_leaf
- 4
- Library
- scikit-learn
보조 로지스틱
위험 환경과의 유사도를 보는 보조 축입니다. 규제를 건 로지스틱 모델이며, 앙상블에서 가장 작은 몫(10%)을 맡습니다.
- Form
- regularized logistic
- Role
- 보조 판단 축
- Weight
- 0.1
A5
얼마나 확신하나
빗나간 폭이 예측 범위가 됩니다
회귀식 예측구간을 처음 시도했다가 목표에 못 미쳐 내렸고, 지난 예고가 실제로 벗어난 폭을 리드·권역별로 재는 방식으로 다시 설계했습니다. 그 이력을 그대로 남깁니다.
단일 예측 점수만으로는 현장의 불확실성을 충분히 설명할 수 없어, Halia는 처음에 Conformal Prediction으로 P10~P90 예측구간을 시험했습니다. 그러나 환경 신호로 만든 이진 대리 라벨에는 회귀식 예측구간이 근본적으로 맞지 않아, 시간 순서를 지킨 보정 검증에서 실제 값을 감싼 비율은 53.4%로 목표(90%)에 크게 못 미쳤고, 제품 화면에서 이 구간을 내렸습니다. 이후 방식을 다시 설계해, 지금은 리드(며칠 앞)·권역별로 지난 20 발행일 동안 같은 며칠-앞 예보가 그날 기준값에서 실제로 벗어난 폭을 재서 예측 범위를 그립니다. 오프라인 검증에서 대략 10번 중 9번(90.6%)이 이 범위 안에 들어왔고, 검증 이력이 부족한 예보는 범위를 지어내지 않고 표시를 생략합니다. 여기서 기준값은 예측 이력으로 만든 대리값이라 실제 사고를 직접 관측한 값은 아닙니다.
Fig. 04PREDICTION INTERVAL
이 그림은 예측 범위를 보여주는 방식의 예시입니다. 실제 범위는 지난 예고가 실제로 벗어난 폭을 리드·권역별로 재서 오늘부터 제품에 표시합니다.
아래는 처음 시도했다가 내린 회귀식 예측구간의 기록값입니다(현재 밴드 아님).
방식
Split-Conformal (클래스별 Mondrian 보정)
목표 커버리지
90%
실측 커버리지
53.4%
양성 커버리지
60.8%
평균 구간폭
0.5667
A6
왜 이 점수인가
점수를 요인별로 분해합니다
Halia는 SHAP(Shapley Additive exPlanations)으로 위험 점수 하나하나를 뜯어, 어떤 해양 환경 요인이 얼마나 세게 작용했는지 보여 줍니다. 점수와 함께 그 점수에 이른 근거를 같은 화면에 답니다.
Fig. 05SHAP WATERFALL
Fig. 05-B격자 단위 원인 분해
| 순위 | 변수 | SHAP 기여 (예시) |
|---|---|---|
| 1 | 수온 (KHOA) | +12.5 |
| 2 | 엽록소 (KOEM) | +8.3 |
| 3 | 용존산소 (KOEM) | −5.2 |
| 4 | 강수 (KMA) | +4.7 |
| 5 | 조위 (KHOA) | +3.1 |
A7
같은 갯벌을 다시 읽기
위험 지도가 전략판이 됩니다
후보지 판단 레이어는 같은 갯벌 70곳을 복원·블루카본 관점으로 다시 읽는 전략 도구입니다. 위험 점수와 해양 생태계 가치를 한자리에 놓고, 어디부터 살펴볼지 우선순위를 잡습니다.
현재 범위는 충남 갯벌 70곳입니다. 후보지 ID는 원래 갯벌 ID와 그대로 이어지므로, 위험 화면과 후보지 화면을 같은 단위로 오가며 읽을 수 있습니다.
Fig. 06CANDIDATE LAYER
candidate evidence
위험 지도를 복원 후보지 전략판으로 확장합니다.
위험 화면은 그대로 두고, 요청이 있을 때만 후보지 비교와 근거 자료를 덧붙입니다.
blue_carbon_potential_score
블루카본 잠재력
갯벌 면적과 주변 갯벌 서식지 네트워크(개수·근접성)를 결합한 대리지표 점수
restorability_proxy_score
복원 가능성
어항·체험마을 접근성, 오염원 압력, 데이터 신뢰도를 함께 본 복원 후보지 대리지표
ecology_fishery_cobenefit_score
생태·어업 편익
어업·관광·지역 편익을 동시에 보는 공동편익 점수
safety_readiness_score
안전관리 준비도
현재 위험 점수와 7일 흐름, 불확실성, 주변 시설 근거를 함께 보는 안전관리 점수
| 시나리오 | ID | 해석 |
|---|---|---|
| 균형형 | balanced | 탄소 0.30 · 복원 0.25 · 생태·어업 0.25 · 안전 0.20 |
| 탄소중립 우선 | carbon_first | 탄소 0.50 · 복원 0.20 · 생태·어업 0.15 · 안전 0.15 |
| 어업·지역편익 우선 | fishery_first | 탄소 0.20 · 복원 0.20 · 생태·어업 0.40 · 안전 0.20 |
| 안전관리 우선 | safety_first | 탄소 0.15 · 복원 0.20 · 생태·어업 0.20 · 안전 0.45 |

Part BWHY YOU CAN TRUST IT
무엇으로 믿나
시간 순서를 지킨 검증, 매일 같은 규칙으로 남기는 기록, 서울 리전 운영 인프라, 그리고 진행 중인 인증까지 — 예고를 뒷받침하는 증거를 그대로 엽니다.
B1
무엇을 맞혔다는 말인가
무엇으로 채점했는지부터 적습니다
성능 숫자는 「무엇을 정답으로 놓고 쟀는가」에 따라 뜻이 완전히 달라집니다. 그래서 채점 기준을 먼저 적고, 이길 상대(기준선)를 같이 적습니다. 기준선을 못 이긴 결과도 지우지 않습니다.
이 표의 채점 기준
아래 숫자는 내부 산식 재현율입니다. 우리가 만든 기준값(대리 라벨)을 모델이 얼마나 그대로 따라 그리는지를 잰 값입니다. 실제 비브리오 검출을 맞힌 비율이 아닙니다. 검증 방식을 바꾸면 같은 모델의 숫자가 얼마나 달라지는지를 보이려고 셋을 나란히 둡니다 — 그것이 이 표가 하는 일의 전부입니다. 우리 공식 밖에서 채점한 결과는 이 절 맨 앞의 국가 특보 대조 항목에 따로 적었습니다.
무작위 분할
random split
- PR-AUC
- 0.9619
- ROC-AUC
- 0.9827
- Brier
- 0.0547
같은 갯벌의 미래 시점이 학습에 섞일 수 있어 결과가 부풀려졌다고 판단했습니다.
시계열 분할
timeseries split
- PR-AUC
- 0.8725
- ROC-AUC
- 0.8732
- Brier
- 0.2479
미래를 학습에 섞지 않은 단순 시계열 분할 비교치입니다.
시공간 분할
spatiotemporal split
- PR-AUC
- 0.7922
- ROC-AUC
- 0.8828
- Brier
- 0.1765
미래를 학습에 섞지 않고 공간까지 나눠 잰 값입니다. 세 행 모두 같은 잣대(우리가 만든 대리 라벨)로 재기 때문에 서로 비교는 되지만, 어느 것도 실제 검출 적중률이 아닙니다.
이 표의 값은 2026-02-17 에 동결한 비교용 모델(m1_habitat_spatiotemporal)에서 잰 것입니다. 그 모델은 입력 변수가 54개였고, 오늘 화면에 예고를 내는 모델은 그중 5개를 뺀 49개짜리 다른 파일입니다. 그래서 이 숫자를 「지금 예고의 정확도」로 읽으면 안 됩니다.
예측 범위 현황
예측 범위를 다시 설계해 오늘부터 표시합니다
처음 시도한 회귀식 예측구간(P10~P90)은 환경 신호로 만든 이진 대리 라벨에 맞지 않아, 실측 커버리지가 목표(90%)에 크게 못 미쳐 제품에서 내렸습니다. 이후 지난 예고가 실제로 벗어난 폭을 리드·권역별로 재는 방식으로 다시 설계했고, 오프라인 검증에서 대략 10번 중 9번이 이 범위 안에 들어와 오늘부터 다시 표시합니다. 내렸던 시기의 실측치는 모델 진단 화면에 그대로 남아 있습니다.
데이터 누수 감사 보고서
누수를 어떻게 찾아냈고 시계열 분할로 어떻게 바꿨는지 문서로 공개합니다.
Fig. 07PR CURVE
Fig. 08CALIBRATION
아래 곡선은 실측이 아니라, 보정 곡선을 읽는 법을 보이기 위한 예시입니다. 가로축은 예고 확률 구간(0~1), 세로축은 실제 관측 빈도입니다. 점선은 이상적인 보정 기준선(y=x)이고, 곡선이 이 선에 가까울수록 잘 맞은 것입니다. 위쪽으로 휘면 과신, 아래로 휘면 과소입니다.
Brier Score는 모든 구간에 대한 (예고–기준값)² 평균 오차로, 낮을수록 좋습니다. 같은 시공간 검증에서 잰 Brier는 0.1765입니다 — 이 값도 관측이 아니라 내부 산식 재현율 잣대로 잰 값입니다.
구간별로 나눠 보면 — 같은 잣대 안에서도 드문 구간일수록 어렵습니다
먼저 — 이 표의 값은 내부 산식 재현율입니다. 우리가 만든 기준값(대리 라벨)을 모델이 얼마나 그대로 따라 그리는지를 잰 값입니다. 실제 비브리오 검출을 맞힌 비율이 아닙니다.
그 잣대 안에서 보면, 구분하는 힘(ROC-AUC)은 모든 구간에서 0.83~0.98로 고르지만 양성 사례가 드문 시·군에서는 정밀도 지표(PR-AUC)가 0.60~0.98로 내려갑니다. 좋은 구간만 보여 주지 않기 위해, 낮은 구간까지 전부 함께 공개합니다.
| 시·군 | PR-AUC (정밀도) | ROC-AUC | 표본 |
|---|---|---|---|
| 태안군유병률 저 | 0.659 | 0.830 | 3,354 |
| 서산시유병률 저 | 0.651 | 0.832 | 903 |
| 당진시유병률 저 | 0.605 | 0.832 | 1,419 |
| 홍성군유병률 고 | 0.896 | 0.935 | 516 |
| 서천군유병률 고 | 0.916 | 0.945 | 1,032 |
| 보령시유병률 고 | 0.978 | 0.977 | 1,806 |
2·3월은 양성 사례가 30건 미만이라 표에서 제외했습니다(숨김이 아니라 표본 부족). 값은 2026-07-16에 잰 것이고, 2026-07-29에 수온 계산을 고치면서 정답표가 바뀌어 그 뒤에 잰 값과 직접 비교할 수 없습니다.
Fig. 09NATIONAL VIBRIO SYSTEMS · COMPARISON
Halia의 범위는 아래처럼 좁게 정의하는 편이 정확합니다.
Halia
Halia운영 단위
이름 붙은 갯벌 70곳
방식
0~100 정량 점수
기간
오늘 포함 7일
예측 범위
리드·권역별 예측 범위 · 오늘부터 표시(오프라인 검증 90.6%)
AI/ML
LR + RF + 보조 로지스틱
관계
—
MFDS 비브리오 예측시스템
운영 단위
해역 지점 (해수욕장·낚시터 등)
방식
4단계 정성 알림
기간
당일 + 3일 예보
예측 범위
없음
AI/ML
명시 없음
관계
보완 (관광지 vs 갯벌)
KDCA 감염병 누리집
운영 단위
시·군 단위
방식
사후 환자 집계
기간
사후 (예고 아님)
예측 범위
n/a
AI/ML
n/a
관계
보완 (사후 vs 사전)
NIFS 적조 속보
운영 단위
어장·해역
방식
정성 속보
기간
1일
예측 범위
없음
AI/ML
명시 없음
관계
보완 (적조 vs 비브리오)
KHOA 조위·조류 예보
운영 단위
관측소
방식
정량 예보
기간
단기
예측 범위
없음
AI/ML
결정론
관계
데이터 소스
안전해 앱 (해수부·KHOA)
운영 단위
해수욕장·갯벌 등 레저 지점
방식
시민 안전정보 조회
기간
실시간 조회
예측 범위
없음
AI/ML
없음
관계
보완 (시민 레저 vs 운영·근거)
학술 연구 (해외 비브리오 예측 모델)
운영 단위
연구용 격자
방식
기계학습 모델
기간
연구 시연
예측 범위
일부
AI/ML
있음
관계
모델 참고
| 시스템 | 운영 단위 | 예고 방식 | 예고 기간 | 예측 범위 | AI/ML | 운영 형태 | 관계 |
|---|---|---|---|---|---|---|---|
| ▶Halia | 이름 붙은 갯벌 70곳 | 0~100 정량 점수 | 오늘 포함 7일 | 리드·권역별 예측 범위 · 오늘부터 표시(오프라인 검증 90.6%) | LR + RF + 보조 로지스틱 | 매일 갱신되는 의사결정 지원 도구 | — |
| MFDS 비브리오 예측시스템 | 해역 지점 (해수욕장·낚시터 등) | 4단계 정성 알림 | 당일 + 3일 예보 | 없음 | 명시 없음 | 정보 제공 사이트 | 보완 (관광지 vs 갯벌) |
| KDCA 감염병 누리집 | 시·군 단위 | 사후 환자 집계 | 사후 (예고 아님) | n/a | n/a | 통계 공개 | 보완 (사후 vs 사전) |
| NIFS 적조 속보 | 어장·해역 | 정성 속보 | 1일 | 없음 | 명시 없음 | 알림 | 보완 (적조 vs 비브리오) |
| KHOA 조위·조류 예보 | 관측소 | 정량 예보 | 단기 | 없음 | 결정론 | 정보 제공 | 데이터 소스 |
| 안전해 앱 (해수부·KHOA) | 해수욕장·갯벌 등 레저 지점 | 시민 안전정보 조회 | 실시간 조회 | 없음 | 없음 | 시민 조회 앱 | 보완 (시민 레저 vs 운영·근거) |
| 학술 연구 (해외 비브리오 예측 모델) | 연구용 격자 | 기계학습 모델 | 연구 시연 | 일부 | 있음 | 운영 아님 | 모델 참고 |
B2
지나간 하루의 증거
매일 같은 표에 남깁니다
운영 서버가 알려주는 실시간 신선도, 지난 예고와 실제 결과를 짝지은 기록, 그날 갯벌 환경을 봉인한 아카이브 — 세 가지를 매일 같은 규칙으로 이어 붙입니다. 지나간 날짜의 환경은 다시 관측할 수 없어, 그날그날의 상태를 그대로 남겨 둡니다.
신선도를 불러오는 중…
기록을 불러오는 중…
환경 아카이브를 불러오는 중…
Fig. 10PANEL FALLBACK
B3
어디에서 돌아가나
자정마다 같은 순서로 돕니다
서울 리전 한 컨테이너 안에 자료 수집, 예고, 리포트 생성이 묶여 있습니다. 매일 자정 같은 순서로 실행되고, 중간에 실패해도 다시 시작할 수 있도록 설계해 두었습니다.
운영 위치
AWS 서울 리전 운영
- 리전
- ap-northeast-2 (서울)
- 인스턴스
- EC2 t3.small
- 스토리지
- EBS 20GB (/data 마운트)
- 컨테이너
- Docker Compose
- 리버스 프록시
- Caddy, HTTPS 자동 갱신
공공데이터 API가 국외 IP에서 막히는 경우가 있어 서울 리전을 표준 운영지로 사용합니다.
자동 갱신
매일 자정 자동 갱신
- 스케줄러
- supercronic (Docker 컨테이너 안에서 안정 동작)
- 갱신 시각
- 매일 00:00 KST
- 처리 흐름
- 데이터 수집, 모델 재학습, 7일 예고, 예측 범위 산출, DuckDB 일일 보관
갱신이 실패하면 어제 데이터를 그대로 유지하고 운영자에게 곧바로 알림이 갑니다.
부팅 처리
부팅할 때마다 안전한 스키마 갱신
- 스키마 부트스트랩
- bootstrap_schema 함수가 부팅 시 자동으로 실행됩니다.
- 동작 방식
- 빠진 컬럼이나 테이블을 안전하게 덧붙입니다 (DuckDB 1.x ADD COLUMN IF NOT EXISTS).
- 실패 처리
- 예외는 로그에만 남기고 서비스는 그대로 동작합니다. 부팅 단계에서 중단되지 않습니다.
운영 중에도 별도의 스키마 작업 없이 새 컬럼을 추가할 수 있습니다.
품질 점검
상시 품질 점검 API
- 예고 분포 살펴보기
- 예측 범위 포화 감지
- 시간 분산 점검
- 모델 드리프트 추적
이상이 감지되면 운영자에게 자동으로 알림이 갑니다.
실시간 신선도 현황은 데이터 신선도 섹션에서 바로 확인할 수 있습니다.
Fig. 11SERVING SURFACE · 112 ROUTES
Halia는 데이터 최신성 점검, 예고 결과 무결성 테스트, 알림과 리포트 생성까지 — 모델의 판단이 실제 현장 조치로 이어지도록 이 모든 과정을 하나의 흐름으로 잇습니다. 그리고 두 개의 공간 층을 나눠 운영합니다 — 갯벌 450곳은 예고와 근거가 묶이는 증거 층이고, 행정 읍면동 226곳은 담당자가 사건·알림·조치를 다루는 운영 층입니다. 갯벌 하나가 평균 1.9개 읍면동에 걸쳐 있어, 겹치는 면적 비율로 위험도를 읍면동에 배분합니다.
FastAPI routes
112
상태 확인부터 예고, 품질, 알림 상태, 리포트, 채팅, export까지 기능 흐름을 나눠 제공합니다.
Forecast window
0..6
오늘을 포함해 7일 흐름을 같은 규칙으로 조회하고, 지도·목록·상세 화면이 같은 예고 창을 씁니다.
동작 API
6
compare, what-if, alerts, report, chat, export가 예고 결과를 실제 판단 도구로 바꿉니다.
backend 01
위험도 조회
70개 갯벌의 오늘 위험도와 forecast_day 0..6 흐름을 같은 규칙으로 제공합니다. 상세 응답에는 7일 차트, SHAP top-3, 대응 권고, 인용 근거가 함께 들어갑니다.
지도, 갯벌 목록, 상세 패널, 시군 heatmap
/api/grids/api/grids/{id}/api/stats/api/heatmapbackend 02
근거·출처
출처별 행 수, 최신 관측일, 최신성, 신뢰 수준을 공개합니다. 하수처리시설 좌표는 시설 주소를 옮긴 값이고, 처리한 물이 바다로 나가는 지점의 좌표는 아직 없습니다. 좌표 출처 이력은 수동 반영, 보정 메모, 보류 항목을 분리해 계산에 들어간 근거와 아직 보류한 근거를 나눠 보여주며, 이 이력 원자료를 직접 조회하려면 권한이 필요합니다.
데이터 출처 화면, 하수 좌표 출처 이력 패널
/api/sources/status/api/publicdata/wastewater/provenance/api/grids/{id} -> registry_evidence/api/grids/{id} -> trust_evidencebackend 03
품질·검증
점수 포화, 시간 분산, 출처 최신성, 최근 day0 이력의 드리프트, 모델 대표 지표, 리드일별 예고 기술점수를 따로 봅니다. 예고값이 얼마나 높게 나오는지보다, 운영 중에 흔들리는지를 먼저 잡습니다.
모델 화면, 품질 배너, 드리프트 패널
/api/quality/api/model/drift/api/metrics/api/forecast/skillbackend 04
시나리오·후보지
수온·강수·염분·풍속을 바꿔 저장된 예고 모델 산출물로 재추론하고, 같은 70개 갯벌을 4개 정책 시나리오의 후보지 랭킹으로 다시 정렬합니다.
what-if 탭, 후보지 랭킹, 70 × 4 시나리오
/api/whatif/api/v3/status/api/v3/scenarios/api/v3/candidatesbackend 05
대응·보고
전일 대비 위험 단계 변화와 고위험 지속 상태를 잡아내고, 담당자 확인·조치·종료 상태를 기록합니다. 갯벌별 PDF 리포트를 만들며, 카카오 알림톡은 현재 실제 발송이 아니라 문안·경로만 점검하는 모의 발송으로 다룹니다.
알림 패널, PDF 보고서 버튼, 알림톡 미리보기
/api/alerts/api/alerts/{id}/ack/api/report/api/notify/kakaobackend 06
대화·내보내기
자연어 질문에는 인용이 붙은 답변을 돌려주고, 오늘·7일 예고·시군 통계를 CSV/XLSX로 내보냅니다. refresh는 무거운 재학습이 아니라 준비도와 출처별 행 수 스냅샷을 바로 확인하는 운영 버튼입니다.
AI 채팅, 데이터 다운로드, 준비 상태 점검
/api/chat/api/export/api/refresh/readyB4
어디까지 왔나
진행 중은 진행 중이라 적습니다
디지털서비스몰 등록, 혁신제품 지정, 보안 인증이 지금 어디까지 왔는지 그대로 적었습니다. 아직 받은 인증은 없고, 모두 검토·진행 단계입니다.
지금 확보된 공공조달 인증은 없습니다. 첫 PoC가 끝나면 운영 사례를 모아 단계별로 등록과 인증을 진행합니다.
디지털서비스몰 등록
검토신청확보공공기관이 SaaS를 별도의 입찰 없이 도입할 수 있도록, 디지털서비스 이용지원시스템에 서비스를 등록하는 절차입니다.
예상 시점
첫 PoC를 마친 뒤 1년 안에 등록하는 것을 목표로 검토하고 있습니다.
혁신제품 지정
검토신청확보조달청 혁신제품으로 지정되면 공공기관과 수의계약을 맺을 수 있는 자격을 얻습니다.
예상 시점
신청 시점을 검토 중입니다. 디지털서비스몰 등록 다음 단계로 계획하고 있습니다.
GS인증
검토신청확보TTA 소프트웨어 품질 인증을 통해 공공조달 가점과 신뢰 자료를 확보하는 절차입니다.
예상 시점
첫 PoC 운영 데이터를 확보한 뒤 신청을 검토하고 있습니다.
충남창조경제혁신센터 입주·연계
검토신청확보충남 지역 거점과 연계해 도청과 시군 접점을 넓힙니다.
예상 시점
신청과 연계를 검토 중이며, 사업 등록 시점에 정식으로 진행합니다.

Part CHONESTY & LIMITS
정직성과 경계
사실을 다루는 원칙과 한계, 개인정보 처리, 참고 문헌까지 — 우리가 아는 한계와 경계선부터 먼저 적습니다.
C1
원칙과 한계
아는 한계와 모르는 한계를 적습니다
데이터 누수는 외부 리뷰 지적으로 확인해 시계열 검증으로 옮겼고, 외부 기관의 추정값은 우리 결과와 분리해 표기합니다. 사실을 다루는 원칙을 먼저 적고, 이어서 아직 남은 한계를 그대로 나열합니다.
데이터 누수 감사와 전환
같은 갯벌의 미래 시점이 학습에 섞이면 성능이 부풀려집니다. 이 누수는 외부 리뷰(Codex)가 지적했고, Halia는 기록으로 남긴 뒤 미래 날짜를 통째로 분리하는 시계열 검증으로 전환했습니다. 그 과정과 결과는 감사 보고서로 보관하고 있습니다.
출처 신뢰도 분리
단순히 신선한지만 보는 것이 아니라, 데이터의 종류와 합성으로 보강한 비율, 실측 여부까지 나눠서 공개합니다. 질병관리청 전국 통계나 식약처 추정값을 Halia가 직접 측정한 것처럼 표시하지 않습니다.
빈 데이터에 추정값을 단언하지 않음
예를 들어 국립수산과학원 마비성패류독소 속보는 실제로 받아 씁니다. 다만 충남 정점이 드물어 70개 갯벌 셀 중 관측이 닿은 곳은 소수이고, 관측이 없는 곳은 '안전'이 아니라 '관측 없음'으로 표시합니다. 관측이 21일보다 오래되면 현재 값으로 내보내지 않습니다.
Fig. 12LIMITATIONS · KNOWN UNKNOWNS
현재 위험 라벨은 실제 비브리오 감염 보고가 아니라 환경 변수에서 파생한 대리 라벨(surrogate)입니다. 그래서 Halia의 점수는 '감염 예고'가 아니라 '환경 위험 지수'로 읽는 것이 정확하며, 높은 PR-AUC는 이 환경 위험 신호를 시간 순서를 지킨 검증에서 일관되게 재현했음을 보여 줍니다. 실측 감염 라벨과의 결합이 다음 검증 과제입니다.
KDCA 비브리오 환자 통계는 당일 관측이 아니라 주 단위 집계입니다. Halia 모델은 이 집계를 입력 신호로 씁니다.
이상기후·태풍·적조 폭발처럼 학습 데이터에 없던 사건은 모델이 잘 못 맞춥니다. 이런 사건은 예측 범위로도 안정적으로 잡지 못해, 점수의 절대값을 그대로 믿기 어렵습니다.
처음 시도한 회귀식 예측구간은 전체 커버리지 53.4%, 양성 구간 60.8%로 목표(90%)에 크게 못 미쳐 제품에서 내렸습니다. 이후 지난 예보가 실제로 벗어난 폭을 리드·권역별로 재는 방식으로 다시 설계해 오프라인 검증에서 대략 10번 중 9번(90.6%)을 확인하고 오늘부터 다시 표시합니다. 새 방식의 리드별 적중은 운영에서 앞으로 더 쌓입니다.
해양수산부 1:25,000 연안정보도는 충분히 정밀하지만, 시간에 따른 갯벌 변화(퇴적·침식)는 반영되지 않습니다.
현재 자료 수집과 예고 갱신은 매일 자정 스케줄로 한 번 돕니다. 실시간 경보가 필요한 상황은 앞으로 별도 연동이 필요합니다.
오늘 이후 예고 구간은 입력이 실측이 아니라 직전 값 유지·평년 기후값·합성으로 채워지는 변수가 있습니다. Halia는 변수마다 채움 방식을 기록해 어디까지가 실측인지 구분합니다.
Halia는 KHOA·KMA·KOEM·NIFS·KDCA·MFDS·NOSC 외부 API에 기대어 돌아갑니다. KMA 식중독지수의 V4 연계 창구가 폐지된 사례처럼 외부 API가 닫히면 해당 변수의 학습 신호가 영구히 끊어집니다. 폐지된 식중독지수를 대신할 지수는 없고, 기상청 자외선 지수는 받아 두기만 하며 아직 모델 입력으로는 쓰지 않습니다.
현재 복원·블루카본 후보지 비교는 공공데이터 대리지표를 기반으로 한 전략 레이어입니다. 실제 탄소 흡수량, 수문 복원성, 승인형 방류구, 토지·예산·주민 수용성 데이터는 아직 충분히 결합되지 않았으므로 최종 선정 모델로 해석하면 안 됩니다.
서비스 범위는 충남에서 시작해 서해안으로 넓히는 중입니다. 그런데 이 페이지에 공개한 검증 숫자는 국가 특보 대조든 자기일관성이든 전부 충남 해역에서 잰 값이고, 도를 새로 켠다고 그 지표가 따라오지는 않습니다. 새로 켠 곳의 성능은 그 지역 자료가 쌓인 뒤에 따로 재야 하며, 그때까지는 여기 숫자를 그 지역에 그대로 적용할 수 없습니다. 남해·동해·제주는 아직 범위 밖입니다.
C2
개인정보는 어떻게 다루나
개인정보는 방침 문서로 공개합니다
도입 문의·체험 신청 양식이 받는 항목, 이용 목적, 보관 기간, 처리 위탁과 국외 이전, 이용자 권리를 개인정보처리방침(별도 문서)에 정리했습니다.
개인정보처리방침 · 시행일 2026-07-23
양식으로 받은 정보는 이메일과 업무 메신저로만 전달하고, 사이트 자체 데이터베이스에는 저장하지 않습니다.
수집 항목·이용 목적·보관 기간(상담 종료 후 1년 내 파기)·위탁(Resend·Slack·Cloudflare)·이용자 권리를 개인정보처리방침(별도 문서)에서 확인하실 수 있습니다.
C3
무엇에 기대고 있나
참고 문헌 24건
모델 이론, 공공데이터, 기존 서비스, 복원·블루카본 연구, 정책 근거를 함께 묶어 정리한 참고문헌입니다.
- [1]Semenza, J. C., Trinanes, J. et al. (2017). Environmental Suitability of Vibrio Infections in a Warming Climate: An Early Warning System. Environmental Health Perspectives 125(10). doi:10.1289/EHP2198ECDC·NOAA 비브리오 조기경보 사례: Halia 7일 예고의 비교 기준
- [2]Stankevičiūtė, K. et al. (2021). Conformal Time-Series Forecasting. NeurIPS 2021.시계열 conformal 보정안: Halia 예측구간 설계 참조
- [3]Various (2025). A Gentle Introduction to Conformal Time Series Forecasting. arXiv:2511.13608. arXiv:2511.13608Conformal prediction과 time series forecasting의 결합 배경
- [4]Vovk, V., Gammerman, A., Shafer, G. (2005). Algorithmic Learning in a Random World. Springer.Conformal Prediction의 기본 이론
- [5]Breiman, L. (2001). Random Forests. Machine Learning, 45(1).Random Forest 앙상블의 기본 이론
- [6]Lundberg, S. M. and Lee, S.-I. (2017). A Unified Approach to Interpreting Model Predictions. NeurIPS. arXiv:1705.07874SHAP 기반 변수 기여도 설명의 기본 논문
- [7]Lee, J. et al. (2021). Korean coastal sediment organic carbon stocks and sequestration rates. Science of the Total Environment. source한국 갯벌 탄소 저장량과 흡수율 근거
- [8]Frontiers in Environmental Science (2024). Seas the opportunity: multi-criteria decision analysis to identify and prioritise blue carbon wetland restoration sites. Frontiers in Environmental Science. source복원 후보지 우선순위 산정에 MCDA를 쓰는 방법론 근거
- [9]Journal of Environmental Management (2024). A decision support tool to help identify blue carbon sites for restoration. Journal of Environmental Management. sourceGIS 기반 blue carbon restoration 기회지 탐색 근거
- [10]Science of the Total Environment (2024). Mapping tidal restrictions to support blue carbon restoration. Science of the Total Environment. source수문 연결성, 제방, tidal restriction을 복원 적합성 변수로 보는 근거
- [11]Marine and Freshwater Research (2022). Coastal wetland rehabilitation first-pass prioritisation for blue carbon and associated co-benefits. Marine and Freshwater Research. source탄소, 생물다양성, 수산, 수질 편익을 함께 보는 후보지 평가 근거
- [12]PLOS Climate (2025). A critical analysis of marine carbon sequestration opportunities in South Korea. PLOS Climate. source한국 해양 탄소흡수 기회와 갯벌 보전·복원 필요성 근거
- [13]
- [14]
- [15]
- [16]
- [17]
- [18]
- [19]
- [20]
- [21]
- [22]NOAA (n.d.). Vibrio Predictive Models. NOAA National Centers for Coastal Ocean Science. source국외 Vibrio 예측 서비스의 대표 비교 기준
- [23]ECDC (n.d.). Vibrio Map Viewer. European Centre for Disease Prevention and Control. source기후·해양 조건 기반 Vibrio suitability 지도 서비스 비교 기준
- [24]충청남도 (2025). 충남 디지털 갯벌 지도. Chungnam public data and project archive.가로림만 등 지역 단위 디지털 갯벌 기반 확장 근거
