제1장

제1장: 홍수의 과학과 조기경보 체계

홍수 예측의 가치는 그 예측이 만들어 내는 경보와, 경보가 이끌어 내는 행동으로 결정된다. 이 장은 책 전체의 물리적·제도적 토대를 놓는다. 홍수에는 어떤 유형이 있는지, 비가 어떻게 불어나는 강물이 되는지, 수위를 어떤 기준과 비교하는지, "극한"이라는 사건이 실제로 얼마나 드문지, 그리고 관측·예측·경보·대응이 어떻게 하나의 사슬로 이어지는지를 차례로 살핀다. 각 단계마다 그 개념을 소프트웨어로 옮겨 담는 WIA-ENE-033의 객체나 PHASE를 함께 짚는다.

1.1 홍수의 유형

"홍수"라는 한 단어 아래에는 성격이 전혀 다른 여러 물리 현상이 섞여 있다. 물이 어디서 오는지, 얼마나 빨리 들이닥치는지, 어떤 관측이 가장 먼저 신호를 주는지, 예보관이 현실적으로 얼마만큼의 경보 시간을 확보할 수 있는지가 모두 다르다. 따라서 여러 공급사의 시스템을 아우르는 홍수 예측 표준이라면 사건의 유형을 명시적으로 이름 붙여야 한다. 적합한 데이터 원천, 모델, 경보 문구가 모두 유형에 따라 달라지기 때문이다.

WIA-ENE-033은 경보 메시지의 사건 유형 필드로 이를 처리한다. PHASE-3 경보 스키마(§7.2)의 event.type 필드는 river-flood, urban-flood, coastal-flood, flash-flood의 네 값을 받는다. TypeScript 참조 SDK의 FloodEventType 열거형도 같은 네 값을 선언하지만, 명세 본문에는 없는 다섯 번째 값 dam-discharge를 추가로 갖고 있다. 이 불일치는 절 끝에서 다시 다루고, 먼저 네 가지 물리적 유형을 살펴본다.

1.1.1 하천 홍수

하천 홍수는 상류에서 내려오는 유량이 하도와 제방의 소통 능력을 넘어서, 물이 홍수터로 넘치거나 제방을 월류할 때 발생한다. 원인은 대개 유역 전반에 걸친 장시간·광역 강우이며, 때로는 융설이나 저수지 방류가 겹친다. 물이 하천망을 따라 이동한 뒤에야 특정 도시에 도달하므로, 큰 하천은 모든 홍수 유형 가운데 가장 긴 자연적 경보 시간을 준다. 상류 관측소에서 확인한 첨두를 하류로 추적하면 도달 수 시간에서 수일 전에 대비할 수 있다. 주된 데이터 원천은 하천 수위 관측소, 상류 유역 강우, 그리고 댐이 있다면 댐 운영 자료다.

1.1.2 도시 홍수(내수 침수)

국내 실무에서 내수 침수라 부르는 도시 홍수는, 국지적 집중호우가 배수 체계의 처리 속도보다 빠르게 내릴 때 발생한다. 하수관로가 역류하고 빗물펌프장이 한계에 이르며, 지하차도·지하 공간·저지대 도로에 물이 고인다. 인근 하천은 아직 제방 안에서 충분히 여유가 있는 상태에서도 일어난다는 점이 특징이다. 중요한 변형으로, 하천 수위가 높아 우수관이 하천으로 물을 내보내지 못하면 두 홍수 유형이 서로 얽힌다. 결정적인 관측은 우량계와 레이더로 얻는 단시간 강우 강도, 그리고 펌프 용량·관로 부하·저류지 수위 같은 배수 시설의 상태다. 경보 시간은 짧아서 대개 수 분에서 몇 시간 단위다.

1.1.3 해안 홍수

해안 홍수는 비가 아니라 바다에서 비롯된다. 강한 향안풍과 저기압이 밀어 올린 폭풍해일이 천문조와 파랑에 겹쳐 해안으로 밀려든다. 하구와 감조 구간은 해안 홍수와 하천 홍수가 만나는 곳으로, 높아진 해수면이 하천의 유출을 늦추기 때문이다. 주요 입력은 조석 예보, 조위 관측, 바람과 기압의 기상 예보다. ENE-033 v1.0은 coastal-flood 사건 유형을 포함하지만, 릴리스 노트는 해안 침수를 제대로 예측하는 데 필요한 폭풍해일 결합 모델링을 v1.1 로드맵 항목으로 명시한다. 즉 v1.0에서도 해안 사건을 분류하고 경보할 수는 있으나, 해일 모델이 예측에 어떻게 입력되는지는 아직 표준이 정의하지 않는다.

