재난문자와 기상특보는 서로 다른 화면과 API에 흩어져 있습니다. 둘을 시간순 브리프로 묶을 때는 문자 묶음을 그대로 AI에게 넘겨 요약부터 받는 실수가 가장 흔합니다. 그러면 이미 해제된 특보가 지금의 위험처럼 섞일 수 있습니다.
이 안내서는 브리프 기준 시각을 먼저 정하고, 특보의 발표·발효·해제 시각을 대조한 판정표를 만든 뒤, 그 표를 근거로 초안을 받는 순서를 다룹니다. 결과는 공식 브리프가 아니라 내부 검토용 초안입니다.
- 특보의 발표·발효·해제 시각과 문자 발송 시각을 같은 기준으로 맞춰 비교할 수 있습니다.
- 브리프 기준 시각에 특보가 발효 중인지, 해제 기록이 없는지를 구분할 수 있습니다.
- 판정표와 AI가 쓴 브리프 초안을 구분하고 문장마다 근거를 추적할 수 있습니다.
- 재난문자·특보 원자료를 얻는 곳과 이용 조건을 확인할 수 있습니다.
AI에게 맡기는 프롬프트
교대 전에 관할 재난문자와 기상특보를 묶어 브리프 초안을 만들 때, 코드 실행이 되는 AI(파일 분석 기능이나 코딩 에이전트)에 두 파일을 붙여 씁니다. 공개된 재난문자·특보만 붙이고, 출동 기록이나 신고 내용처럼 실제 신고자 정보가 들어갈 수 있는 자료는 함께 넣지 않습니다.
[목적] 교대 브리프용 내부 검토 초안을 만듭니다. 기준 시각은 (예: 10월 26일 07:00, 한국 시각)입니다. [자료] 붙임 파일 - messages.csv: 재난문자(message_id, sent_at, region, disaster_type, 전달문) - alerts.csv: 기상특보(alert_id, region, alert_type, announced_at, effective_at, lifted_at) 두 파일에는 공개된 재난문자·특보만 있고, 실제 사건 번호·신고자 정보·내부 대응계획은 없습니다. 재난문자와 특보의 맥락은 https://119-ai-studio.kr/kg/topic-alerts-warnings.txt 에서 먼저 파악하고, 근거는 원문 주소와 함께 정리해 주세요. [작업 순서] 1. 코드를 실행해 모든 시각을 날짜·시간대까지 같은 형식으로 바꿉니다. 2. 문자마다 같은 지역 특보의 상태를 발송 시각 기준과 기준 시각 기준으로 각각 판정합니다. 상태는 발효 시각 미상, 발효 전, 발효 중, 해제됨, 해제 미확인 다섯 가지만 씁니다. 지역 이름이 다른 행은 연결하지 말고 미연결로 둡니다. 3. 판정표를 먼저 보여 주고, 그 표를 근거로 시간순 브리프 초안을 씁니다. 문장마다 근거 message_id와 alert_id를 붙입니다. [완성 기준] 한 줄 요약, 시간순 브리프, 사람이 확인할 항목(해제 미확인, 미연결 지역, 재난유형과 특보유형의 표현 차이) 세 부분으로 씁니다. [하지 말 것] 자료에 없는 원인·피해 규모·책임은 쓰지 말고 [확인 필요]로 남겨 주세요. 해제 미확인을 발효 중으로 쓰지 마세요. 대응 단계나 인력 배치는 정하지 말고, 공식 발표처럼 단정하지 마세요. 확인 기준은 https://119-ai-studio.kr/situation-brief.html 안내서를 따릅니다. 작업 전에 빠진 정보가 있으면 먼저 질문해 주세요.
결과를 받은 뒤 확인할 것은 다음과 같습니다.
- 판정표의 상태가 다섯 값 가운데 하나뿐인지, 해제 미확인이 브리프에서 발효 중으로 바뀌지 않았는지 봅니다.
- 자정을 넘긴 특보 한두 건을 골라 날짜까지 원문과 대조합니다.
- 브리프의 모든 근거 번호가 붙임 파일에 있는지 대조합니다.
자료를 얻는 곳
- 재난문자: 지역별 긴급재난문자 모아보기. 공공데이터포털 항목은 재난안전데이터 공유플랫폼으로 연결되며, 인증키는 재난안전데이터 공유플랫폼에서 따로 받습니다. 운영 이용은 심사를 거칩니다. 이용허락이 공공누리 제4유형(출처표시·상업적 이용금지·변경금지)이므로, 브리프를 밖으로 낼 때 원문을 바꿔 실었는지 확인합니다.
- 기상특보: 호우·강풍·폭염 특보 확인. 공공데이터포털 서비스키로 특보 현황과 발표·발효 시각을 지역별로 조회합니다.
- 원문 확인 화면: 국민안전24 재난문자 조회, 기상특보 종합.
- 지역 코드 기준표: 법정동·행정구역 코드 조회.
- 공개 코드: 재난문자 API를 조회하는 행정안전부의 재난문자 지도 저장소.
이 안내서의 열 이름은 예시입니다. 시각 형식과 해제를 알리는 항목은 각 API 문서로 확인한 뒤 열을 맞춥니다.
동작 원리
요즘 AI는 시각이 적힌 표를 받으면 선후를 비교하고, 코드 실행 기능으로 구간 계산도 합니다. 그래도 다음 네 가지는 사람이 입력과 절차로 정해 줘야 합니다.
- 기준 시각: '지금 발효 중'은 기준 시각이 있어야 판정할 수 있습니다. 프롬프트에 기준 시각을 적습니다.
- 해제 기록의 누락: 입력에 해제 발표가 빠지면 AI도 사람도 알 수 없습니다. 해제 기록이 없으면 해제 미확인으로 두고 원문을 확인합니다.
- 날짜와 시간대: 시각만 떼어 비교하면
23:50과00:10의 선후가 뒤집힙니다. 두 자료의 시각을 날짜·시간대까지 같은 형식으로 바꾼 뒤 비교합니다. - 되짚을 수 있는 기록: 판정표가 남아야 사람이 브리프 문장을 원래 행으로 되짚을 수 있습니다.
특보는 발표 시각과 발효 시각이 다를 수 있으므로, 발표 시각만으로 발효 중이라고 보지 않습니다. 판정은 두 번 합니다. 하나는 문자가 나간 시각에 그 특보가 발효 중이었는지이고, 다른 하나는 브리프 기준 시각에 발효 중인지입니다. 교대 브리프에 필요한 것은 두 번째이고, 첫 번째는 문자가 어떤 특보 중에 나갔는지 설명할 때 씁니다.
지역은 시간보다 먼저 맞춥니다. 재난문자의 송출지역과 특보 구역은 이름 체계가 다를 수 있으므로 기준표로 맞춘 행만 연결하고, 나머지는 미연결 후보로 둡니다. 판정표에는 원문 전체 대신 message_id·alert_id 같은 근거 번호와 비교에 필요한 공개 가능 열만 남깁니다. 브리프 초안은 판정표를 읽기 쉽게 정리할 뿐 새 상태를 만들지 않습니다.
선택지와 트레이드오프
자료량과 반복 빈도에 맞춰 판정 방식을 고르되, 어떤 방법이든 근거 행과 사람 확인을 남깁니다.
| 선택지 | 맞는 상황 | 장점 | 주의할 점 |
|---|---|---|---|
| 사람이 표에서 시각을 직접 대조 | 항목이 매우 적고 일회성 교육 검토일 때 | 판단 과정을 설명하기 쉬움 | 자정 경계와 반복 항목에서 빠뜨리기 쉬움 |
| 코드로 상태를 판정 | 같은 형식의 항목을 반복 처리할 때 | 같은 규칙을 다시 실행하고 결과를 남길 수 있음 | 시각 형식·시간대·지역 표준화가 먼저 필요 |
| 규칙 기반 초안 양식 | 문장 형식이 고정되어 있을 때 | 입력 밖 문장이 생길 여지가 적음 | 여러 항목을 자연스럽게 묶기 어려움 |
| 판정표를 근거로 한 AI 초안 | 근거 번호를 유지하며 읽기 쉽게 묶을 때 | 다양한 항목을 정해진 형식으로 정리 | 원문 밖 단정과 항목 누락을 사람이 대조해야 함 |
특보 상태 판정
AI가 만든 코드에서 상태를 정하는 부분을 찾아 아래 순서와 같은지 봅니다. 다음은 확인 기준을 보여 주는 예입니다.
def state(t, a): # t: 판정 시각(문자 발송 시각 또는 기준 시각), a: 같은 지역 특보 한 행 if pd.isna(a["effective_at"]): return "발효 시각 미상" if t < a["effective_at"]: return "발효 전" if pd.isna(a["lifted_at"]): return "해제 미확인" return "발효 중" if t < a["lifted_at"] else "해제됨"
작은 예로 보겠습니다. 모두 합성 값이며 기준 시각은 26일 01:30입니다.
| 문자 | 발송 시각 | 지역 | 특보(발효~해제) | 발송 시각 기준 | 기준 시각 기준 |
|---|---|---|---|---|---|
| M-1 | 25일 20:30 | A구 | 호우경보 25일 20:00~26일 00:00 | 발효 중 | 해제됨 |
| M-2 | 26일 01:00 | A구 | 호우경보 25일 20:00~26일 00:00 | 해제됨 | 해제됨 |
| M-3 | 26일 01:10 | B구 | 강풍주의보 25일 23:00~(해제 기록 없음) | 해제 미확인 | 해제 미확인 |
M-1은 호우경보 중에 나간 문자이지만 기준 시각에는 해제됐으므로 브리프에 발효 중으로 쓰지 않습니다. M-3의 해제 미확인은 자료에 해제 발표가 없다는 뜻이지 발효 중이라는 확인이 아닙니다. 브리프에는 원문 확인 필요로 적고 기상특보 종합에서 확인합니다.
시각 열은 형식을 지정해 날짜형으로 바꾼 뒤 비교하고, 형식이 다른 두 자료는 각각 변환합니다. 날짜·시각을 다루는 방법은 pandas 코스의 날짜 장에 있습니다.
가상 상황: 자정에 해제된 호우경보
다음은 학습용 가상 상황입니다. 야간 상황실에서 A구에 저녁 8시 호우경보가 발효됐다가 자정에 해제됐습니다. 새벽 1시에 같은 지역으로 다른 재난문자가 한 통 더 옵니다. 교대 브리프를 만들려고 재난문자 묶음과 특보 목록을 기준 시각 없이 AI에게 "요약해 줘"라고 넘기면, 초안에 "A구 호우경보 발효 중"이 들어갈 수 있습니다.
이 한 줄이 교대 브리핑에서 읽히면, 다음 근무조가 이미 해제된 위험에 맞춰 대기 인력을 정할 수 있습니다. 담당자는 프롬프트에 기준 시각을 적고, 판정표에서 M-1과 M-2가 기준 시각 기준 해제됨으로 나온 것을 확인한 뒤 초안을 받습니다.
가상 사례: 교육훈련 담당자의 날짜 경계 실습
다음은 설명을 위한 가상 사례입니다. 교육훈련 담당자가 날짜가 바뀌는 시각 비교를 가르치려고 합성 문자와 합성 특보 표를 준비합니다.
입력에는 전날 발효돼 다음 날 해제되는 특보, 해제 기록이 없는 특보, 지역 표기가 다른 항목이 섞여 있습니다. 학습자는 판정표에서 해제됨과 해제 미확인이 다른 상태로 나오는지, 지역 표기가 다른 항목이 미연결로 남는지 확인합니다.
시각만 떼어 23:50과 00:10을 같은 날짜 안에서 비교하면 실패합니다. 선후가 뒤집히기 때문입니다. 담당자는 학습자가 각 판정을 원본 날짜·시각과 근거 번호로 설명하게 합니다.
사람이 확인할 항목
다음 경우는 판정표에서 사람 확인 항목으로 따로 둡니다.
- 해제 미확인 또는 발효 시각 미상인 특보
- 기준표로 맞추지 못한 미연결 지역
- 재난유형과 특보유형의 표현이 비슷하지만 같은지 분명하지 않을 때
- 소방 내부 문구를 공개 범위와 나눠야 할 때
검토 순서를 정하는 규칙은 미리 규칙표(항목·순서·이유)로 정해 둡니다. 원자료에 문자 등급 같은 값이 있는지는 API 문서로 확인하고, 있으면 임의 점수보다 그 값을 그대로 씁니다. 재난 유형 분류와 상황전파 문안 작성을 AI로 나눈 지자체 운영 사례는 세종 SIREN에서 볼 수 있습니다.
이 방법의 한계
- 실시간 현황이 아닙니다: 재난문자·대피시설 묶음의 주의대로, 전달 지연을 실측하기 전에는 브리프를 실시간 현황으로 안내하지 않습니다.
- 해제 여부는 원문으로 확인합니다: 입력에 없는 해제는 판정표도 알 수 없습니다.
- 코드가 막힐 때: 오류가 나거나 결과가 의심되면 막혔을 때 다시 요청하는 법으로 다시 요청합니다.
문제 해결
| 증상 | 가능한 원인 | 처방 | 확인 |
|---|---|---|---|
| 해제된 특보가 발효 중으로 남음 | 기준 시각이 없거나 날짜를 빼고 시각만 비교함 | 기준 시각을 정하고 날짜·시간대를 포함한 값으로 다시 변환 | 발효 전·발효 중·해제 후 합성 행으로 상태 확인 |
| 해제 기록이 없는 특보가 해제됨이나 발효 중으로 나옴 | 해제 시각이 빈 행을 따로 나누지 않음 | 해제 시각이 비면 해제 미확인으로 두고 원문 확인 | 해제 기록 없는 합성 행이 해제 미확인으로 나오는지 확인 |
| 같은 지역인데 항목이 연결되지 않음 | 송출지역과 특보 구역의 이름 체계가 다름 | 원문을 보존한 채 법정동·행정구역 코드 기준표로 맞춤 | 매핑 전후 고유값과 미연결 행 목록 확인 |
| 브리프 문장에 근거 번호가 빠짐 | 출력 형식이 느슨하거나 여러 행을 임의로 합침 | 문장마다 근거 번호를 요구하고 없는 문장은 검토로 분리 | 출력의 모든 근거 번호가 입력표에 있는지 대조 |
| 검토 순서와 발효 상태가 섞임 | 시간 판정과 검토 순서를 한 열로 표현함 | 상태 열과 검토 순서 열을 나누고 각각의 규칙을 적음 | 같은 행에서 두 값의 근거를 각각 설명할 수 있는지 확인 |
자주 묻는 질문
Q. 프롬프트에 시간 규칙을 넣으면 판정표 없이 바로 초안을 받아도 되나요?
판정표를 먼저 받는 편이 안전합니다. 규칙을 적어도 긴 목록에서 항목이 빠지거나 시각을 잘못 읽을 수 있습니다. 판정표가 있으면 사람이 상태를 원문과 대조한 뒤 초안을 받을 수 있습니다.
Q. 지역명이 조금 다르면 AI가 같은 지역인지 판단하게 해도 되나요?
자동 추정으로 합치지 않습니다. 기준표나 원자료 확인이 없으면 미연결 후보로 두어 사람이 확인합니다.
Q. 근거 번호가 붙은 문장은 바로 공식 브리프에 써도 되나요?
근거 번호가 있으면 문장을 원래 행으로 되짚을 수 있을 뿐, 공식 승인이 끝난 것은 아닙니다. 개인정보·공개 범위·단정 표현과 소속 기관 절차를 사람이 다시 확인해야 합니다.
핵심 정리
- 브리프 기준 시각을 먼저 정하고, 특보의 발표·발효·해제 시각을 날짜·시간대까지 맞춰 비교합니다.
- 상태는 발효 시각 미상·발효 전·발효 중·해제됨·해제 미확인으로 나누고, 해제 미확인은 원문으로 확인합니다.
- AI에게는 판정표를 먼저 받고, 그 표를 근거로 문장마다 근거 번호가 붙은 초안을 받습니다.
- 결과는 내부 검토용 초안이며 대응 단계와 공식 발표는 사람이 정합니다.
다음 단계
- 공공 데이터 — 재난문자·기상특보 API의 인증, 이용허락, 발표·발효 시각 주의 사항을 확인합니다.
- 개인정보, AI에 넣기 전에 점검하기 — 판정표를 AI에 넘기기 전 실제 사건 식별 정보가 남았는지 확인합니다.
- AI 결과, 제출 전 확인 사항 — 완성된 초안의 근거·단정·공개 범위를 마지막으로 검토합니다.