1.1.4 돌발 홍수

돌발 홍수는 작고 가파르거나 도시화된 유역에서 원인 강우 후 몇 시간 안에 — 흔히 여섯 시간 이내로 정의된다 — 물이 급격히 불어나는 현상이다. 산지 계류, 평소 마른 하도, 도시의 소하천이 전형적인 무대다. 물살이 빠르고 부유물을 동반하는 경우가 많으며, 비와 첨두 사이의 시간이 짧다는 바로 그 점 때문에 위험하다. 예측은 먼 상류에서 홍수파를 추적하는 방식보다 레이더 기반 초단기 강우 예측, 토양 수분 상태, 소유역별 임계 강우 지침에 의존한다.

홍수 유형 전형적 발생 속도 주된 데이터 원천 ENE-033 값
하천 홍수 수 시간~수일, 유역이 클수록 길다 하천 수위 관측소, 유역 강우, 댐 운영 river-flood
도시 홍수(내수) 수 분~몇 시간 우량계·레이더 강우 강도, 배수·펌프 상태 urban-flood
해안 홍수 수 시간, 조석 주기와 태풍 경로에 좌우 조석 예보, 조위 관측, 바람·기압 예보 coastal-flood (해일 결합은 v1.1 예정)
돌발 홍수 강우 후 몇 시간 이내(흔히 6시간 미만) 레이더 초단기 예측, 토양 포화도, 소유역 임계값 flash-flood
명세와 SDK의 차이: 다섯 번째 사건 유형

SDK의 FloodEventType 열거형에는 DAM_DISCHARGE = 'dam-discharge'도 들어 있다. 계획 방류든 비상 방류든 저수지 방류는 하류 주민에게 실재하는 중대한 위험이지만, 물리적으로는 하천 홍수를 일으키며 PHASE-3 스키마의 event.type은 dam-discharge를 허용하지 않는다. 명세와 SDK가 정렬되기 전까지 엄격한 구현은 river-flood를 보내고, 방류 사실은 행동 요령 문구와 contributingFactors.damStatus 데이터로 설명하는 편이 옳다. 스키마를 검증하는 수신 측이 거부할 수 있는 값을 내보내지 않기 위해서다.

1.2 강우에서 유출, 그리고 수위 관측소까지

어떤 모델을 쓰든 모든 홍수 예측은 하나의 인과 질문에 답하려 한다. 이미 내린 비와 앞으로 내릴 비를 감안할 때, 특정 지점을 얼마만큼의 물이 언제 지나가는가. 이 인과 사슬의 단계를 이해하면 표준의 데이터 객체가 무엇을 담는지, 그리고 예측 선행 시간에 왜 넘을 수 없는 한계가 있는지를 함께 알 수 있다.

1.2.1 우량주상도: 시계열로서의 비

수문학자는 호우를 우량주상도(hyetograph), 곧 시간에 따른 강우 강도 그래프로 기술한다. 총량이 같은 두 호우도 결과는 크게 다를 수 있다. 하루에 고르게 나뉜 100 mm는 두 시간에 집중된 100 mm보다 훨씬 쉽게 흡수되고 배수된다. ENE-033의 PrecipitationData가 시간당 밀리미터 단위의 현재 강도(observed.current)와 1·3·6·24시간 누적량(last1h~last24h), 그리고 시간별 예측 배열을 함께 담는 이유가 여기에 있다. 강도는 우량주상도의 모양을, 누적량은 그 부피를 나타낸다. 이 필드들은 제2장에서 자세히 다룬다.

1.2.2 유출 생성과 토양 포화도

내린 비가 모두 하천 유량이 되지는 않는다. 일부는 식생에 차단되고, 일부는 토양으로 침투하며, 일부는 지표 요지에 저류되거나 증발한다. 나머지가 지표면이나 얕은 토층을 따라 하천으로 흘러간다. 그 나머지가 얼마인지는 유역의 선행 조건에 크게 좌우된다. 마른 토양은 호우의 상당 부분을 흡수하지만, 앞선 비로 이미 포화된 토양에 같은 비가 내리면 물이 갈 곳이 없어 유출이 훨씬 커진다. 도로와 지붕 같은 불투수면은 늘 포화된 토양처럼 행동하며, 도시 유역이 빠르게 반응하는 이유 중 하나다.

ENE-033은 PHASE-1 §5.2의 예측 결과에 선택 필드 contributingFactors.soilSaturation(백분율)을 두어 이를 담는다. 많은 운영 기관이 토양 수분을 직접 관측하지 않고 최근 강우로부터 추정하기 때문에 선택 항목으로 정의되었다. 값이 주어진다면 모델이 받을 수 있는 가장 유익한 예측 인자 가운데 하나다. 앞으로 내릴 1 mm의 비가 얼마의 유량으로 바뀔지를 이 값이 조절하기 때문이다.

1.2.3 관측소까지의 하도 추적

사면에서 생긴 유출은 지류로, 다시 본류로 모여 홍수파가 되어 하류로 이동한다. 이동하는 동안 홍수파는 지체되고 대개 납작해진다. 하도와 홍수터가 물을 일시적으로 저류하기 때문에, 전체 부피가 한 덩어리로 움직일 때보다 첨두가 늦게, 낮게 도달한다. 이 이동을 계산하는 일을 홍수 추적(flood routing)이라 한다. 간단한 방법은 각 하도 구간을 저류 요소로 다루고, 수리학적 방법은 하도를 따라 1차원 Saint-Venant 방정식을 푼다. 표준의 PHASE-3은 1D 하천 모델로 Saint-Venant 방식을 명시하며, 방정식 자체는 제5장에서 설명한다. 이 장에서 붙잡을 요점은 정성적인 것이다. 유역에 비가 떨어진 뒤 첨두가 관측소를 지나기까지의 시간은 유역 면적, 경사, 토지 피복, 하도 형상, 선행 습윤 상태가 결정한다.

1.2.4 선행 시간이 유역 반응 시간에 묶이는 이유

수문학에서는 유역이 얼마나 빨리 반응하는지를 지체 시간(lag time, 강우 중심에서 첨두 유량까지)과 도달 시간(time of concentration, 유역의 가장 먼 지점에서 출구까지 물이 이동하는 시간) 같은 용어로 나타낸다. 관측된 비만으로 예측을 한다면, 이 값들이 경보 시간의 자연적 상한이 된다. 두 시간 안에 반응하는 유역이라면, 이미 땅에 떨어진 비에 근거한 예측은 모델이 아무리 좋아도 최대 두 시간 남짓의 경보밖에 줄 수 없다.

유역 반응 시간 너머로 선행 시간을 늘리는 길은 둘뿐이다. 첫째는 더 상류에서 관측해 홍수파를 이동 경로의 이른 지점에서 포착하는 것이다. 큰 하천 체계가 긴 선행 시간을 확보하는 이유다. 둘째는 비 자체를 예측하는 것이다. 한두 시간 앞은 레이더 외삽으로, 그보다 긴 범위는 수치 예보 모델로 예측한다. 예측 강우는 관측 강우보다 훨씬 불확실하므로, 이렇게 얻은 선행 시간 한 시간 한 시간은 더 큰 불확실성이라는 대가를 치른다. ENE-033 README의 예측 범위 구분이 바로 이 절충을 반영한다. 단기(1~6시간)는 실시간 강우 레이더, 중기(6~24시간)는 수치 기상 모델과 AI의 결합, 장기(24~72시간)는 앙상블 기상 예측에 기반한다. 예측 요청의 timeHorizon 필드(1h, 6h, 24h, 72h)는 클라이언트가 이 절충 곡선 위 어느 지점을 택할지 정하는 수단이다.

1.3 수위·유량과 기준 수위

운영 현장의 홍수 경보는 결국 하나의 비교다. 지금의 수위, 또는 곧 도달할 수위가 피해가 시작되는 수위를 넘는가. 이 비교를 하려면 무엇을 측정하고 무엇과 비교하는지가 명확히 정의되어야 한다.

1.3.1 수위와 유량

수위(stage)는 관측소 지점의 수면 높이로, 기준면으로부터의 미터 값이다. 유량(discharge)은 단위 시간당 관측 지점을 지나는 물의 부피로, 초당 세제곱미터(m³/s)로 나타낸다. 수위는 압력식·부자식·레이더식·초음파식 센서로 저렴하게 연속 측정할 수 있다. 유량은 수문 모델이 계산하는 양이자 하류가 감당해야 할 물의 양을 정하는 값이지만, 직접 측정하기는 비싸다. 현장 조사팀이 유속계나 음향 도플러 유속 측정기 등으로 단면의 유속 분포를 재고 통수 단면적에 대해 적분해야 한다.

ENE-033은 RiverLevelData.current에 이 둘을 모두 기록한다. 미터 단위 waterLevel, m³/s 단위 flowRate, 대표 유속 velocity(m/s), 그리고 관측 시각이다. 수신 측은 이 세 값이 서로 독립된 측정값이라고 가정해서는 안 된다. 대부분의 관측소에서 유량은 수위로부터 산정된 값이다.

1.3.2 수위-유량 관계곡선

관측소에서 수위와 유량을 잇는 것은 수위-유량 관계곡선(rating curve)이다. 이따금 수행하는 수위·유량 동시 측정 자료에 관계식을 맞추어 만든다. 널리 쓰이는 형태는 거듭제곱식 Q = a (h − h0)b로, h는 수위, h0는 흐름이 멈추는 수위, a와 b는 적합 계수다. 관계곡선은 지점마다 다르고 시간에 따라 변한다. 세굴과 퇴적이 하도를 바꾸고, 식생이 조도를 바꾸며, 수위가 급격히 오르내리는 홍수 중에는 같은 수위가 서로 다른 유량에 대응하기도 한다(이력 현상, 이른바 루프 레이팅). 하류 합류부·조석·댐에 의한 배수 영향도 관계를 깨뜨린다. 실무상 두 가지 결론이 따른다. 극한 수위에서의 유량은 측정 범위를 넘어선 외삽인 경우가 많고, 교환되는 유량 값의 품질은 그 값을 계산한 관계곡선의 품질을 넘지 못한다.

1.3.3 기준 수위의 사다리

운영 기관은 수위 값을 즉시 해석할 수 있도록 관측소마다 일련의 기준 수위를 정해 둔다. ENE-033은 이를 RiverLevelData의 levels 객체에 미터 단위 다섯 값으로 담는다. normal, attention, warning, danger, bankHeight다. 앞의 넷은 운영 기관이 정한, 우려의 정도가 점점 높아지는 임계값이다. bankHeight는 물리적 속성, 곧 제방이나 하안의 마루 높이로서 이를 넘으면 물이 하도를 벗어난다. 짝을 이루는 status.condition 필드는 현재 수위가 네 임계값 중 어느 구간에 있는지(normal, attention, warning, danger)를 알려 주고, status.overflowRisk와 status.estimatedTimeToOverflow는 하천이 제방 마루에 얼마나 가까운지를 나타낸다.

아래 조각은 기준 수위 사다리의 예시다. 숫자는 설명을 위한 예시일 뿐 실제 관측소 값이 아니다. 관측소마다 하도 측량, 홍수 이력, 지역의 결정에 따라 고유한 사다리를 갖는다.

"levels": {
  "normal": 2.0,
  "attention": 3.5,
  "warning": 4.5,
  "danger": 5.0,
  "bankHeight": 6.2
}

모든 사다리가 지켜야 할, 검증 코드에서 확인해 볼 만한 성질이 두 가지 있다. 네 기준 수위는 엄격히 증가해야 하고(normal < attention < warning < danger), 어느 것도 bankHeight를 넘어서는 안 된다. danger 수위가 제방 마루보다 높은 사다리는 거의 틀림없이 입력 오류나 기준면 오류다. 또한 사다리는 수위 관측값과 같은 연직 기준면에서만 의미가 있다. 이 문제는 제2장의 데이터 품질 절에서 다룬다.

1.4 재현 주기와 극한 강우

홍수와 극한 강우는 얼마나 드문가로 기술된다. "100년 빈도 홍수" 같은 표현은 공학 설계와 대국민 소통에서 흔히 쓰이지만 자주 오해된다. ENE-033의 PrecipitationData.statistics 객체는 연 단위 returnPeriod, percentile, 불리언 isExtreme을 담으므로, 구현자는 이 용어들을 정확하게 써야 한다.

1.4.1 정의

어떤 규모의 사건이 갖는 재현 주기 T는 그 사건의 연 초과 확률의 역수다. 재현 주기 100년인 사건은 어느 한 해에 그 규모에 도달하거나 넘어설 확률이 1/T = 1/100 = 1 %다. 이는 백 년에 한 번 반드시 일어난다는 뜻도, 한 번 일어나면 다음은 한 세기 뒤라는 뜻도 아니다. 1차 근사로 보면 해마다 같은 작은 확률을 가진 독립적인 추첨이 이루어지는 셈이다.

재현 주기는 연 최대치(또는 임계값 초과 첨두) 기록에 통계 분포를 적합한 뒤, 선택한 T에 해당하는 규모를 읽어 추정한다. 강우는 지속 시간별로 따로 추정하며, 강도-지속시간-빈도(IDF) 관계가 존재하는 이유가 이것이다. 누적 50 mm는 24시간 기준으로는 평범해도 1시간 기준으로는 이례적일 수 있다. 따라서 ENE-033의 returnPeriod 값은 그것이 가리키는 지속 시간과 함께여야만 해석할 수 있으며, 구현은 어떤 누적 구간을 평가하는지 문서에 밝혀야 한다.

1.4.2 여러 해에 걸친 위험

계획 수립에 더 쓸모 있는 질문은, n년의 기간 — 예를 들어 건물의 수명이나 방재 시설의 운용 기간 — 동안 그런 사건을 적어도 한 번 겪을 확률이다. 해마다 초과 확률이 1/T이고 각 해가 독립이라면, n년 동안 한 번도 초과하지 않을 확률은 (1 − 1/T)n이므로 다음이 성립한다.

P(n년 동안 적어도 한 번 발생) = 1 − (1 − 1/T)^n

계산 예시: T = 100년, n = 30년이면 (1 − 0.01)30 = 0.9930 ≈ 0.740이므로, 30년 안에 100년 빈도 사건을 적어도 한 번 겪을 확률은 1 − 0.740 = 0.26, 곧 약 26 %다. 100년으로 늘리면 같은 식이 1 − 0.99100 ≈ 0.63을 준다. 한 세기 전체를 놓고 보아도 "100년 빈도" 사건은 일어날 가능성이 더 높을 뿐 확실하지는 않다. 아래의 짧은 함수는 이 수치를 재현하며, 예측 보고서에 주석을 다는 데 쓸 수 있다.

function probabilityAtLeastOnce(returnPeriodYears: number, years: number): number {
  if (returnPeriodYears <= 1) throw new Error('재현 주기는 1년보다 커야 한다');
  return 1 - Math.pow(1 - 1 / returnPeriodYears, years);
}

probabilityAtLeastOnce(100, 30);   // ≈ 0.26
probabilityAtLeastOnce(100, 100);  // ≈ 0.63

1.4.3 ENE-033 통계 필드와의 대응

PrecipitationData.statistics의 세 필드는 각기 다른 질문에 답한다. returnPeriod는 "이 규모는 몇 년에 한 번꼴로 드문가"에 답한다. percentile은 "과거 기록 안에서 어디에 위치하는가"에 답한다. 1시간 강우의 99백분위수는 기준 기록의 시간별 값 가운데 1 %만이 넘는 값인데, 이는 100년 빈도 사건과 같지 않다. 백분위수는 연 최대치가 아니라 모든 시간 값에 대해 계산되기 때문이다. isExtreme은 명세가 임계값을 정하지 않은 불리언 플래그로, 대시보드와 경보 규칙을 위한 편의 필드다. 운영자는 이 플래그의 판정 규칙(예를 들어 "1시간 누적 강우의 재현 주기가 50년 이상이면 isExtreme을 true로 한다")을 공개해 수신 측이 일관되게 해석할 수 있게 해야 한다. 이 임계값은 설명을 위한 예시일 뿐이다.

세 필드 모두에 적용되는 주의 사항이 하나 있다. 과거 기록으로 추정한 재현 주기는 그 기록을 만든 기후가 미래에도 그대로 유지된다고 가정한다. 극한 강우의 양상이 변하는 곳에서는 정상성을 가정한 추정이 현재의 위험을 과소평가할 수 있다. 비정상성 재현 주기와 그것이 이 필드에 갖는 의미는 제8장에서 다시 다룬다.

1.5 예보에서 경보까지의 가치 사슬

기술적으로 아무리 뛰어난 예측도 아무도 받지 못하고, 이해하지 못하고, 행동으로 옮기지 않는다면 한 사람도 구하지 못한다. 재난이 되풀이될 때마다 확인된 이 교훈 때문에 국제 사회는 조기경보를 예측 문제만이 아니라 처음부터 끝까지 이어진 종단 간(end-to-end) 체계로 본다. 세계기상기구(WMO)와 협력 기관들은 효과적인 다중 재해 조기경보 체계를 서로 연결된 네 요소로 설명한다. 재난 위험에 대한 지식, 탐지·관측·감시·분석·예측, 경보의 전파와 소통, 그리고 대비와 대응 역량이다. 어느 하나라도 약하면 사슬이 끊긴다.

유엔 회원국이 채택한 「센다이 재난위험경감 강령 2015–2030」은 일곱 개의 전 지구적 목표를 둔다. 그 가운데 목표 G는 2030년까지 다중 재해 조기경보 체계와 재난 위험 정보·평가의 가용성과 접근성을 크게 높이는 것이다. ENE-033 PHASE-4는 센다이 강령을 참조 문헌에 올리고, 센다이 보고를 규제 대응 매핑(crosswalk)의 하나로 명시한다. 이는 조기경보 보급 현황에 대한 국가 보고가 이루어지는 정책 맥락 안에 표준을 자리매김하는 것이지, ENE-033 자체가 센다이 강령의 일부라는 뜻은 아니다.

1.5.1 ENE-033 PHASE로 표시한 가치 사슬

아래 도식은 하나의 홍수 사건을 관측·예측·경보·대응의 운영 사슬을 따라 추적하고, 각 구간을 ENE-033의 어느 부분이 규율하는지 표시한다. 기준 수위, 재현 주기 통계, 대피소 목록 같은 위험 지식이 네 단계 모두의 바닥에 깔린 토대다.

  관측(OBSERVE)           예측(FORECAST)            경보(WARN)               대응(RESPOND)
┌──────────────┐     ┌───────────────────┐     ┌──────────────────┐     ┌───────────────────┐
│ 우량계, 레이더│     │ 예측 노드         │     │ 경보 발행자      │     │ 지자체,           │
│ 수위 관측소, │ ──▶ │ 1D/2D 수리 모델,  │ ──▶ │ AlertCriteria,   │ ──▶ │ 대응 인력,        │
│ 댐, 배수 시설│     │ AI, 앙상블        │     │ FloodAlert,      │     │ 주민,             │
│              │     │                   │     │ CAP 1.2 피드     │     │ 대피소·대피 경로  │
└──────────────┘     └───────────────────┘     └──────────────────┘     └───────────────────┘
 PHASE-1 객체         PHASE-3 §6 모델           PHASE-3 §7 발령 기준,    PHASE-2 대피 경로·
 (Precipitation,      PHASE-1 FloodPrediction-  메시지 구조·전달 채널;   대피소,
 RiverLevel, Dam,     Result; PHASE-2           PHASE-2 warningPublish   PHASE-4 보고·증거
 Drainage);           forecastQuery,            (CAP 1.2 필수)
 PHASE-2 gaugeIngest  simulationSubmit
 ─────────────────────────────────────────────────────────────────────────────────────────
 위험 지식: 기준 수위, 재현 주기, 대피소 목록, 노출 데이터

이 사슬의 두 가지 특성이 표준 전체의 모양을 결정한다. 첫째, 각 구간은 기술적 경계만큼이나 자주 조직의 경계를 넘는다. 관측소는 수자원 기관의 것이고, 예측은 유역 관리 기관이, 경보 결정은 재난 관리 부서가, 대응은 지자체가 맡을 수 있다. 상호운용 가능한 메시지가 있어야 이 조직들이 맞춤형 연동 없이 협력할 수 있으며, PHASE-2가 경보 발행 오퍼레이션에 WIA 고유 형식과 함께 CAP 1.2 출력을 의무화한 이유도 여기에 있다. 둘째, 사슬에는 순수한 계산으로 끝나지 않는 결정이 들어 있다. PHASE-3의 경보 발령 기준은 자동 발령이 가능한 조건과, 불확실성이 크거나 핵심 기반시설이 위협받는 경우처럼 수동 검토가 필요한 조건을 구분한다. 그 규칙은 제5장에서 살펴보며, 지금 기억할 원칙은 표준이 경보에 대한 사람의 권한을 대체하는 것이 아니라 뒷받침한다는 점이다.

1.5.2 구간별로 "좋다"의 의미

사슬의 각 고리에는 저마다의 품질 척도가 있다. 관측은 관측망의 범위, 지연, 데이터 품질로 평가한다. 예측은 기량(skill)과 선행 시간, 곧 올바른 예측이 얼마나 일찍 나오는지로 평가한다. 경보는 적시성, 도달 범위, 명료성으로 평가한다. 알맞은 사람이 이해할 수 있는 메시지를 행동할 시간 여유를 두고 받았는가의 문제다. 대응은 사람들이 실제로 무엇을 했는지로 평가한다. ENE-033은 이 가운데 여러 척도를 위한 데이터 구조를 제공한다. AlertDistribution.status의 발송·전달·실패·확인 집계, 선행 시간과 허위 경보율을 포함한 모델 성능 필드 등이다. 명세와 README는 일부 척도에 수치 설계 목표도 제시하는데, 이는 목표일 뿐 측정된 결과가 아니며 제7장에서 그에 맞게 다룬다.

1.6 한국의 운영 맥락

국내에 ENE-033을 도입하는 독자는 곧바로 용어 문제에 부딪힌다. 같은 한국어 단어를 서로 다른 기관이 서로 다른 뜻으로 쓰기 때문이다. 잘못된 용어를 쓴 경보는 대중이 오독하거나 공식 발표와 충돌할 수 있으므로, 이 용어들을 분리해 두는 일이 필수적이다.

1.6.1 공식 홍수 예보: 홍수특보

국내에서 하천 홍수에 대한 공식 예보·경보인 홍수특보 — 홍수주의보와 홍수경보 — 는 주요 수계를 관할하는 홍수통제소가 발령한다. 홍수특보는 지정된 예보 지점과 그 기준 수위에 결부된 수문학적 산출물이며, 법적·제도적 무게를 지닌다. 어떤 시스템이든 자기 출력에 붙일 수 있는 일반 명칭이 아니다.

1.6.2 국가 위기경보 단계

이와 별개로, 「재난 및 안전관리 기본법」에 따른 국가 재난관리 체계는 관심·주의·경계·심각의 네 단계 위기경보를 쓴다. 위기경보는 재난 상황에 대한 정부의 전반적 대응 태세를 나타내며 대응 조직의 가동을 이끈다. 홍수만이 아니라 여러 재해에 공통으로 적용된다.

1.6.3 ENE-033 위험 단계

ENE-033은 LEVEL-0부터 LEVEL-4까지 다섯 위험 단계를 정의한다. SDK의 formatRiskLevel 도우미는 이를 한국어로 정상·관심·주의·경계·심각, 영어로 Normal·Attention·Caution·Warning·Severe로 표시한다. 따라서 1~4단계는 국가 위기경보 단계와 한국어 명칭이 같고, 주의와 경계라는 단계명은 홍수 예보 용어 안의 단어와도 닮았다.

단어가 같다고 정의가 같은 것은 아니다. ENE-033의 LEVEL-3은 특정 예측 시스템이 특정 지역과 예측 시간 범위에 대해 내놓은 출력이다. 국가 위기경보 경계 단계의 선포도 아니고, 홍수경보도 아니다. 반대로 어떤 예보 지점에 홍수주의보가 발령되었다고 해서, 몇 킬로미터 떨어진 동네에 어느 ENE-033 단계가 적용되는지가 자동으로 정해지지도 않는다. 이 책은 두 가지 규칙을 채택하며 구현자에게도 권장한다.

용어 체계 발령 주체 나타내는 것 ENE-033과의 관계
홍수특보(홍수주의보·홍수경보) 홍수통제소 지정 예보 지점의 공식 하천 홍수 주의보·경보 외부 입력 또는 참고 정보. ENE-033 출력의 명칭으로 쓰지 않음
위기경보 관심·주의·경계·심각 정부 재난관리 당국 여러 재해에 걸친 국가·지역 단위 위기 대응 태세 문서화된 대응표로 연결. 같은 단어, 다른 의미
ENE-033 LEVEL-0~LEVEL-4 ENE-033 예측 시스템 운영자 특정 지역·예측 시간 범위의 홍수 위험 예측 고유 RiskLevel 열거형, 표시명은 formatRiskLevel
관측소 기준 수위 관측소 운영자·하천 관리 기관 한 관측소의 수위 임계값 RiverLevelData.levels와 status.condition

마지막 행에는 미묘한 점이 하나 더 있다. levels의 기준 수위 이름(attention, warning, danger)은 위험 단계의 영어 표시명(Attention, Caution, Warning, Severe)과 일대일로 맞지 않으며, README의 단계 표는 위험 단계를 기준 수위에 연결하면서 필드 이름과 한 단계씩 어긋나 있다. 그 경우의 명시적 대응 규칙은 제3장에서 제시한다. 여기서는 적어도 네 가지 용어 체계가 함께 쓰이고 있고, 각각의 소관 기관과 정의를 문서로 남겨야 한다는 점만 확인해 두면 충분하다.

1.7 WIA-ENE-033 한눈에 보기

WIA-ENE-033은 홍수 예측과 조기경보를 위한 WIA 표준이다. ISO·IEC·WMO 표준이 아니며, 이들 기구와 OGC·OASIS·IETF의 기존 성과를 참조해 관측·예측·경보를 교환하는 데 필요한 조각들이 어떻게 맞물리는지를 정의한다. v1.0은 Stable로 표시되어 있고, 상위 명세의 절들을 통합한 네 개의 PHASE 문서로 구성된다.

PHASE 주제 주요 내용 주요 외부 참조
PHASE-1 데이터 포맷 예측 요청·결과, 강수량·하천 수위·댐/저수지·배수 시설 데이터. JSON Schema 2020-12로 표현 WMO HOMS, OGC WaterML 2.0, ISO 19156:2023, OpenAPI 3.1
PHASE-2 API 인터페이스 오퍼레이션 그룹 gaugeIngest, forecastQuery, warningPublish, simulationSubmit, evacuationRoute. /.well-known/wia/ene-033 디스커버리. 경보의 CAP 1.2 출력 RFC 8615, RFC 9457, RFC 6585, OASIS CAP 1.2
PHASE-3 프로토콜 관측망 → 예측 노드 → 경보 발행자 → 하류 수신자. AI·1D/2D 수리·앙상블 예측. 경보 발령 기준, 메시지 구조, 전달 채널 WMO HOMS, OGC WaterML 2.0, OASIS CAP 1.2, ISO 22315:2014
PHASE-4 통합 보안·개인정보, 통합 패턴, 인증 수준과 증거 패키지, 센다이 보고를 포함한 규제 대응 매핑 ISO/IEC 27001:2022, ISO/IEC 27018:2019, CycloneDX 1.5, Sigstore, 센다이 강령

PHASE 문서와 함께 저장소에는 TypeScript 참조 SDK(데이터 모델의 types.ts, 클라이언트와 도우미 함수의 index.ts), 셸 기반 명령행 도구, 대화형 시뮬레이터가 들어 있다. SDK와 명세 본문이 다를 때 — 1.1절의 다섯 번째 사건 유형이 첫 사례다 — 이 책은 그 차이를 짚고, 구현의 상호운용성을 지키는 동작을 권고한다. 기계 판독용 OpenAPI 기술서나 공개 시험 벡터 디렉터리처럼 PHASE 문서가 참조하는 산출물 가운데 일부는 아직 저장소에 없으며, 뒤의 장들에서 필요한 곳마다 이를 밝힌다.

원천 자료에는 같은 버전에 두 개의 발행일이 나온다. README의 변경 이력은 1.0.0에 2025년 날짜를, 릴리스 노트는 2026년 발행일을 적고 있다. 이 책은 단순히 "v1.0(Stable)"이라고 부른다.

1.7.1 이 책을 읽는 길

각 장은 1.5절의 사슬을 따라 데이터에서 결정, 그리고 배포로 나아간다.

데이터 파이프라인을 만드는 독자는 이 장에서 곧장 제2장으로, 경보나 대국민 소통 시스템을 만드는 독자는 제3장으로 넘어가도 좋다. 아키텍트와 감사자에게는 제6장과 제7장이 가장 요긴할 것이다. 어떤 경로를 택하든 이 장의 물리적 개념 — 홍수 유형, 유역 반응, 수위-유량 관계곡선, 기준 수위 사다리, 재현 주기 — 은 뒤에 나오는 모든 데이터 필드를 읽는 배경이 된다.

요약