2026-10-06

GeoAI 위성·드론 영상 분석, 재난대응 산업이 뜬다 | 재난안전과 GeoAI

GeoAI 위성·드론 영상 분석, 재난대응 산업이 뜬다 | 재난안전과 GeoAI

GeoAI 위성·드론 영상 분석 기술이 재난대응 산업의 중심으로 떠오르고 있다. 누리호 5차 발사, 위성·드론 영상 분석 스타트업, ArcGIS 경사지 위험 분석 서비스까지 오늘의 관련 소식을 정리했다.

📌 3줄 요약

  • 아크넥사는 위성·드론 영상을 AI로 분석하는 기술로 TIPS 선정을 추진 중이다
  • 누리호 5차 발사로 주탑재위성 포함 15기가 순차로 궤도에 투입될 예정이다
  • Esri는 ArcGIS 기반 SlopeScout로 주소 단위 경사지 위험 분석을 제공한다

안녕하세요. 오늘은 GeoAI·생성형AI 공간정보 기술이 재난안전 분야에서 어떤 식으로 산업화되고 있는지 짚어보는 브리핑입니다. 누리호 5차 발사와 위성 분리 시퀀스, 세종의 위성·드론 영상 분석 스타트업, 군집드론 전술 비행 기술까지 하드웨어와 소프트웨어가 맞물려 움직이는 하루였습니다.

특히 위성·드론으로 지상을 내려다보는 '관측 인프라'와 그 영상을 해석하는 'AI 분석 기술'이 동시에 뉴스에 등장한 점이 눈에 띕니다. 재난안전학을 공부하는 입장에서는 이런 흐름이 결국 재해영향평가나 위험성 평가에 쓰일 데이터 기반이 넓어지는 과정으로 읽힙니다.

drone aerial survey camera
자료사진 · 사진: lukasbieri / Pixabay

🚀 누리호 5차 발사, 언제 어떤 위성을 쏘아 올리나요?

누리호 5차 발사가 10월 7일로 예정되어 있으며, 주탑재위성을 포함해 다수의 위성을 궤도에 투입하는 임무로 알려졌습니다. 동아사이언스 보도에 따르면 이번 발사는 주탑재위성의 성능 검증이 핵심 목표로 전해졌습니다.
재난안전 관점에서 보면 국산 위성 확보는 재해 모니터링용 관측 데이터의 자립도를 높이는 기반이 됩니다. 앞으로 이 위성들이 수집할 영상이 산사태, 지반침하 같은 지형 변화 감시에 어떻게 쓰일지 지속적으로 지켜볼 필요가 있어 보입니다.

📰 기사 원문: [누리호 5차발사] 7일 '하늘 문' 연다…"주탑재위성 5기 궤도 투입 성능... - dongascience.com

🛰️ 누리호에서 위성 15기는 어떻게 순서대로 분리되나요?

KBS 보도에 따르면 누리호는 이번 발사에서 위성 15기를 차례로 궤도에 내려놓는 '위성 하차' 작전을 수행할 예정으로 알려졌습니다. 다수 위성을 순차 분리하는 과정은 정밀한 타이밍 제어가 요구되는 고난도 작업으로 전해졌습니다.
여러 위성이 동시에 올라가는 구조는 향후 재해 관측 주기를 단축시킬 잠재력이 있다고 봅니다. 수험생이라면 위성 분리 시퀀스 같은 기술 용어보다, 이 데이터가 결국 어떤 재난 분야 응용으로 이어지는지 흐름을 함께 익혀두면 좋을 것으로 보입니다.

📰 기사 원문: “위성 15기 차례로 내리세요”…누리호의 ‘위성 하차’ 작전 - news.kbs.co.kr

🤖 위성·드론 영상을 AI로 분석하는 스타트업은 어디 있나요?

벤처스퀘어 보도에 따르면 세종창조경제혁신센터가 투자한 아크넥사가 위성·드론 영상을 AI로 분석하는 기술을 바탕으로 TIPS 프로그램 선정을 추진 중인 것으로 알려졌습니다. 이 기술은 전술·산업 분야뿐 아니라 지형 감시용으로도 확장 가능성이 있다고 전해졌습니다.
이런 지역 창업 지원 사례는 GeoAI 산업이 공공 인프라를 넘어 민간 스타트업 생태계로 확산되는 모습을 보여줍니다. 충북 지역에서도 위성·드론 영상 분석 기반 재해 모니터링 스타트업이 나올 수 있는지 관심 있게 지켜볼 대목으로 보입니다.

📰 기사 원문: 세종창조경제혁신센터 투자 아크넥사, 위성·드론 영상 AI로 분석…TIPS ... - venturesquare.net

🚁 군집드론 기술은 재난 현장에서 왜 주목받나요?

지디넷코리아 보도에 따르면 다온아이앤씨가 AI페스타에서 AI 군집드론 기술을 공개하며 전술 비행 혁신을 강조한 것으로 전해졌습니다. 여러 대의 드론이 동시에 협력 비행하는 기술은 원래 군사 목적으로 개발됐지만 재난 현장 수색이나 광범위 지역 모니터링에도 응용될 여지가 있습니다.
군집드론은 한 대보다 넓은 지역을 짧은 시간에 커버할 수 있어 골든타임 확보에 유리한 기술로 평가됩니다. 재난안전학 교육과정에서 다루는 드론 기반 현장 대응 체계가 앞으로 이런 군집 비행 기술과 결합될 가능성이 커 보입니다.

📰 기사 원문: 다온아이앤씨, AI페스타서 AI 군집드론 기술 공개…"전술 비행 혁신" - zdnet.co.kr

⛰️ 경사지 위험을 주소 단위로 확인할 수 있나요?

Esri ArcGIS 블로그는 10월 5일 'SlopeScout'라는 서비스를 소개하며, ArcGIS 기반으로 주소 단위까지 지형 위험을 분석할 수 있다고 전한 것으로 알려졌습니다. 이는 경사지·산사태 위험을 보다 세밀한 단위로 확인하려는 GeoAI 응용 사례로 전해졌습니다.
제천과 충북 같은 산지 비중이 높은 지역에서는 이런 주소 단위 경사지 분석 도구가 재해영향평가나 위험지구 지정 실무에 직접적인 참고 자료가 될 수 있다고 봅니다. 수험생이라면 GIS 공간분석과 재해영향평가가 실제로 어떻게 연결되는지 보여주는 좋은 사례로 참고할 만합니다.

📰 기사 원문: SlopeScout: Decoding Terrain Risk with ArcGIS, One Address at a Time - Esri ArcGIS Blog

🧰 오늘의 핵심 포인트
위성·드론 관측 인프라와 AI 영상 분석 기술이 동시에 발전하면서, 재난 모니터링의 '눈'과 '뇌'가 함께 고도화되고 있습니다. 주소 단위 경사지 위험 분석처럼 실무에 바로 쓸 수 있는 GeoAI 도구가 늘고 있다는 점도 눈여겨볼 부분입니다. 공공 발사체 사업과 민간 스타트업 기술이 서로 보완하며 생태계를 넓혀가는 흐름으로 보입니다.

❓ 자주 묻는 질문

Q. 누리호 5차 발사는 언제 이루어지나요?
A. 동아사이언스 보도에 따르면 2026년 10월 7일로 예정되어 있으며, 주탑재위성을 포함한 다수 위성을 궤도에 투입할 계획으로 알려졌습니다. 자세한 일정과 결과는 원문 참고가 필요합니다.

Q. 위성·드론 영상을 AI로 분석하는 기술은 재난 대응에 어떻게 쓰이나요?
A. 세종창조경제혁신센터가 투자한 아크넥사 사례처럼, 위성·드론 영상 AI 분석은 지형 변화나 재해 징후를 넓은 지역에서 빠르게 파악하는 데 활용될 잠재력이 있는 것으로 전해졌습니다.

Q. 경사지 위험을 주소 단위로 확인하는 서비스가 있나요?
A. Esri ArcGIS 블로그가 소개한 SlopeScout가 이런 기능을 제공하는 것으로 알려졌으며, 구체적인 분석 방식과 범위는 원문을 참고하는 것이 좋습니다.

오늘은 관측 인프라와 AI 분석 기술이 나란히 성장하는 흐름을 확인한 하루였습니다. 다음 브리핑에서 또 새로운 소식으로 찾아뵙겠습니다.


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

GeoAI로 보는 경사지 위험, 주소 단위 분석 시작됐다 | 재난안전과 GeoAI

GeoAI로 보는 경사지 위험, 주소 단위 분석 시작됐다 | 재난안전과 GeoAI

🎬 1분 브리핑 영상

GeoAI로 보는 경사지 위험 분석이 주소 단위까지 정교해지고 있다. 오늘은 위성 발사, 국토정책, 관제 기술까지 지리공간 분야 주요 소식을 정리했다.

📌 3줄 요약

  • Esri가 주소 단위 경사지 위험 분석 도구 SlopeScout 공개
  • 누리호 5차 발사로 위성 15기 순차 궤도 투입 예정
  • 디지털트윈·도면 네이티브 관제 기술 비교 논의 확산

안녕하세요, 오늘도 GeoAI·생성형AI·공간정보 소식을 전해드리는 시간입니다. 최근에는 위성 발사와 지형 위험 분석 기술, 그리고 디지털트윈 기반 관제 시스템 등 다양한 영역에서 공간정보 기술이 어떻게 활용되는지 보여주는 소식들이 이어졌습니다.

오늘은 누리호 5차 발사 준비 소식부터, 경사지 위험을 주소 단위로 분석하는 ArcGIS 신규 도구, 그리고 국토정책과 관제 기술 동향까지 고루 짚어보겠습니다. 재난안전학과 시각에서 보면 이런 기술들이 실제 현장 대응과 어떻게 연결되는지가 중요한 포인트입니다.

slope stability monitoring screen
자료사진 · 사진: ChiemSeherin / Pixabay

⛰️ 내 주소지의 경사지 위험, 어떻게 확인할 수 있나요?

Esri ArcGIS 블로그는 2026년 10월 5일 SlopeScout이라는 도구를 소개했다. 이 도구는 주소 단위로 지형 경사와 위험 요소를 분석해주는 방식으로 알려졌으며, 기존의 넓은 범위 지형 분석을 개별 주소 수준까지 세분화한 점이 특징이다. 주소 기반 분석은 재해영향평가나 산사태 위험지도 작성 시 활용도가 높을 것으로 보인다. 재난안전학과에서 배우는 위험성 평가 실습에서도 이런 식의 세밀한 공간 데이터 접근법이 점점 중요해지고 있으며, 충북처럼 산지 비율이 높은 지역에서는 주소 단위 경사 분석이 실제 주민 대피계획 수립에도 참고가 될 수 있다고 봅니다.

📰 기사 원문: SlopeScout: Decoding Terrain Risk with ArcGIS, One Address at a Time - Esri ArcGIS Blog

🚀 누리호 5차 발사에서 위성은 어떻게 배치되나요?

KBS는 2026년 10월 6일 누리호 5차 발사와 관련해 위성 15기를 차례로 궤도에 내려놓는 '위성 하차' 작전을 보도했다. 여러 위성을 한 번에 쏘아 올려 순차적으로 분리 배치하는 방식은 발사 비용 효율화와 다목적 위성 운용 측면에서 의미가 크다고 알려졌다. 이런 다중 위성 임무는 향후 재난 관측용 위성 데이터 확보에도 영향을 줄 수 있어, GeoAI 분야에서 활용할 수 있는 관측 데이터의 양과 주기가 늘어날 가능성이 있다고 봅니다. 재난안전을 공부하는 입장에서는 위성 발사 성공이 곧 원격탐사 기반 재해 모니터링 인프라 확충으로 이어진다는 점을 눈여겨볼 필요가 있습니다.

📰 기사 원문: “위성 15기 차례로 내리세요”…누리호의 ‘위성 하차’ 작전 - news.kbs.co.kr

🗺️ 관제 시스템에서 디지털트윈과 도면 기반 방식은 뭐가 다른가요?

네이버블로그 maiusflow는 2026년 10월 6일 디지털트윈과 '도면 네이티브' 관제 방식의 차이를 다루며, 관제에서 위치 정보 중심 설계가 왜 중요한지 설명했다. 디지털트윈은 실시간 3차원 공간 정보를 기반으로 하는 반면, 도면 기반 관제는 평면 도면에 위치 데이터를 얹는 방식으로 알려졌다. 재난 상황에서는 현장 지형과 건물 구조를 정확히 반영한 관제 체계가 대응 속도에 직결되므로, 이런 기술 비교는 소방이나 재난상황실 설계에 실질적인 시사점을 줄 수 있다고 봅니다. 학과 커리큘럼의 BCP(업무연속성계획) 수업에서도 위치 중심 관제 설계 개념이 점차 비중 있게 다뤄질 필요가 있어 보입니다.

📰 기사 원문: 디지털트윈과 도면 네이티브 관제의 차이|관제에는 왜 위치 중심 .... - maiusflow (네이버블로그)

🏙️ 국가균형성장을 위한 거점 중소도시 정책은 무엇을 담고 있나요?

네이버블로그 HJS_ArchiStudio는 2026년 9월 28일 발표된 국토정책 Brief를 분석하며 거점 중소도시 육성 방향을 정리했다. 국가균형성장 차원에서 중소도시 기능을 강화하려는 정책 흐름으로 알려졌으며, 지역 거점 도시 지정과 인프라 확충이 핵심 내용으로 보인다. 이런 정책은 지방 소멸 대응뿐 아니라 재난 대응 인프라 분산 배치와도 연결될 수 있어, 재난안전학과 관점에서는 거점도시별 방재 시설 배치 계획이 함께 논의되는지 살펴볼 필요가 있다고 봅니다. 제천과 같은 중소도시 입장에서도 거점 지정 여부가 향후 방재 예산 확보에 영향을 줄 수 있어 관심 있게 지켜볼 대목입니다.

📰 기사 원문: [2026.9.28 국토정책 Brief 분석] 국가균형성장을 위한 거점 중소도시 육.... - HJS_ArchiStudio (네이버블로그)

🏗️ 전북혁신도시는 정주도시를 넘어 어떤 역할을 하게 되나요?

전라일보는 2026년 10월 5일 김시백 전북연구원 선임연구위원의 인터뷰를 통해 전북혁신도시가 정주도시를 넘어 지역 성장 거점으로 역할을 확대해야 한다는 의견을 전했다. 혁신도시가 단순 이주 정착지를 넘어 지역 산업·행정 기능까지 담당해야 한다는 주장으로 알려졌다. 이런 논의는 지방 거점 도시의 방재 역량 강화와도 맞닿아 있어, 지역 성장과 재난 대응 인프라가 함께 성장해야 한다는 시각이 재난안전학과에서도 중요하게 다뤄지는 주제라고 봅니다. 혁신도시 사례는 충북 지역 거점 개발 논의에도 참고할 만한 선례가 될 수 있어 보입니다.

📰 기사 원문: 김시백 전북연구원 선임연구위원 "전북혁신도시, 정주도시 넘어 지역 성... - domin.co.kr

🧰 오늘의 핵심 포인트
주소 단위 경사지 위험 분석처럼 공간 해상도가 세밀해질수록 재해영향평가의 정확도도 높아질 수 있습니다. 위성 다중 발사 체계가 안정화되면 재난 관측용 원격탐사 데이터 확보 주기가 짧아져 GeoAI 기반 예측 모델의 성능 개선에도 도움이 될 것으로 보입니다. 디지털트윈 기반 관제와 국토 거점도시 정책은 결국 '위치 중심 사고'라는 공통분모를 갖고 있어, 공간정보를 다루는 학생이라면 이 흐름을 함께 이해해두는 것이 좋습니다.

❓ 자주 묻는 질문

Q. 제천처럼 산지가 많은 지역에서 SlopeScout 같은 경사지 분석 도구가 왜 중요한가요?
A. 주소 단위 분석이 가능해지면 개별 가구나 시설 단위로 산사태 위험을 가늠할 수 있어, 기존의 광역 단위 위험지도보다 실생활에 가까운 대비가 가능해질 것으로 보입니다. 다만 구체적인 적용 사례는 원문을 참고하시기 바랍니다.

Q. 누리호 5차 발사에 탑재되는 위성 15기는 어떤 용도인가요?
A. 보도에 따르면 15기 위성을 순차적으로 궤도에 배치하는 작전으로 알려졌으며, 구체적인 위성별 임무나 용도는 추가 확인이 필요합니다. 자세한 내용은 원문을 참고하는 것이 좋습니다.

Q. 디지털트윈 기반 관제 시스템은 기존 CCTV 관제와 무엇이 다른가요?
A. 디지털트윈은 실시간 공간 정보를 입체적으로 구현해 위치 중심으로 상황을 파악하는 방식으로 알려졌습니다. 기존 평면 도면 기반 관제보다 현장 상황 파악이 직관적일 수 있다는 점이 특징입니다.

오늘 소식을 보면 공간정보 기술이 '더 넓게'보다 '더 정밀하게' 진화하는 흐름이 뚜렷했습니다. 내일도 유용한 GeoAI·재난안전 소식으로 찾아뵙겠습니다.


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

NaGeoAI 실제 QGIS 실습 9 | Lightning 체크포인트 학습과 NDVI 픽셀 회귀 검증

실습일: 2026년 10월 6일 · QGIS 3.44.12 · NaGeoAI

1. 실습 목적과 확인 범위

본 실습에서는 Landsat 예제 영상과 기준 NDVI를 이용하여 GeoAI Lightning 체크포인트를 학습하고, NaGeoAI의 픽셀 회귀 패널에서 예측 GeoTIFF를 생성하였다. 자료의 좌표계와 격자 정합, 체크포인트 재로딩, QGIS 실제 실행 및 출력의 공간 범위 보존 여부를 확인하는 것을 목적으로 한다. 공개된 완성 체크포인트를 다운로드한 실습이 아니라, 공식 예제 자료를 이용하여 새 모델을 학습한 실습이다.

2. 플러그인 설치와 예제 자료 다운로드

NaGeoAI 1.9.1 배포 ZIP을 받은 뒤 QGIS의 플러그인 → 플러그인 관리 및 설치 → ZIP 파일에서 설치에서 해당 파일을 선택하고 설치한다. 설치 후 NaGeoAI 활성화 상태를 확인한다. 필요한 Python 환경은 NaGeoAI 메뉴의 ‘필수 환경·모델 설치’에서 확인한다. 본 회차에서는 기존 설치 환경을 사용했으므로 새 설치 화면을 촬영하거나 재설치했다고 표시하지 않는다. 설치 화면은 실습 1의 실제 과거 캡처를 참고한다. 해당 글 역시 ZIP 선택 화면과 재설치 완료 증거를 구분하고 있다.

자료의 출처는 GeoAI 공식 Pixel-Level Regression 예제이다. 아래 링크에서 입력 영상과 기준 NDVI를 별도 폴더에 다운로드한다. 본 글은 원본 래스터와 모델을 재배포하지 않으며, 자료의 외부 재배포에는 제공처의 최신 이용 조건을 별도로 확인해야 한다.

다운로드한 원본은 보존하고, 타일·모델·예측 결과는 별도 실습 폴더에 저장한다. 이 자료는 한국 현장 관측 자료가 아니라 공식 문서의 예제 자료이며, 배경지도만을 입력으로 분석한 것이 아니다.

3. 입력 자료와 모델 학습

두 원본 래스터는 EPSG:3857, 706×649 픽셀, 90m 격자로 확인되었다. 입력은 8밴드, 기준 NDVI는 1밴드이다. 밴드 설명이 없으므로 임의의 밴드 명칭을 붙이지 않고 원본의 8밴드 순서를 유지하였다. 입력과 기준 영상의 좌표 변환 및 격자 일치 여부를 확인하였다. 원본의 Y 방향 픽셀 간격은 +90m이며, 출력에서도 동일한 지리참조를 보존하였다.

128×128 픽셀의 중첩 없는 타일을 구성하였다. 왼쪽 2개 열의 10개 타일을 학습에 사용하고, 한 열을 비운 뒤 5개 타일을 검증, 별도 5개 타일을 최종 평가에 사용하였다. 경계 잔여 픽셀은 제외하였다. 최종 평가 타일은 모델 선택에 사용하지 않았다. 공식 문서의 무작위 분할 및 학습 설정을 그대로 복제한 것이 아니라, 본 회차의 작은 실습 범위에 맞추어 조정한 구성이다.

항목실제 설정
구조 / 인코더U-Net / ResNet18
입력 채널 / 사전학습 가중치8 / 사용하지 않음
학습 반복 / 배치50 epochs / 2
학습률 / 손실0.001 / MSE
seed / workers42 / 0
학습 장치NVIDIA GeForce RTX 3080 Ti
최선 체크포인트resnet18_unet_epoch=48_val_loss=0.0043.ckpt

학습과 추론에는 일관된 입력 정규화를 적용하였다. 이번 입력 값 범위에서 GeoAI 전처리는 입력을 0~1로 제한하므로 일부 음의 입력값은 0으로 처리된다. 원본 파일 자체는 변경하지 않았다. 체크포인트는 GeoAI PixelRegressionModel.load_from_checkpoint로 재로딩하여 검증하였다. 임의의 다른 모델 .ckpt 파일은 구조·입력 채널이 다를 수 있어 대체할 수 없다. 재학습은 공식 문서의 train_pixel_regressor 절차를 따르되 위 설정과 공간 분할을 동일하게 적용해야 한다.

4. QGIS 시작 프로젝트와 실습 입력

시작 프로젝트 QGIS_Play.qgz를 열고, 분석 레이어를 추가하기 전에 QGIS_Play_NaGeoAI_20261006_pixel_regression.qgz로 별도 저장하였다. 원본 프로젝트는 덮어쓰지 않았다. 최종 평가 영역 중 test_0_512_input.tif와 test_0_512_target.tif를 각각 입력 영상과 기준 NDVI 레이어로 추가하였다. QGIS에서 유효한 래스터임을 확인하고 실습 복사본의 프로젝트 CRS를 EPSG:3857로 설정하였다.

5. NaGeoAI 픽셀 회귀 설정

  1. NaGeoAI 도구 모음에서 ‘추가 분석’을 연다.
  2. 기능 목록에서 ‘픽셀 회귀’를 선택한다.
  3. 입력 래스터에 test_0_512_input.tif를 지정한다.
  4. 모델 체크포인트에 위에서 학습한 최선 .ckpt 파일을 지정한다.
  5. 타일 크기 128, 중첩 크기 0을 입력한다.
  6. 새 출력 파일 qgis_pixel_regression_20261006.tif를 지정하고 ‘공간 결과를 지도에 추가’를 선택한다.
실제 QGIS 입력 및 기준 NDVI 레이어와 NaGeoAI 픽셀 회귀 설정 화면
그림 1. 실제 입력 레이어와 픽셀 회귀 패널. 체크포인트·타일 크기 128·중첩 0·출력 경로를 확인한다. 이미지를 클릭하면 원본 크기로 볼 수 있다.

6. 실행과 처리 로그 확인

‘실행’을 누른 뒤 시작 로그와 처리 완료를 확인하였다. 이번 입력은 128×128 픽셀의 한 타일이므로 로그에는 Total tiles: 1이 표시된다. 처리 중 동일 출력으로 다시 실행하거나 기존 결과를 덮어쓰지 않는다.

NaGeoAI 픽셀 회귀 실행 직후 시작 로그
그림 2. 실행 직후 ‘픽셀 회귀 시작’ 로그. 이 화면은 완료 결과가 아니라 처리 시작 단계이다.
QGIS 지도에 추가된 NDVI 예측 출력과 Pixel regression complete 로그
그림 3. 예측 결과 레이어와 처리 완료 로그. Output dimensions: 128x128 및 Pixel regression complete를 확인한다. 회색조 화면의 명암은 NDVI 값의 표시이며 실제 색상 영상이 아니다.

7. 출력 격자와 수치 검증

출력 레이어를 더블클릭하여 ‘정보’에서 너비·높이·자료형·범위를 확인하였다. 출력은 1밴드 Float32 GeoTIFF이며, EPSG:3857과 입력의 좌표 변환·공간 범위를 그대로 보존하였다. 별도 파일 검사에서 모든 출력값이 유한한 수임을 확인하였다.

QGIS 출력 레이어 속성의 128×128 크기와 Float32 자료형 검증 화면
그림 4. 실제 출력 레이어 속성. 128×128 크기, 1밴드, Float32 및 공간 범위를 확인한다.
검증 범위결과
최종 평가 5타일 / 81,920픽셀RMSE 0.05297 / MAE 0.03715 / R² 0.60326
학습 평균값 기준선 RMSE0.15594
QGIS 실제 실행 1타일 RMSE0.04544
QGIS 1타일 예측 범위0.11157~0.99660
QGIS와 CPU 동일 타일 예측의 최대 절대 차이0.0005221

5타일 평가는 체크포인트를 재로딩한 CPU 추론 결과이며, QGIS 실제 패널에서 실행한 것은 그중 1타일이다. 두 검증 범위를 혼동하지 않아야 한다. 동일 영상 내 공간 분리 평가이므로 다른 연도·지역에 대한 일반화 성능은 확인하지 않았다. 모든 평가 타일을 합친 예측 범위는 0.07456~1.07403으로, 일부 픽셀은 NDVI 상한 1을 초과하였다. 이번 출력에는 사후 값 제한을 적용하지 않았다.

8. 저장, 종료와 주의사항

처리 완료 후 출력 레이어 속성 창에서 QGIS가 일시적으로 ‘응답 없음’ 상태가 나타났다. 당시 강제 종료하지 않았으며, 후속 확인에서 실습 복사본에 입력·기준 NDVI·예측 결과 3개 레이어가 저장되어 있고 QGIS 창과 프로세스가 더 이상 실행 중이 아닌 것을 확인하였다. 자동 정리 시점에는 정상 종료를 확인하지 못했으므로, 이를 오류 없이 자동 저장·종료한 사례로 해석해서는 안 된다.

실습을 재현할 때는 모델 입력 채널 수, 밴드 순서, 전처리, CRS, 타일 크기를 함께 확인해야 한다. NDVI는 필요한 밴드가 있으면 산식으로 직접 계산할 수도 있으며, 본 실습은 딥러닝 회귀와 체크포인트 연결 과정의 검증을 위한 것이다. 실제 식생 상태 평가나 현장 의사결정에 사용하려면 별도의 지역·시기 자료와 독립 기준 자료를 이용한 추가 검증이 필요하다.

2026-10-05

안전 점검표·체크리스트, AI로 만들기 | 안전한국훈련 실무 5편

안전 점검표·체크리스트, AI로 만들기 | 안전한국훈련 실무 5편

안전 점검표는 대상과 판정 기준, 조치까지 담아야 현장에서 실제로 쓰인다. 생성형 AI로 초안을 만들고 사람이 검증해 hwpx 인쇄용 문서로 마무리하는 절차를 정리했다.

📌 3줄 요약

  • 점검표는 대상·주기·판정기준·조치가 있어야 쓸모 있다
  • 법정 항목 누락 막으려면 근거 지침과 AI 교차확인이 필요하다
  • 예/아니오 넘어 조치까지 적는 칸 설계가 핵심이다

점검표를 만들어 본 사람이라면 한 번쯤 이런 경험이 있을 겁니다. 항목은 잔뜩 적었는데 막상 현장에 들고 나가면 "이건 예/아니오만 체크하고 끝이네, 그래서 뭘 어떻게 하라는 거지?"라는 질문이 돌아오는 경우입니다. 점검표는 단순히 빈칸을 채우는 서식이 아니라, 위험을 발견했을 때 누가 무엇을 언제까지 해야 하는지까지 이어지는 '행동 지침서'여야 합니다. 특히 재난안전 분야에서는 점검표 한 줄이 누락되면 실제 사고로 이어질 수 있어서, 법정 항목을 빠뜨리지 않으면서도 현장에서 바로 조치로 연결되는 구성이 중요합니다. 이번 편에서는 AI를 활용해 이런 점검표 초안을 빠르게 만들고, 사람이 반드시 확인해야 할 부분과 hwpx 인쇄용 문서로 마무리하는 순서까지 다뤄보겠습니다.

Side view of crop African American female medic in uniform reading text on paper at work
자료사진 · 사진: Laura James / Pexels

🧩 점검표에 꼭 들어가야 하는 네 가지는 뭔가요?

쓸모 있는 점검표는 대상, 주기, 판정 기준, 조치라는 네 요소가 빠짐없이 있어야 합니다. 대상은 "무엇을 점검하는가"(소화기, 배수로, 비상조명 등)이고, 주기는 "언제 하는가"(일일, 월간, 우기 전)입니다. 판정 기준은 "무엇을 보고 양호·불량을 가르는가"인데, 이게 애매하면 점검자마다 다른 결론을 내립니다. 예를 들어 "배수로가 깨끗한가"보다 "배수로 단면의 50퍼센트 이상이 퇴적물로 막혀 있지 않은가"처럼 구체적이어야 합니다. 마지막으로 조치는 불량 판정이 나왔을 때 누가 언제까지 무엇을 하는지를 적는 칸입니다. 이 네 가지가 다 있어야 점검표가 보고용 서류가 아니라 실제 위험 관리 도구가 됩니다. 홍수 대비 배수시설 점검표라면 이 틀만 지켜도 우기 전 보수 공사 누락을 크게 줄일 수 있습니다.

📋 법정 점검 항목, 어떻게 빠뜨리지 않나요?

점검표에서 가장 위험한 실수는 법령이나 지침에 명시된 항목을 빠뜨리는 것입니다. AI에게 점검표 초안을 맡기더라도, AI는 최신 법령 조문이나 지침 번호를 정확히 알지 못할 수 있으므로 소관 부처 공고와 최신 지침을 직접 확인하는 절차가 반드시 필요합니다. 실무에서 쓰는 방법은, 먼저 담당 부서나 소관 기관 누리집에서 최신 점검 지침 원문을 내려받아 항목을 표로 정리한 다음, 그 표를 AI에게 주고 "이 항목들을 빠짐없이 포함한 점검표로 구성해 달라"고 요청하는 순서입니다. AI가 알아서 법정 항목을 추가해 줄 거라 기대하지 말고, 사람이 먼저 근거 문서를 준비하는 게 핵심입니다. 산불 예방 점검처럼 매년 지침이 조금씩 바뀌는 분야는 특히 연도별 공고를 다시 확인하는 습관이 필요합니다.

✅ '예/아니오'로 안 끝나게 하려면 어떻게 구성하나요?

판정 칸만 있는 점검표는 문제를 발견해도 그다음이 없습니다. 쓸모 있는 구성은 판정, 발견 내용, 조치 사항, 조치 기한, 확인자라는 다섯 칸을 한 세트로 묶는 것입니다. 판정에서 '불량'이 나오면 발견 내용 칸에 구체적으로 무엇이 문제였는지 적고(예: "배수펌프 가동 시 이상음 발생"), 조치 사항에 "교체 부품 발주 후 설치", 조치 기한에 날짜를 쓰고, 확인자가 이를 재확인하는 흐름입니다. 이렇게 하면 점검표 한 장이 위험 발견부터 조치 완료까지 추적 가능한 문서가 됩니다. 산사태 우려 지역 옹벽 점검표에 이 구성을 적용하면, 균열 발견 후 누가 언제 보수했는지가 문서 하나로 남아서 다음 점검자도 이전 이력을 바로 확인할 수 있습니다.

🔍 현장에서 실제로 쓰이는지는 뭘 보고 판단하나요?

점검표는 책상에서 보기엔 완벽해도 현장에서 안 쓰이면 소용이 없습니다. 이건 직접 해봐야 아는 부분입니다. 점검표를 만든 뒤에는 실제 점검자에게 들려 보내고 몇 가지 질문으로 검토해야 합니다. 항목을 순서대로 걸어다니며 체크할 수 있는가, 판정 기준을 읽고 바로 양호·불량을 가를 수 있는가, 비 오는 날이나 어두운 곳에서도 글씨와 칸이 보이는가, 조치 칸을 쓸 공간이 충분한가 하는 것들입니다. 한 번 사용해 보고 "이 칸은 너무 좁다", "이 항목은 순서가 뒤바뀌어서 왔다 갔다 한다" 같은 피드백을 받아 수정하는 과정을 적어도 한 번은 거쳐야 실제로 쓰이는 점검표가 됩니다. 대피소 시설 점검표도 마찬가지로, 실제 대피소 담당자가 한 바퀴 돌아보며 써 보게 한 뒤 수정하는 과정이 꼭 필요합니다.

🖨️ hwpx로 인쇄용 점검표, 어떻게 만드나요?

초안이 다 잡혔으면 현장에서 들고 다닐 인쇄용 문서로 정리해야 합니다. AI로 만든 점검표 초안은 표 형태 텍스트로 받은 뒤, 한글 문서 작성 프로그램에서 표 메뉴로 옮겨 붙이는 방식이 일반적입니다. 이때 점검 항목이 많으면 표가 페이지를 넘어가면서 머리글 행이 깨지지 않는지, 조치 칸의 줄 간격이 손으로 쓰기에 충분한지를 인쇄 미리보기로 꼭 확인해야 합니다. 로고나 기관명이 들어가는 공문서 양식이라면 머리말·꼬리말 메뉴에서 소속과 문서번호 칸을 추가하는 것도 잊지 말아야 합니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 근거 자료 수집
    소관 부처 누리집에서 최신 점검 지침 원문을 내려받아 법정 항목을 표로 정리
  2. AI 초안 요청
    챗봇에 지침 표와 함께 "대상·주기·판정기준·조치 포함해 구성해 달라" 요청
  3. 항목 교차확인
    받은 초안과 지침 표를 나란히 놓고 누락 항목이 있는지 하나씩 대조
  4. 현장 시험
    점검자에게 초안을 들려 보내 칸 크기·순서·판정 기준이 실제로 맞는지 확인
  5. hwpx 옮기기
    한글 프로그램에서 입력 > 표 메뉴로 표를 만들고 AI 초안 내용을 셀마다 붙여넣기
  6. 인쇄 점검
    파일 > 미리보기에서 표가 페이지 경계에서 잘리지 않는지, 글자 크기가 적당한지 확인

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

법정 점검 항목을 반영한 점검표 초안을 표 형태로 받기

역할: 당신은 재난안전 분야 점검표 작성을 돕는 보조자입니다
아래는 [점검 대상, 예: 배수시설]에 관한 법정 지침 항목 목록입니다
[지침에서 정리한 항목 목록을 여기 붙여넣기]
이 항목들을 모두 포함해서 점검표를 표로 만들어 주세요
열 구성은 순서, 점검 항목, 점검 주기, 판정 기준, 발견 내용, 조치 사항, 조치 기한, 확인자로 해 주세요
판정 기준은 "양호/불량"처럼 막연하게 쓰지 말고 구체적인 수치나 상태로 적어 주세요
항목 순서는 실제로 현장을 걸어 다니며 점검하는 동선을 고려해 배치해 주세요
법령 조문 번호나 최신 개정 여부는 추정하지 말고, 확인이 필요하다고 표시해 주세요
확인할 점: 법정 항목 누락 여부, 판정 기준의 구체성, 조치 칸 공간이 실제 작성에 충분한지

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • 소속 기관의 안전 점검 관련 최신 공고문을 찾아 법정 항목을 직접 표로 정리해 보기
  • 기존에 쓰던 점검표를 꺼내 대상·주기·판정기준·조치 네 가지가 다 있는지 점검해 보기
  • 점검표 초안을 동료에게 보여주고 현장에서 바로 쓸 수 있을지 피드백 받아 보기

❓ 자주 묻는 질문

Q. AI가 만든 점검표를 그대로 결재에 올려도 되나요?
A. 안 됩니다. AI는 최신 법령이나 지침 조문을 정확히 모를 수 있어 법정 항목 누락이나 오래된 기준이 섞일 수 있습니다. 반드시 소관 부처 최신 공고와 대조한 뒤 결재에 올려야 합니다.

Q. 점검표 양식은 매년 똑같이 써도 되나요?
A. 지침이나 훈련 규모, 점검 기준이 해마다 바뀌는 경우가 많아서 매년 최신 공고를 다시 확인하는 것이 안전합니다. 작년 양식을 그대로 재사용하기보다 변경 사항을 비교해 반영하는 과정이 필요합니다.

Q. hwpx 변환 기능으로 바로 점검표를 받을 수 있나요?
A. 일부 AI 도구는 문서 변환 기능을 통해 표 형태 결과를 hwpx 파일로 바로 받을 수 있습니다. 다만 표 서식이나 글자 크기가 기관 양식과 다를 수 있어 받은 뒤 인쇄 미리보기로 한 번 더 확인하는 과정이 필요합니다.

점검표는 결국 사람이 현장에서 손에 들고 체크하며 조치까지 이어가는 도구이기 때문에, AI가 만든 초안을 얼마나 꼼꼼히 검증하고 다듬느냐가 실제 안전과 직결됩니다. 다음 편에서는 이렇게 쌓인 점검 기록을 모아 어떻게 월간·연간 안전 보고서로 정리하는지 다뤄보겠습니다.

안전한국훈련 실무 시리즈 5편 · 전체 9편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

NaGeoAI 실제 QGIS 실습 8 | DeepForest 수목 탐지와 좌표 정합 검증

본 실습에서는 NaGeoAI의 DeepForest 수목 탐지 기능을 이용하여 RGB 예제 영상에서 수목 후보를 생성하고, 출력 도형의 좌표계와 영상 정합 상태를 검증하고자 한다. 2026년 10월 5일 QGIS 데스크톱에서 모델 불러오기 → 입력 설정 → 새 추론 → GeoPackage 저장 → 지도 및 속성 검증을 실제 수행하였다.

결과 요약: 점수 임계값 0.3에서 탐지 후보 55개를 생성하였다. 저장 도형은 EPSG:32617이며 모두 유효하고 입력 영상 범위 안에 위치하였다. 이 수치는 실제 나무 수 또는 탐지 정확도를 검증한 결과가 아니다.

1. 플러그인 설치 및 실행 환경

실행 환경은 Windows, QGIS 3.44.12, NaGeoAI 1.9.1 좌표 변환 수정판, DeepForest 2.1.0, PyTorch 2.14.0+cu126이다. 이번 모델 실행 장치는 cpu로 지정하였다. PyTorch 배포에 CUDA 지원이 포함되어 있다는 사실과 이번 실습에서 GPU를 사용했다는 주장은 구분해야 한다.

  1. NaGeoAI-1.9.1-coordinate-fix-20261005.zip 수정판 다운로드를 눌러 ZIP을 내려받는다. 압축을 풀지 않는다.
  2. QGIS의 플러그인 → 플러그인 관리 및 설치 → ZIP에서 설치에서 다운로드한 ZIP을 선택하고 설치한다. 기존 설치가 있으면 프로젝트를 저장하고 QGIS를 종료한 뒤 업데이트한다.
  3. QGIS를 다시 실행하고 NaGeoAI가 활성화되어 있는지 확인한다. NaGeoAI → 필수 환경·모델 설치...에서 필요한 실행 환경을 점검한다. 이미 설치된 항목은 다시 설치하지 않고, 누락된 항목만 준비한다.
  4. 수목 분할 패널의 모델 불러오기를 이용해 DeepForest 모델을 준비한다. 최초에는 인터넷 연결과 모델 다운로드가 필요하며, 캐시가 있어도 모델 설정 확인을 위한 네트워크 요청이 발생할 수 있다.

수정판 ZIP의 SHA256은 D2ED20F65B56ACD74D92C86401F86264D0637EF2BAC564DCBC6499B040B0187C이다. 메타데이터 버전은 1.9.1을 유지하고 파일명으로 좌표 수정판을 구분하였다. 기존 공개 v1.9.1 ZIP과 동일한 파일이 아니므로, 이번 실습에는 위 수정판을 사용한다. 원본 GeoAI의 MIT 라이선스 및 저작권 고지는 ZIP 안에 유지되어 있다.

이번 실행에서는 설치된 수정본을 사용했으며 플러그인을 재설치하는 화면은 새로 촬영하지 않았다. 설치 화면은 이전 설치 실습 1편을 참조한다. 아래 8개 그림은 이번 새 QGIS 실습에서 확보한 실제 화면이다.

2. 예제 영상 다운로드와 입력 자료 확인

  1. OSBS-029.tif 다운로드 링크에서 파일을 내려받는다. 브라우저에서 파일이 표시되면 다운로드 기능으로 TIFF를 저장한다. 확장자가 .tif인지 확인한다.
  2. 예제를 별도 폴더에 보관한다. 본 실습에서는 D:/QGIS_Plugin/SampleData/NaGeoAI/OSBS-029.tif를 사용하였다. 자료를 변경하거나 원본을 덮어쓰지 않는다.
  3. 시작 프로젝트 QGIS_Play.qgz를 연 뒤 레이어를 추가하기 전에 프로젝트 → 다른 이름으로 저장을 선택한다. 본 실습 복사본은 QGIS_Play_NaGeoAI_20261005_trees_verified.qgz이다. 같은 파일명이 있으면 고유 접미사를 붙인다.
  4. TIFF를 QGIS 지도 창에 끌어놓거나 레이어 → 레이어 추가 → 래스터 레이어 추가로 불러온다. 본 실습 레이어 이름은 OSBS-029 RGB이다.
  5. 레이어 속성의 정보에서 400×400 픽셀, RGB 3밴드, 0.1 m 격자, EPSG:32617을 확인한다. 프로젝트 CRS는 이 영상의 EPSG:32617로 설정하였다. 이는 표시 CRS 설정이며 입력 영상을 재투영한 것이 아니다.

영상 범위는 X 404211.9~404251.9 m, Y 3285102.9~3285142.9 m이며 약 40×40 m 영역이다. 시작 프로젝트의 배경지도만으로 분석한 것이 아니라 별도의 분석용 RGB 영상을 사용하였다.

자료 제공 및 다운로드 경로는 DeepForest 배포 예제와 opengeos GeoAI 예제 자료이다. 파일은 설치된 DeepForest의 OSBS_029.tif와 SHA256이 일치하였다: 8521DBB5E8063D37D61895867DFCCA7476491D1345103DC1B3FD96F71B186353. DeepForest 배포의 MIT 라이선스와 공식 샘플 자료 안내를 확인하였다. 본 게시물은 해당 예제의 출처를 표시한 실습 화면을 사용하며, 원본 영상이나 모델 가중치를 GitHub에 재업로드하지 않았다. 자체 자료를 사용할 때에는 별도로 공개·이용 조건을 확인해야 한다.

수목 탐지 단계 1: 실습 프로젝트 복사본과 OSBS RGB 입력 영상 공간정보
그림 1. 실습 복사본과 입력 영상. 레이어 목록, 지도 영상, QGIS 콘솔에서 확인한 EPSG:32617·400×400·0.1 m 정보를 대조한다. 화면을 누르면 원본 크기로 확인할 수 있다.

3. 모델과 입력 영상 설정

NaGeoAI 도구 모음의 나무 아이콘 수목 분할을 눌러 DeepForest 패널을 연다. 패널 이름은 수목 분할이지만, 이번 모델의 결과는 수관의 정밀한 픽셀 경계가 아니라 수목 후보를 둘러싼 사각형 탐지 상자이다. DeepForest 공식 설명도 RGB 영상에서의 bounding box 탐지를 설명한다.

  1. 모델 탭에서 모델을 weecology/deepforest-tree로 선택한다.
  2. 리비전에 cc21436bc5d572dde8ff5f93c1e71a32f563cace를 입력한다. 본 실습은 main 대신 모델 커밋을 고정하였다.
  3. 장치를 cpu로 선택하고 모델 불러오기를 누른다. 상태가 Model: weecology/deepforest-tree loaded로 바뀐 것을 확인한다.
  4. 입력 레이어에서 OSBS-029 RGB를 선택한 뒤 레이어에서 영상 설정을 누른다. 아래 상태에 영상 이름과 400×400 픽셀이 표시되는지 확인한다.

모델의 공개 정보와 MIT 라이선스는 Hugging Face 모델 카드에서 확인할 수 있다. 모델의 학습 자료나 다른 지역에서의 성능 설명을 이번 영상의 검증 정확도로 대체하지 않는다.

수목 탐지 단계 2: DeepForest 모델 리비전 CPU 장치와 영상 설정 완료
그림 2. 모델·리비전·cpu 장치·입력 영상 설정. 모델 로딩 완료와 입력 영상 설정 완료를 각각 확인한다.

4. 예측 입력값과 실행

  1. 예측 탭에서 모드를 Single Image로 선택한다. 400×400의 소형 예제에 적용하였다.
  2. 점수 임계값을 0.30으로 지정한다. 점수가 임계값 이상인 후보를 남기는 기준이며, 실제 나무 여부를 보증하는 값은 아니다.
  3. 예측 실행을 누른 뒤 실행 상태와 완료 메시지를 확인한다. 실행 중 반복해서 버튼을 누르거나 QGIS를 종료하지 않는다.
수목 탐지 단계 3: Single Image와 점수 임계값 0.30 설정
그림 3. Single Image 및 임계값 0.30. 다른 값으로 실행하면 후보 수가 달라질 수 있으므로 입력값을 함께 기록한다.
수목 탐지 단계 4: 실행 직후 DeepForest subprocess 처리 상태
그림 4. 실행 직후 상태 메시지와 진행 표시. 실제 처리가 시작된 화면이며 아직 결과 검증이 완료된 단계는 아니다.
수목 탐지 단계 5: Found 55 detections 완료 메시지와 RGB 영상 위 탐지 상자
그림 5. 완료 메시지 Found 55 detection(s)와 자동 표시 결과. 녹색 내부·적색 외곽선의 사각형은 탐지 후보이며 정밀한 수관 경계가 아니다.

5. GeoPackage 저장과 좌표 검증

  1. 출력 탭에서 형식을 Vector (GeoPackage)로 지정한다. 지도에 추가를 선택한다.
  2. 출력 경로에 D:/QGIS_Plugin/SampleData/NaGeoAI/verification/trees_osbs_20261005_gui_verified.gpkg를 입력한다. 저장 폴더를 먼저 만들고 같은 파일이 있으면 다른 이름을 사용한다.
  3. 결과 저장을 누르고 영구 출력 레이어가 추가되는지 확인한다. 자동 표시된 임시 결과와 영구 파일은 구분한다.
  4. 출력 레이어의 속성에서 EPSG:32617과 좌표 범위를 확인한다. 범위는 X 404211.9~404251.9 m, Y 3285102.9~3285142.9 m로 입력 범위 안에 포함되어야 한다. 좌표가 0~400인데 EPSG:32617만 붙어 있으면 올바른 지도 좌표 결과가 아니다.
  5. 출력 레이어를 오른쪽 클릭하여 속성 테이블 열기를 선택한다. 총 피처 55개, label=Tree, score 및 xmin/ymin/xmax/ymax 필드를 확인한다. xmin 등 속성은 모델의 원래 픽셀 상자 값이고, 도형 geometry는 변환된 지도 좌표이므로 구분한다.

실제 QGIS API와 별도의 파일 읽기 검증을 병행한 결과, 55개 도형 모두 유효하고 입력 영상 범위 안에 위치하였다. score의 최소값은 0.303308, 최대값은 0.798669였다. 화면에 반올림되어 표시된 0.303~0.799와 일치한다.

수목 탐지 단계 6: GeoPackage 저장과 QGIS 도형 유효성 및 영상 범위 포함 검증
그림 6. 영구 출력 경로·형식, 결과 요약 및 콘솔의 OUTPUT 55, EPSG:32617, VALID True, INSIDE True를 확인한다. 개인정보가 포함된 임시 경로가 공개되지 않도록 결과 창의 표시 높이를 줄이고 요약 부분만 표시하였다. 로그 내용을 바꾸거나 결과를 생성 이미지로 대체하지 않았다.
수목 탐지 단계 7: 총 피처 55개와 Tree 라벨 score 픽셀 좌표 속성 테이블
그림 7. 속성 테이블 상세 화면. 제목 표시줄의 총 피처 수와 label·score를 확인하고, 픽셀 상자 필드와 지도 도형 좌표를 혼동하지 않는다.

6. 좌표 오류 원인과 이번 수정의 범위

앞선 실행에서는 QGIS 자체 Python에 rasterio가 없는데도 저장 코드가 예외를 무시하였다. 그 결과 지도 좌표로 변환하지 않은 픽셀 상자에 EPSG:32617을 지정하여 입력 영상과 겹치지 않는 파일을 생성하였다. 모델 실행용 별도 Python 환경에 rasterio가 있다는 사실만으로 QGIS 호스트에도 설치되어 있다고 판단할 수 없었다.

이번 수정판은 QGIS에 포함된 GDAL로 입력 영상의 공간 변환 계수와 CRS를 함께 읽는다. 네 꼭짓점을 지도 좌표로 변환하며, 변환 또는 CRS를 확인할 수 없으면 저장을 중단한다. GDAL의 픽셀→지도 좌표 변환 기준은 공식 GeoTransform 문서를 따른다. 이번 기능의 벡터 출력에서는 rasterio 누락으로 인한 픽셀 좌표 저장을 방지하였지만, 별도 래스터 출력 기능의 의존성까지 모두 제거한 것은 아니다.

코드 수정 후 QGIS Python 런타임의 7개 회귀 테스트를 통과하였고, 본 게시물의 화면은 그 후 QGIS 데스크톱을 새로 열어 모델을 다시 실행한 결과이다. 테스트 통과와 실제 GUI 실행 검증을 구분하여 기록하였다.

7. 프로젝트 저장과 종료

분석 완료 후 임시 자동 표시 레이어의 자료 참조를 영구 GeoPackage로 변경하였다. 프로젝트 → 저장으로 실습 복사본을 저장하고 QGIS의 정상 종료 명령을 실행하였다. 실습 창이 실제로 닫힌 것을 확인했으며 강제 종료하지 않았다. 원본 QGIS_Play.qgz의 SHA256도 유지되었다.

수목 탐지 단계 8: 영구 결과 파일 참조와 실습용 프로젝트 저장 성공
그림 8. 실습 복사본 저장 성공. 콘솔의 SAVED True와 프로젝트 파일명을 확인한다. 이 화면을 확보한 뒤 QGIS를 정상 종료하였다.

8. 적용 시 주의사항

본 실습은 한 장의 공식 예제 영상에 대한 실행과 출력 정합 검증이다. 현장 정답 자료와 비교하지 않았으므로 탐지 정확도, 재현율, 실제 수목 개체 수 또는 수관 면적을 확정할 수 없다. 그림자·수종·촬영 조건·해상도가 달라지면 후보의 오탐과 누락을 별도로 검토해야 한다. 겹치는 사각형을 단순 합산하여 수관 면적을 산출해서도 안 된다.

큰 영상은 Large Tile 및 타일 조건을 별도로 검증해야 한다. 본 실습의 Single Image 결과를 대용량 처리 성능으로 일반화하지 않는다. 출력 좌표가 영상과 겹치는지, 파일 CRS가 올바른지, 도형과 속성이 일관되는지 확인한 후 후속 분석에 적용할 필요가 있다.

모든 그림은 실제 QGIS 화면이며 GitHub 업로드 커밋에 고정한 주소를 사용하였다. 그림을 클릭하면 원본 크기로 확인할 수 있다. 원본 예제 영상·모델 가중치·개인정보가 포함된 로그는 공개 업로드 대상에서 제외하였다.

AI로 회의록·업무 메일 빠르게 정리하기 | 생성형 AI 사용법 7

AI로 회의록·업무 메일 빠르게 정리하기 | 생성형 AI 사용법 7

🎬 1분 브리핑 영상

AI로 회의록·업무 메일 빠르게 정리하기는 녹취나 메모를 구조화된 문서로 바꾸고, 어조와 분량을 지정해 메일 초안까지 뽑는 방법을 알려줍니다.

📌 3줄 요약

  • 녹취·메모를 회의록으로 다듬는 절차를 정리했습니다
  • 결정사항과 할 일을 분리하는 프롬프트를 소개합니다
  • 사람 이름·소속 확인 습관의 중요성을 다룹니다

재난 상황실 회의가 끝나고 나면 다들 녹음기만 끄고 자리를 뜹니다. 누가 정리하느냐는 늘 애매하게 남죠. 메모장에는 "대피소 추가 확보", "oo과 연락 필요" 같은 토막말만 남아 있고, 이걸 보고서 형태로 다듬는 건 또 다른 일입니다. 회의가 많은 조직일수록 이 반복 작업에 쓰는 시간이 만만치 않습니다. 생성형 AI는 이런 토막난 기록을 빠르게 구조화된 글로 바꿔주는 데 꽤 쓸모가 있습니다. 다만 "알아서 잘 정리해줘"라고만 하면 엉뚱한 요약이 나오기 쉽고, 특히 사람 이름이나 소속처럼 틀리면 곤란한 항목은 AI가 그럴듯하게 지어내는 경우도 있어서 확인하는 습관이 반드시 필요합니다. 이번 글에서는 녹취·메모를 다듬는 절차부터 메일 초안 작성까지, 실무에서 바로 쓸 수 있는 흐름을 짚어보겠습니다.

meeting notes laptop
자료사진 · 사진: StartupStockPhotos / Pixabay

📝 녹취나 메모를 회의록으로 바꾸려면 어떤 순서가 좋을까요?

먼저 원본 그대로를 AI에게 전부 보여주는 게 순서입니다. 요약부터 시키면 중요한 맥락이 빠질 수 있으니, 1단계로 "이 내용을 시간 순서대로 정리해줘", 2단계로 "안건별로 묶어줘", 3단계로 "회의록 형식(일시, 참석자, 안건, 논의내용, 결정사항)으로 다시 써줘"처럼 단계를 나누는 편이 결과가 안정적입니다. 한 번에 다 시키면 AI가 임의로 생략하는 부분이 생기기 쉽습니다. 긴 녹취는 분량 제한에 걸릴 수 있으니 안건 단위로 나눠 넣는 것도 방법입니다. 재난 대응 회의처럼 책임 소재가 중요한 자리일수록 이렇게 단계별로 다듬어야 나중에 "누가 뭐라고 했는지"를 복원할 수 있습니다.

✅ 결정사항과 할 일은 어떻게 따로 뽑아내나요?

회의록 본문 안에 결정사항과 할 일이 섞여 있으면 나중에 찾아보기 번거롭습니다. 이럴 때는 완성된 회의록을 다시 붙여넣고 "이 회의록에서 결정사항만 번호 매겨 뽑아줘", 그다음 "담당자와 기한이 명시된 할 일만 표로 정리해줘"처럼 목적을 분리해서 요청하는 게 핵심입니다. 표로 뽑으면 담당자 열과 기한 열이 비어 있는 항목이 한눈에 보여서, 회의 중 놓친 부분을 바로 확인할 수 있습니다. 홍수 대응 회의라면 "배수펌프 추가 배치는 누가, 언제까지"처럼 할 일 표가 바로 초동 조치 체크리스트로 쓰일 수 있어서, 이 분리 작업이 보고서 품질을 꽤 좌우합니다.

✉️ 업무 메일 초안, 어조와 분량은 어떻게 지정하나요?

"메일 써줘"라고만 하면 AI가 임의로 정중함의 정도나 길이를 정해버립니다. 수신자가 상급기관인지 유관기관 실무자인지에 따라 어조가 달라져야 하므로, "oo과 과장님께 보고하는 격식 있는 어조로, 5문장 이내로 써줘"처럼 수신자와 분량, 어조를 같이 지정해야 합니다. 분량을 숫자로 제한하지 않으면 불필요하게 길어지는 경우가 많습니다. 초안을 받은 뒤 "둘째 문단을 좀 더 간결하게", "마지막 문장에 회신 기한을 넣어줘"처럼 부분 수정을 요청하면 처음부터 다시 쓰는 것보다 훨씬 빠릅니다. 산사태 경보 발령 후 유관기관에 협조 요청 메일을 보낼 때도 이런 식으로 어조를 통제하면 과하게 긴급하거나 반대로 느슨한 인상을 주는 실수를 줄일 수 있습니다.

🔍 사람 이름이나 소속은 왜 꼭 따로 확인해야 하나요?

생성형 AI는 문맥상 그럴듯한 이름이나 직함을 만들어내는 경우가 있습니다. 녹취에 정확히 나오지 않은 부분을 AI가 앞뒤 맥락으로 추측해 채워 넣기 때문인데, 이게 회의록이나 공문에 그대로 들어가면 실수가 외부로 나갑니다. 그래서 완성된 문서에서 사람 이름, 직책, 소속 기관명이 나오는 부분만 따로 모아 원본 녹취나 참석자 명단과 하나씩 대조하는 습관이 필요합니다. 이건 AI가 대신해줄 수 없는, 사람이 직접 해봐야 아는 부분입니다. 재난 대응처럼 외부 기관과의 공식 문서가 많은 업무에서는 이 확인 절차를 생략하면 신뢰도에 직접 영향을 주므로, 짧더라도 반드시 거쳐야 할 단계로 삼는 게 좋습니다.

📂 정리한 문서를 바로 파일로 받을 수 있나요?

도구에 따라 대화창에서 완성한 글을 문서 파일로 바로 내려받는 기능을 제공하기도 합니다. 예를 들어 "이 회의록을 한글(hwpx) 문서로 만들어줘"나 "표 형식을 유지한 워드 파일로 내려받게 해줘"처럼 요청하면, 지원하는 도구는 서식이 어느 정도 갖춰진 파일을 바로 내놓습니다. 다만 표 칸이 밀리거나 글머리 기호가 깨지는 경우가 종종 있어서, 받은 파일을 열어 레이아웃을 한 번 훑어보는 과정은 빼놓을 수 없습니다. 기능 지원 여부와 형식은 도구와 버전마다 다르므로 미리 당연하게 되는 것으로 가정하지 않는 게 안전합니다. 훈련 평가보고서나 상황보고처럼 정해진 양식이 있는 문서는, 이 기능으로 초안 뼈대만 잡고 양식에 맞춰 사람이 다시 다듬는 방식이 현실적입니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 원본 입력
    대화창에 녹취 전문이나 메모를 그대로 붙여넣고 "시간 순서대로 정리해줘"라고 요청
  2. 안건별 정리
    "안건별로 묶어줘"라고 추가 요청해 주제 단위로 재구성
  3. 회의록 형식화
    "일시·참석자·안건·결정사항 항목으로 회의록 형식으로 써줘"라고 지정
  4. 결정사항 분리
    완성본을 다시 붙여넣고 "결정사항만 번호로 뽑아줘"라고 요청
  5. 할 일 표 작성
    "담당자와 기한이 있는 할 일만 표로 정리해줘"라고 요청해 표 생성
  6. 이름·소속 대조
    받은 문서에서 사람 이름·직책 부분만 따로 모아 원본과 하나씩 대조(메뉴 명칭은 도구마다 다르므로 설정이나 내보내기 메뉴를 직접 찾아본다)

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

막연한 요청 대신 맥락을 준 회의록 정리 프롬프트

너는 공공기관 회의록 작성을 돕는 보조자야
아래는 [회의 주제] 회의의 녹취 또는 메모야
형식은 일시, 참석자, 안건, 논의내용, 결정사항 순서로 정리해줘
원문에 없는 내용은 추측해서 채우지 말고 빈 칸으로 남겨줘
[여기에 녹취나 메모 붙여넣기]

수신자와 어조, 분량을 지정한 업무 메일 초안 프롬프트

너는 [기관명] 실무자를 대신해 메일 초안을 쓰는 보조자야
수신자는 [수신 기관/직책]이고 어조는 격식 있고 간결하게 써줘
분량은 5문장 이내로 제한하고 마지막 문장에 회신 기한을 넣어줘
내용은 다음과 같아: [전달할 핵심 내용]

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • 최근 회의 메모를 AI에게 단계별로 나눠 정리시켜보고 결과를 원본과 비교해보기
  • 같은 내용으로 어조만 바꿔 메일 초안 두 개를 받아 차이 느껴보기
  • 완성된 문서에서 사람 이름·소속 부분만 형광펜으로 표시해 원본과 대조해보기

❓ 자주 묻는 질문

Q. AI가 정리한 회의록을 그대로 공식 문서로 써도 되나요?
A. 초안으로는 유용하지만 사람 이름, 소속, 숫자처럼 틀리면 안 되는 항목은 반드시 원본과 대조한 뒤 제출하는 게 안전합니다.

Q. 녹취 파일을 통째로 넣으면 안 되나요?
A. 도구마다 한 번에 처리할 수 있는 분량 제한이 다르므로, 안건이나 시간 단위로 나눠 넣는 편이 누락을 줄입니다.

Q. 메일 어조를 구체적으로 어떻게 지정하나요?
A. 수신자의 직급이나 관계, 원하는 문장 수를 함께 적어주면 AI가 훨씬 안정적인 결과를 냅니다.

녹취와 메모를 구조화하고, 결정사항과 할 일을 분리하고, 어조를 지정해 메일을 쓰는 이 흐름은 결국 사람이 확인하는 습관과 짝을 이룰 때 제 역할을 합니다. 다음 편에서는 이렇게 정리한 문서를 여러 사람이 함께 검토하고 고치는 과정에서 AI를 어떻게 활용할 수 있는지 살펴보겠습니다.

생성형AI 사용법 시리즈 7편 · 전체 15편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

2026-10-04

위성영상 변화탐지 | 같은 곳을 다른 시점으로 비교하기 | GeoAI 기초 19편

위성영상 변화탐지 | 같은 곳을 다른 시점으로 비교하기 | GeoAI 기초 19편

위성영상 변화탐지는 같은 장소를 다른 시점에 찍은 영상을 비교해 변화를 찾아내는 기술로, 전후 비교와 시계열 분해의 차이부터 가짜 변화를 가려내는 법까지 다룹니다.

📌 3줄 요약

  • 전후비교는 두 장, 시계열분해는 추세와 계절성을 가른다
  • 그림자·조수·계절차가 가짜 변화로 오인되기 쉽다
  • 개발·침수·붕괴 판독엔 서로 다른 변화탐지 전략이 필요하다

작년 이맘때 찍은 위성사진과 오늘 찍은 사진을 나란히 놓고 보면, 분명 뭔가 달라 보입니다. 숲이었던 자리가 갈색으로 변했거나, 강가의 경계선이 넓어졌거나. 그런데 이게 정말 산사태나 침수 때문일까요, 아니면 그냥 촬영한 날의 햇빛 각도나 계절이 달라서 그렇게 보이는 걸까요.

변화탐지는 말 그대로 두 시점 이상의 영상을 비교해서 달라진 부분을 찾는 작업입니다. 원리는 간단해 보이지만, 실제로는 진짜 변화와 가짜 변화를 가려내는 일이 훨씬 어렵습니다. 재난 현장에서 오탐 하나가 잘못된 대피 지시나 엉뚱한 구조 출동으로 이어질 수 있기 때문에, 이 개념을 정확히 이해하고 쓰는 게 중요합니다.

Satellite before-after comparison
자료사진 · 사진: mmisof / Pixabay

🛰️ 전후 비교와 시계열 분해, 뭐가 다른가요?

전후 비교는 재난 전 영상 한 장과 재난 후 영상 한 장, 딱 두 시점을 겹쳐서 달라진 픽셀을 찾는 방식입니다. 지진이나 산사태처럼 특정 사건 전후를 빠르게 봐야 할 때 유용합니다. 반면 시계열 분해는 수십, 수백 장의 영상을 길게 쌓아 놓고 추세(꾸준히 늘거나 주는 변화), 계절성(해마다 반복되는 패턴), 그리고 나머지 불규칙한 변화를 수학적으로 분리합니다. 농경지가 매년 반복하는 작황 변화인지, 아니면 올해만 유난히 이상한 건지 구분할 수 있는 거죠. 전후 비교는 빠르고 직관적이지만 우연히 그날 조건이 특이했을 경우를 걸러내기 어렵고, 시계열 분해는 데이터가 많이 필요한 대신 장기적인 토지 변화나 산불 위험지 확산처럼 패턴을 보는 데 강합니다. 재난 대응 속도가 중요한 홍수 초기 대응은 전후 비교, 산사태 위험지역 모니터링처럼 누적 추세를 봐야 하는 경우는 시계열 분해가 더 어울립니다.

🌤️ 계절과 촬영 조건이 왜 가짜 변화를 만드나요?

같은 장소라도 여름과 겨울에 찍으면 식생의 색과 밀도가 완전히 다릅니다. 겨울에는 낙엽이 져서 토양이 드러나니 마치 숲이 사라진 것처럼 보일 수 있고, 비가 온 뒤 토양 수분이 높으면 반사율이 낮아져 실제로는 아무 일 없었는데도 변화로 잡힙니다. 촬영 시각에 따른 태양 고도 차이도 그림자 길이를 바꿔서 건물이나 산지의 경계를 다르게 보이게 만듭니다. SAR(합성개구레이더, 전파를 쏴서 반사되는 신호로 영상을 만드는 방식) 영상이라면 촬영 각도나 궤도 방향이 달라졌을 때도 같은 지형이 다르게 찍힙니다. 이런 가짜 변화를 줄이려면 가능한 한 비슷한 계절, 비슷한 시간대, 비슷한 궤도 조건의 영상을 골라 비교하는 게 기본입니다. 그래서 변화탐지 결과를 볼 때는 항상 두 영상의 촬영 날짜와 조건을 먼저 확인하는 습관이 필요하고, 이는 산불 피해지 판독처럼 계절성 식생 변화가 큰 지역에서 오탐을 줄이는 핵심 절차입니다.

🏗️ 개발로 인한 변화는 어떻게 읽나요?

도시 개발로 인한 변화는 보통 명확한 기하학적 패턴을 띱니다. 논밭이나 산지였던 곳에 직선 도로와 사각형 건물 배치가 생기면 변화탐지 알고리즘이 반사율 차이뿐 아니라 형태의 규칙성까지 함께 잡아내는 경우가 많습니다. 다만 공사장은 단계별로 모습이 계속 바뀌기 때문에, 한 시점의 전후 비교만으로는 공사 중인지 이미 완료됐는지 헷갈릴 수 있습니다. 이럴 때는 여러 시점을 연속으로 쌓아서 변화의 진행 방향을 확인하는 게 안전합니다. 불법 산지 개발이나 무허가 성토 작업을 감시할 때도 같은 원리가 쓰입니다. 특정 지역에서 식생 지수가 갑자기 뚝 떨어지고 그 상태가 계속 유지된다면, 일시적인 벌목이 아니라 영구적인 개발일 가능성이 높다고 판단하는 식입니다. 이런 식으로 변화의 지속성을 확인하는 절차는 산지 훼손이나 불법 매립 같은 재난 전조를 조기에 포착하는 데 활용됩니다.

💧 침수와 붕괴는 변화탐지에서 어떻게 다르게 보이나요?

침수는 물이 차오르면서 지표면을 넓게 덮기 때문에, 광학 영상에서는 어둡고 매끈한 색으로, SAR 영상에서는 반사가 거의 없어 검게 나타나는 특징이 있습니다. 변화탐지에서는 평소 마른 땅이었던 구간이 갑자기 이런 특징을 보이면 침수로 판단합니다. 반면 건물 붕괴나 산사태는 국소적이고 불규칙한 패턴으로 나타납니다. 멀쩡하던 직선 형태의 건물 윤곽이 사라지거나, 산비탈의 식생 패턴이 흙과 돌이 드러난 불규칙한 무늬로 바뀌는 식입니다. 침수는 넓은 면적에 걸쳐 비교적 단순한 변화라서 자동 탐지가 수월한 편이지만, 붕괴는 그림자나 잔해 더미 때문에 오인식이 잦아서 사람이 직접 영상을 확대해 확인하는 과정이 꼭 필요합니다. 재난 상황실에서는 이 둘을 구분해서, 침수는 자동 알고리즘으로 넓은 범위를 빠르게 스캔하고, 붕괴 의심지역은 고해상도 영상으로 추가 확인하는 이원화된 절차를 쓰는 경우가 많습니다.

🔍 가짜 변화인지 진짜 변화인지는 어떻게 확인하나요?

알고리즘이 변화라고 표시한 모든 픽셀을 다 믿을 수는 없습니다. 해봐야 아는 것이 바로 이 부분인데, 의심되는 지역을 다른 출처의 영상이나 지상 사진, 뉴스 보도, 현장 신고와 교차 확인하는 절차가 반드시 필요합니다. 예를 들어 변화탐지 결과에서 특정 농지가 갑자기 어두워졌다면, 그게 침수인지 단순히 추수 후 땅을 갈아엎은 것인지는 같은 시기 다른 지역의 농경 패턴과 비교해봐야 구분됩니다. 또한 구름 그림자나 센서의 일시적 오류도 변화로 잘못 잡힐 수 있어서, 하루 전이나 다음 날 영상을 추가로 확인하는 습관이 오탐을 크게 줄여줍니다. 이런 교차검증 절차는 특히 대피 명령처럼 실제 행동으로 이어지는 판단 앞에서는 생략할 수 없는 단계이며, 자동 탐지 결과를 1차 스크리닝으로만 쓰고 최종 판단은 사람이 내리는 체계가 재난 현장에서 권장됩니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 영상 두 장 준비
    공개 위성영상 사이트(예: Sentinel Hub, USGS EarthExplorer)에서 같은 지역 두 시점 영상 내려받기
  2. 레이어 불러오기
    GIS 프로그램에서 레이어 > 레이어 추가 > 래스터 레이어로 두 영상 등록하기
  3. 촬영조건 확인
    메타데이터 창에서 촬영 날짜·시간·궤도 방향 비교해 조건 차이 메모하기
  4. 밴드 연산 실행
    래스터 > 래스터 계산기 열어 (영상2 - 영상1) 식으로 차영상 만들기
  5. 결과 시각화
    생성된 차영상을 레이어 속성 > 심볼로지에서 색상 대비 강조해 변화 구간 확인하기
  6. 교차 검증
    변화로 표시된 구역을 고해상도 지도나 뉴스·현장 사진과 대조해 오탐 여부 점검하기

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

변화탐지 결과를 보고할 때 가짜 변화 가능성을 점검하는 체크리스트 받기

너는 위성영상 변화탐지 결과를 검수하는 GIS 분석 보조야. 내가 [분석 대상 지역]에서 [재난 유형, 예: 침수/산사태/산불]을 탐지한 결과를 보고서로 작성하려고 해. 두 영상의 촬영일은 [날짜1]과 [날짜2]이고 계절 차이는 [있음/없음]이야. 아래 형식으로 답해줘.
1) 이 조건에서 발생할 수 있는 가짜 변화 원인 3가지
2) 각 원인을 구분하기 위해 확인해야 할 영상 특징
3) 보고서에 반드시 명시해야 할 주의 문구 한 줄
확인하지 못한 사실은 추측해서 단정하지 말고 "현장 확인 필요"라고 표시해줘.

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • 공개 위성영상 사이트에서 같은 지역의 여름과 겨울 영상을 받아 색 차이를 직접 비교해보기
  • 뉴스에 나온 재난 전후 비교 사진을 보고 그림자나 촬영각도 차이가 있는지 살펴보기
  • 무료 GIS 프로그램으로 두 영상의 차영상을 만들어 변화 구간이 실제 지형과 맞는지 확인해보기

❓ 자주 묻는 질문

Q. 변화탐지에 꼭 SAR 영상을 써야 하나요?
A. 아닙니다. 광학 영상도 널리 쓰이며, 구름이 많은 지역이나 야간 관측이 필요할 때 SAR이 유리할 뿐 상황에 따라 선택이 달라집니다.

Q. 전후 비교만으로 재난 피해를 확정해도 되나요?
A. 권장되지 않습니다. 가짜 변화 가능성이 있으므로 현장 확인이나 추가 영상 교차검증을 거친 뒤 최종 판단하는 것이 안전합니다.

Q. 시계열 분해에는 영상이 몇 장쯤 필요한가요?
A. 정해진 기준은 없고 분석 목적과 주기에 따라 다릅니다. 계절성을 분리하려면 최소 1년 이상의 주기를 포함하는 데이터가 일반적으로 권장됩니다.

위성영상 변화탐지는 두 장의 사진을 겹쳐보는 단순한 작업처럼 보이지만, 그 이면에는 계절과 촬영조건이 만드는 수많은 함정이 숨어 있습니다. 다음 편에서는 이렇게 탐지된 변화를 AI가 어떻게 자동으로 분류하고 라벨링하는지, 그 학습 과정의 원리를 살펴보겠습니다.

GeoAI 기초 시리즈 19편 · 전체 43편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

공간 자기상관과 핫스팟 분석 | 가까운 것은 닮는다 | GeoAI 기초 18편

공간 자기상관과 핫스팟 분석 | 가까운 것은 닮는다 | GeoAI 기초 18편

🎬 1분 브리핑 영상

공간 자기상관과 핫스팟 분석은 사고나 재난이 특정 지역에 몰려 발생하는지, 그저 우연인지를 숫자로 구분하는 방법을 알려준다.

📌 3줄 요약

  • 토블러의 법칙, 가까운 곳은 멀리보다 서로 닮는다는 원리
  • Moran's I로 공간 패턴이 우연인지 군집인지 확인한다
  • Getis-Ord 핫스팟으로 사고·재난 집중 지역을 찾아낸다

어느 지역의 교통사고 지도를 펼쳐 놓고 보면, 사고가 유독 몰려 있는 구간이 눈에 띕니다. 이걸 보고 누군가는 "여기가 위험한 곳이네"라고 말하지만, 또 누군가는 "우연히 점이 몰려 보이는 것뿐"이라고 반박할 수 있습니다. 둘 다 그럴듯해 보이는 게 문제입니다. 사람 눈은 무작위로 흩어진 점에서도 괜히 패턴을 찾아내는 버릇이 있거든요. 이럴 때 필요한 게 공간 통계입니다. 어떤 지역이 진짜로 주변과 다르게 사고나 재난이 몰리는지, 아니면 그냥 점이 듬성듬성 찍히다 보니 그렇게 보이는 건지를 통계적으로 검증하는 도구가 바로 공간 자기상관과 핫스팟 분석입니다.

color-coded density map
자료사진 · 사진: lucasgeorgewendt / Pixabay

🗺️ 토블러의 제1법칙이 뭔가요?

지리학자 월도 토블러는 "모든 것은 다른 모든 것과 관련 있지만, 가까운 것이 먼 것보다 더 관련 있다"고 했습니다. 이걸 토블러의 제1법칙이라고 부릅니다. 쉽게 말하면 옆집과 우리 집은 날씨도 비슷하고 집값도 비슷할 가능성이 높지만, 다른 나라에 있는 집과는 그렇지 않다는 뜻입니다. 이 법칙은 너무 당연해 보이지만, 공간 데이터를 다루는 모든 통계의 전제가 됩니다. 일반 통계는 데이터가 서로 독립적이라고 가정하는데, 공간 데이터는 이웃끼리 닮아 있어서 그 가정이 깨지기 때문입니다. 재난 데이터도 마찬가지입니다. 산사태가 난 지점 옆 사면은 지질이나 경사가 비슷해서 산사태 위험도 비슷하게 나타나는 경우가 많습니다. 이런 이웃 효과를 무시하고 지점 하나하나를 독립된 사건으로만 보면, 왜 피해가 특정 골짜기에 몰렸는지 설명하기 어려워집니다.

📊 Moran's I는 뭘 알려주나요?

Moran's I는 공간 자기상관을 숫자 하나로 요약한 지표입니다. 값은 보통 -1에서 1 사이로 나오는데, 1에 가까우면 비슷한 값끼리 뭉쳐 있다는 뜻이고(군집), -1에 가까우면 비슷한 값끼리 멀리 떨어져 체스판처럼 번갈아 나타난다는 뜻이고(분산), 0에 가까우면 무작위에 가깝다는 뜻입니다. 중요한 건 이 값 자체보다 "이 패턴이 우연히 나올 확률은 얼마나 되는가"를 같이 봐야 한다는 점입니다. 보통 p-value(우연히 이런 결과가 나올 확률)라는 수치를 같이 확인해서, 이 값이 충분히 작아야 "진짜 패턴이 있다"고 말할 수 있습니다. 예를 들어 홍수 피해 신고가 들어온 지역의 Moran's I를 구했는데 값이 높고 p-value도 작다면, 피해가 특정 저지대에 몰려 있다는 걸 통계적으로 뒷받침할 수 있습니다. 반대로 값이 낮으면 피해가 지역 전체에 고르게 흩어져 있다는 뜻이니, 배수 시설 같은 국지적 원인보다 전반적인 강우량을 먼저 의심해봐야 합니다.

🔥 핫스팟(Getis-Ord)은 뭐가 다른가요?

Moran's I가 "전체적으로 패턴이 있는가"를 하나의 숫자로 말해준다면, Getis-Ord Gi*(지스타)는 "그럼 구체적으로 어디가 뜨거운 곳(핫스팟)이고 어디가 차가운 곳(콜드스팟)인가"를 지점마다 짚어줍니다. 각 지점과 그 주변 이웃들의 값을 비교해서, 주변 전체보다 유의미하게 높은 값이 몰린 곳을 핫스팟으로, 유의미하게 낮은 값이 몰린 곳을 콜드스팟으로 표시합니다. 결과는 보통 신뢰도에 따라 90%, 95%, 99% 구간으로 나눠 지도에 색을 입혀 보여줍니다. 산불 발생 이력 데이터에 이 분석을 돌리면, 단순히 점이 많은 곳이 아니라 통계적으로 유의미하게 발화가 집중된 구역을 짚어낼 수 있습니다. 이렇게 뽑힌 핫스팟은 예방 순찰 경로나 감시 카메라 배치 우선순위를 정하는 근거 자료로 쓰이곤 합니다.

🚗 사고 데이터에 어떻게 적용하나요?

교통사고나 응급 신고처럼 점 형태로 쌓인 데이터는 핫스팟 분석과 궁합이 좋습니다. 다만 주의할 점이 있는데, 점 데이터를 그대로 쓰기보다 격자(일정 크기의 네모 칸)나 행정구역 단위로 집계한 다음 분석하는 경우가 많습니다. 점 하나하나의 위치 오차나 우연한 쏠림을 줄이기 위해서입니다. 또 하나 중요한 건 이웃을 어떻게 정의하느냐에 따라 결과가 달라진다는 점입니다. 거리 기준으로 500미터 안을 이웃으로 볼지, 인접한 행정구역만 이웃으로 볼지에 따라 핫스팟의 모양과 범위가 바뀝니다. 그래서 이 기준값은 정답이 정해져 있다기보다 해봐야 아는 것에 가깝습니다. 여러 거리값으로 반복해서 돌려보고, 결과가 크게 흔들리지 않는 안정적인 구간을 찾는 과정이 필요합니다. 이런 식으로 찾아낸 사고 핫스팟은 교통안전시설 개선이나 대피소 접근로 점검 같은 실제 조치의 우선순위를 정하는 데 쓰입니다.

⚠️ 핫스팟 분석, 이것만은 주의하세요

핫스팟 분석은 "어디가 위험한가"를 보여주지, "왜 위험한가"는 말해주지 않습니다. 원인 분석은 별개의 작업입니다. 또 데이터가 적은 지역은 우연히 몇 건만 몰려도 핫스팟처럼 보일 수 있어서, 표본 수가 충분한지 꼭 확인해야 합니다. 행정구역 경계를 바꾸면 결과도 달라지는 현상(가변 공간단위 문제라고 부릅니다)도 알아두면 좋습니다. 분석 단위를 읍면동으로 하느냐 1km 격자로 하느냐에 따라 핫스팟 모양이 달라질 수 있다는 뜻입니다. 재난 대응 현장에서는 이 분석 결과를 유일한 근거로 쓰기보다, 현장 조사나 다른 통계와 함께 교차 확인하는 보조 도구로 쓰는 게 안전합니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 데이터 준비
    사고·재난 지점의 위도경도가 담긴 표(csv)나 포인트 레이어를 준비한다
  2. QGIS 설치 확인
    QGIS 실행 후 플러그인 메뉴에서 공간 통계 관련 도구 설치 여부를 본다(버전마다 위치가 다를 수 있다)
  3. 레이어 불러오기
    레이어 > 레이어 추가 > 벡터 레이어에서 csv나 shp 파일을 불러온다
  4. 공간 가중치 설정
    처리 도구상자에서 '거리 기반 가중치' 혹은 '인접 기반 가중치' 도구를 검색해 실행한다
  5. Moran's I 실행
    처리 도구상자에서 'Moran's I' 또는 '공간 자기상관' 검색 후 대상 필드를 지정해 실행한다
  6. 결과 확인
    출력된 Moran's I 값과 p-value를 로그 패널에서 확인하고 지도에 색상으로 표시해본다

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

공간 자기상관 분석 결과를 보고서 문장으로 풀어쓰기

역할은 공간통계를 쉽게 설명하는 GIS 분석가다
아래 분석 결과를 바탕으로 비전문가도 이해할 수 있는 2~3문단 요약을 작성해줘
분석 대상은 [분석 대상, 예: 2024년 교통사고 발생 지점]이고
Moran's I 값은 [수치], p-value는 [수치]이다
핫스팟으로 분류된 지역은 [지역명 목록]이다
통계 용어는 괄호 안에 쉬운 설명을 덧붙이고
확인되지 않은 원인은 추측하지 말고 "추가 조사가 필요하다"고만 표현해줘
결과는 보고서 서론에 들어갈 문단 형식으로 작성해줘

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • QGIS나 공개 GIS 도구에서 자기 지역 사고 데이터를 불러와 지도에 점으로 찍어본다
  • 같은 데이터로 격자 크기를 다르게(500m, 1km) 해서 핫스팟 결과가 어떻게 달라지는지 비교해본다
  • 뉴스나 공공데이터포털에서 받은 재난 신고 통계로 Moran's I를 직접 계산해보고 p-value를 확인한다

❓ 자주 묻는 질문

Q. Moran's I 값이 높으면 무조건 위험 지역인가요?
A. 아닙니다. 값이 높다는 건 비슷한 값끼리 뭉쳐 있다는 뜻일 뿐이고, 그 값 자체가 낮은 수준에서 뭉쳐 있을 수도 있습니다. 반드시 원래 데이터의 크기와 함께 해석해야 합니다.

Q. 핫스팟 분석과 그냥 지도에 점 많은 곳 찾는 것의 차이는 뭔가요?
A. 점이 많아 보여도 전체 데이터 양이 많으면 우연히 그럴 수 있습니다. 핫스팟 분석은 주변과 비교해 통계적으로 유의미하게 쏠렸는지를 검증한다는 점이 다릅니다.

Q. 이 분석에 필요한 최소 데이터 양이 있나요?
A. 정해진 기준은 없지만 표본이 너무 적으면 결과가 불안정해집니다. 여러 기간이나 단위를 바꿔가며 결과가 일관되게 나오는지 직접 확인해보는 게 안전합니다.

가까운 곳은 서로 닮는다는 단순한 생각이 공간 통계의 출발점이 되고, 그 생각을 숫자로 검증하는 순간 지도 위의 느낌은 근거 있는 판단으로 바뀝니다. 다음 편에서는 이렇게 찾아낸 핫스팟을 시간 축까지 더해 "언제, 어디서" 위험이 반복되는지 살펴보는 시공간 분석을 다뤄보겠습니다.

GeoAI 기초 시리즈 18편 · 전체 43편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

NaGeoAI 실제 QGIS 실습 7 | OpenSR 초해상도와 4배 출력 격자 검증

본 실습에서는 NaGeoAI의 OpenSR 초해상도 기능을 QGIS 데스크톱에서 실행하고, 생성된 GeoTIFF의 크기, 픽셀 간격, 좌표계 및 유효값을 검증하였다. 2026년 10월 4일 실제 실행 화면을 단계별로 제시한다. 픽셀 회귀는 학습된 Lightning 체크포인트가 준비되지 않아 후속 실습으로 남겨 두었다.

1. 실습 목적과 검증 범위

Sentinel-2 예제 영상에서 128×128 픽셀의 관심영역을 추출하여 RGB 및 근적외선(NIR) 4개 밴드를 처리한다. 입력 10 m 격자가 출력 2.5 m 격자로 변환되고 공간 범위가 유지되는지를 확인하는 것이 목적이다. 2.5 m 출력 간격은 관측 해상도나 위치 정확도가 2.5 m로 향상되었다는 의미가 아니다. 고해상도 참조 영상이 없으므로 복원 정확도, PSNR, SSIM 및 객체 판독 성능은 평가하지 않았다.

2. 플러그인 설치와 필수 환경 확인

  1. NaGeoAI-1.9.1.zip을 내려받는다. ZIP 파일은 압축을 풀지 않은 상태로 설치한다.
  2. QGIS의 플러그인 → 플러그인 관리 및 설치 → ZIP에서 설치에서 내려받은 파일을 선택하고 NaGeoAI를 활성화한다.
  3. NaGeoAI → 필수 환경·모델 설치에서 AI 환경, opensr-model 및 OpenSR 모델의 준비 상태를 확인한다. 누락된 항목만 설치·다운로드하고 이미 설치된 항목은 건너뛴다.
  4. 이번 실행은 QGIS 3.44.12에 이미 설치된 NaGeoAI 1.9.1을 사용하였다. 재설치를 수행하지 않았으므로 새 설치 화면으로 표시하지 않는다. 실제 과거 설치 과정은 실습 1: 설치부터 NAIP 변화탐지까지를 참고한다.

opensr-model 1.1.1과 opensr-ldsrs2_v1_0_0.ckpt의 존재를 확인하였다. 체크포인트는 1,130,715,795 바이트이며 SHA-256은 e2621e3912eb7c14867c3d20c9029607ba941be8e166dc09621860fcac27dc3a이다. 설치 검사값과 실제 파일 해시가 일치하였다. 모델 설정 파일은 실행 시 인터넷에서 읽으므로 모델이 설치되어 있어도 네트워크 연결이 필요하다.

3. 예제 파일 다운로드와 관심영역 준비

Sentinel-2 6밴드 예제 GeoTIFF 다운로드를 열어 파일을 저장한다. 출처는 Source Cooperative의 opengeos/geoai 예제 자료이다. 파일명은 2019년 3월 18일 Sentinel-2 L2A 자료를 나타낸다. 배포 파일 자체의 별도 버전은 확인되지 않았다. 원본 예제와 모델은 이 글의 GitHub 이미지 폴더에 재배포하지 않았다. Sentinel 자료의 기본 이용 정책은 Copernicus 이용 조건을 확인한다. 화면은 해당 예제로 직접 실행한 파생 결과이며 교재의 그림을 복제하지 않았다.

원본은 760×711 픽셀, 6밴드 UInt16, 파일에 기록된 CRS는 EPSG:32647, 픽셀 간격은 10 m이다. 밴드 순서는 B2, B3, B4, B8, B11, B12이다. 원본은 보존하고 GDAL의 아래 명령으로 열 오프셋 300, 행 오프셋 250부터 128×128 영역을 별도 추출하였다. 재표본화는 수행하지 않았다. 출력 파일이 이미 있으면 새 이름을 사용한다.

gdal_translate -srcwin 300 250 128 128 -co COMPRESS=LZW S2A-L2A-20190318-N0211-R061-6Bands-S2.tif s2_roi128_20261004.tif

4. 시작 프로젝트를 보존하고 입력 레이어 확인

QGIS에서 QGIS_Play.qgz를 연 다음, 분석 레이어를 추가하기 전에 프로젝트 → 다른 이름으로 저장으로 QGIS_Play_NaGeoAI_20261004_superresolution.qgz 복사본을 만든다. 이번 실행은 QGIS GUI의 Python 콘솔에서 QgsProject.read, setFileName, write를 호출하여 원본 열기와 복사본 저장을 수행하고 저장 성공과 현재 파일명을 확인하였다. 원본의 SHA-256은 작업 전후 동일하였다.

레이어 → 레이어 추가 → 래스터 레이어 추가로 관심영역 파일을 불러온다. 이번 실행에서는 QGIS 콘솔의 iface.addRasterLayer로 동일한 레이어를 추가하였다. 프로젝트 표시 CRS를 입력 CRS에 맞춘 것은 복사본에만 적용하였다. 첫 화면의 기본 RGB 표시가 파일의 밴드 1·2·3을 사용하더라도 모델 입력은 다음 단계에서 반드시 3·2·1·4로 지정한다. 화면 색상만으로 입력·출력의 성능을 비교하지 않는다.

초해상도 단계 1: 프로젝트 복사본, 입력 관심영역 및 설정값
그림 1. 실제 QGIS 프로젝트 복사본, 입력 레이어와 NaGeoAI 설정 화면. 콘솔에서 입력 유효성, EPSG:32647, 128×128 크기와 10 m 간격을 확인하였다. 클릭하면 원본 크기로 볼 수 있다.

5. NaGeoAI 초해상도 입력값 지정과 실행

  1. NaGeoAI 도구 모음의 추가 분석을 열고 기능 목록에서 초해상도를 선택한다.
  2. 입력 래스터는 s2_roi128_20261004.tif로 지정한다.
  3. R,G,B,NIR 밴드는 3,2,1,4, 샘플링 단계는 50으로 입력한다.
  4. 출력은 기존 파일과 겹치지 않는 s2_sr4x_20261004.tif로 지정하고 공간 결과를 지도에 추가를 체크한다.
  5. 실행을 누른 후 시작 로그와 완료 로그를 확인한다. 기본 처리 배율은 4배이며 불확실성 지도를 별도로 계산하지 않았다.
초해상도 단계 2: 밴드 3,2,1,4와 50단계 실행 시작 로그
그림 2. 실행 직후 실제 화면. ‘초해상도 시작...’ 메시지와 입력·출력 경로, 밴드 번호, 샘플링 단계를 확인한다.
초해상도 단계 3: 실제 출력 레이어와 완료 로그
그림 3. 실제 출력 레이어가 추가된 화면과 ‘Super-resolution complete’ 메시지. 개인 모델 캐시 경로가 표시되지 않도록 로그 표시 영역을 축소하고 마지막 부분으로 스크롤하였다. 로그 내용이나 결과는 변경하지 않았다.

6. 출력 격자와 데이터 검증

항목입력 관심영역OpenSR 출력
크기128×128512×512
밴드6개 중 3,2,1,4 사용RGB+NIR 4개
자료형UInt16Float32
기록된 CRSEPSG:32647EPSG:32647
픽셀 간격10×10 m2.5×2.5 m
범위left 904340, bottom 1809370, right 905620, top 1810650 — 동일

QGIS에서 출력 레이어 isValid=True, 폭·높이 512×512, 밴드 수 4, 픽셀 간격 2.5 m 및 입력과의 범위 일치를 확인하였다. 추가로 Rasterio에서 전 밴드를 읽어 1,048,576개 값이 모두 유한함을 확인하였다. 전체 값의 범위는 약 0.0838000~0.3320000이었다. 이 수치 검사는 파일 읽기와 수치 유효성 검사이며 방사 정확도 검증이 아니다.

초해상도 단계 4: QGIS 콘솔의 512×512, 2.5m 및 범위 일치 검증
그림 4. 실제 QGIS에서 출력 레이어 격자를 조회한 화면. OUTPUT의 크기·밴드·CRS·간격과 SAME EXTENT: True를 확인한다.

7. 주의사항과 한계

저장 과정에서 ‘BLOCKXSIZE can only be used with TILED=YES’ 경고가 발생하였다. 따라서 경고가 전혀 없는 실행으로 표현하지 않는다. 이후 완료 로그, 출력 생성, QGIS 로딩 및 Rasterio 전 밴드 읽기가 확인되었다. 이번 결과의 파일·격자 검증은 통과하였으나 저장 프로파일의 타일·블록 옵션은 별도 개선이 필요하다.

원본 예제의 기록 CRS는 UTM zone 47N이지만 GDAL이 산출한 경도는 약 102.8°E로 해당 UTM 구역의 일반 적용 범위를 벗어난다. 원자료의 위치·CRS 메타데이터 정합성을 별도로 확인해야 한다. 이번 실습은 메타데이터를 임의로 재지정하지 않고 동일 격자에서 처리했으며, 절대 위치 정확도나 다른 지도와의 정합을 검증한 것으로 해석하면 안 된다.

확산 모델은 추정 결과를 생성한다. 선명하게 보이는 무늬가 실제 관측된 세부 구조라는 보장은 없다. 참고 고해상도 영상 없이 시설물 경계, 재난 피해 면적 또는 측량 성과로 직접 활용하지 않는다. 입력과 출력의 색상 표시 방식 및 스케일이 다르므로 화면 색상 변화만으로 품질을 판단하지 않는다.

8. 프로젝트 저장과 정상 종료

입력·결과·검증 화면 확보 후 실습용 복사본을 다시 저장하였다. 저장 파일은 8,248 바이트이며 최종 갱신 시각은 2026년 10월 4일 오전 5시 13분이었다. 이어 QGIS의 정상 종료 명령을 실행하고 실습 창이 닫힌 것을 확인하였다. 원본 QGIS_Play.qgz는 덮어쓰지 않았다.

모델 구현과 사용 조건은 ESAOpenSR 공식 저장소를 참고한다. 이번 글의 그림 1~4는 실제 QGIS 캡처이며 공개 GitHub 커밋에 고정된 주소를 사용한다. 생성 이미지나 로컬 경로를 그림 대신 넣지 않았다.

2026-10-03

AI로 재난 훈련 시나리오 만들기 | 생성형 AI 사용법 6

AI로 재난 훈련 시나리오 만들기 | 생성형 AI 사용법 6

AI로 재난 훈련 시나리오 만들기는 초안 작성 시간을 줄여주지만, 지역 정보와 실제 매뉴얼을 넣고 전문가가 검토해야 실전에서 쓸 수 있습니다.

📌 3줄 요약

  • AI로 재난 훈련 시나리오 초안을 빠르게 만드는 절차를 소개
  • 지역 특성과 실제 매뉴얼을 넣어야 쓸모 있는 시나리오가 됨
  • 인명·법령·절차는 반드시 전문가가 검토해야 함

안전한국훈련이나 자체 비상대응훈련을 맡은 담당자라면 매년 비슷한 고민을 합니다. 작년과 다른 상황을 만들어야 하는데, 처음부터 시나리오를 짜려면 반나절이 훌쩍 지나갑니다. 상황 부여 문구, 시간대별 진행표, 참가자별 체크리스트까지 손으로 채우다 보면 정작 중요한 지역 특성 반영이나 매뉴얼 대조는 뒷전이 되기 쉽습니다.

이번 글에서는 생성형 AI로 재난 대응 훈련 시나리오와 체크리스트 초안을 만드는 절차를 다룹니다. 다만 AI가 만든 글은 어디까지나 뼈대일 뿐, 그 지역의 실제 상황과 법정 매뉴얼을 입혀야 비로소 쓸 수 있는 문서가 됩니다. 어디서부터 어디까지 AI에 맡기고, 어디서부터는 사람이 반드시 봐야 하는지 짚어보겠습니다.

disaster drill simulation screen
자료사진 · 사진: blickpixel / Pixabay

📝 AI한테 시나리오를 맡기면 뭐부터 달라지나요?

시나리오 작성에서 가장 시간이 걸리는 부분은 뼈대 잡기입니다. 발생 시각, 초기 신고, 상황 전파, 대응 조치, 복구까지 흐름을 순서대로 늘어놓는 작업인데, AI는 이 흐름을 몇 초 만에 뽑아줍니다. 예를 들어 집중호우로 인한 하천 범람 상황이라면 기상특보 발령부터 주민 대피 권고, 응급 복구반 출동까지 표 형태로 정리해줍니다.

문제는 이 뼈대가 일반론이라는 점입니다. AI는 특정 지역의 하천 폭이나 대피소 위치, 실제 통신망 상태를 모릅니다. 그래서 초안은 말 그대로 틀일 뿐이고, 여기에 우리 동네 정보를 채워 넣는 작업이 뒤따라야 합니다. 안전한국훈련 실무 3편에서 다룬 상황 부여·진행표 작성과 이어지는 단계로 보면 됩니다.

🗺️ 지역 특성을 안 넣으면 왜 훈련이 헛돌까요?

똑같은 홍수 시나리오라도 상류에 저수지가 있는 지역과 바닷가 저지대는 대응 방식이 완전히 다릅니다. 저수지가 있으면 방류 통보와 하류 주민 대피가 핵심이고, 저지대라면 만조 시간과 배수펌프장 가동 여부가 관건입니다. AI는 이런 지역 조건을 알려주지 않으면 알아서 채워주지 않습니다.

그래서 프롬프트에 하천명, 과거 침수 이력, 대피소 수용 인원, 취약계층 분포 같은 정보를 직접 넣어줘야 합니다. 산사태 위험지도(GeoAI 기초 13편)나 침수 이력 같은 공간 데이터를 참고해서 숫자와 지명을 구체적으로 넣을수록 시나리오가 현실감을 갖습니다. 지역 정보 없이 만든 시나리오로 훈련하면 참가자들이 몰입하지 못하고, 정작 필요한 절차를 놓치는 경우가 많습니다.

📋 실제 매뉴얼이랑 안 맞으면 무슨 문제가 생기나요?

AI는 일반적인 재난 대응 절차는 알지만, 특정 기관의 위기관리 매뉴얼이나 실무 매뉴얼의 정확한 조항·보고 체계·용어까지는 알지 못합니다. 기관마다 보고 라인이 다르고, 같은 '대피 권고'라도 발령 권한자가 다를 수 있습니다. AI가 만든 초안을 그대로 쓰면 실제 매뉴얼과 어긋난 절차가 섞여 들어가기 쉽습니다.

가장 확실한 방법은 해당 기관의 매뉴얼 원문(또는 공개된 요약본)을 함께 입력해 "이 매뉴얼의 보고 체계와 용어를 그대로 써서 시나리오를 수정해줘"라고 요청하는 것입니다. 이렇게 하면 AI가 지어낸 절차가 아니라 실제 쓰는 절차에 맞춰 문장을 고쳐줍니다. 매뉴얼과 다른 용어 하나가 훈련 중 혼선을 부를 수 있다는 점에서, 이 작업은 건너뛰면 안 되는 단계입니다.

✅ 체크리스트는 AI한테 맡겨도 괜찮을까요?

체크리스트는 빠뜨리기 쉬운 항목을 모아놓는 역할을 합니다. 참가자별 역할, 장비 점검, 통신 수단 이중화, 취약계층 확인 같은 항목을 AI에 요청하면 꽤 촘촘하게 뽑아줍니다. 특히 "해봐야 아는 것"이 많은 영역이라, AI가 뽑은 체크리스트를 실제 훈련장이나 사무실에서 하나씩 짚어보며 빠진 항목이 없는지 확인하는 절차가 꼭 필요합니다.

예를 들어 AI가 "비상연락망 최신화 여부 확인"이라는 항목을 줬다면, 실제로 연락망 문서를 열어 최근 인사이동이 반영됐는지 직접 확인해야 합니다. 말로만 체크하면 의미가 없고, 직접 전화를 걸어보거나 문서를 대조하는 과정에서 진짜 허점이 드러납니다. 이런 현장 확인 단계가 빠지면 체크리스트는 그냥 보기 좋은 목록으로만 남습니다.

👀 전문가 검토는 어디까지 필요한가요?

AI가 만든 시나리오와 체크리스트에서 가장 위험한 부분은 그럴듯하게 틀린 내용입니다. 법령 인용, 보고 체계, 책임 소재, 수치 같은 항목은 틀려도 문장이 자연스러워서 알아채기 어렵습니다. 생성형 AI 사용법 3편에서 다룬 환각 문제가 여기서도 그대로 나타납니다.

그래서 시나리오 초안이 나오면 재난 대응 실무를 아는 사람, 그리고 가능하면 관할 기관 담당자가 함께 보는 검토 단계를 반드시 거쳐야 합니다. 특히 대피 기준 시각, 발령 권한자, 취약시설 명단처럼 사람의 안전과 직결되는 항목은 AI 문장을 그대로 믿지 말고 원본 자료와 한 줄씩 대조해야 합니다. 초안은 AI가 빠르게 만들어주지만, 최종 책임은 언제나 검토한 사람에게 있다는 점을 잊지 않는 것이 중요합니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 대화 시작
    AI 도구에서 새 대화를 열고 재난 유형과 지역명, 훈련 목적을 먼저 설명한다
  2. 자료 첨부
    매뉴얼 파일이나 침수 이력 자료를 업로드 버튼으로 올리거나 본문에 붙여 넣는다
  3. 초안 요청
    "시간대별 진행표와 상황 부여 문구를 표로 만들어줘"처럼 형식을 지정해 요청한다
  4. 지역화 수정
    "하천명, 대피소명, 과거 침수 사례를 반영해서 다시 써줘"라고 구체적으로 고쳐 달라고 한다
  5. 문서 변환
    "한글(hwpx) 문서로 정리해줘"처럼 요청하면 바로 내려받을 수 있는 도구도 있다
  6. 전문가 전달
    완성된 초안을 담당 부서나 전문가에게 보내 매뉴얼 대조 검토를 요청한다
  7. ※ 메뉴 이름과 업로드
    ※ 메뉴 이름과 업로드 방식은 AI 도구마다 다를 수 있으니, 화면 하단이나 설정 메뉴에서 파일 첨부 아이콘을 찾아보세요.

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

막연한 요청으로 일반적인 시나리오 뼈대만 받기

[재난 유형]을 주제로 한 재난대응 훈련 시나리오를 만들어줘. 시간대별 진행표 형태로 정리해줘.

지역 정보와 매뉴얼을 반영한 구체적인 시나리오 받기

너는 [기관명]의 안전관리 담당자를 돕는 보조자야. [지역명]에서 [재난 유형]이 발생했다고 가정하고, 아래 조건을 반영해서 시간대별 상황 부여와 진행표를 표로 작성해줘. 조건: 하천명 [하천명], 과거 피해 이력 [침수/산사태 이력 요약], 대피소 [대피소명과 수용 인원], 보고 체계는 첨부한 매뉴얼의 용어와 순서를 그대로 따를 것. 법령이나 수치는 확실하지 않으면 추정하지 말고 "확인 필요"라고 표시해줘.
확인할 점: 보고 체계와 발령 권한자가 실제 매뉴얼과 일치하는지, 대피소 수용 인원과 지명이 최신 자료와 맞는지 사람이 직접 대조해야 합니다.

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • AI에 막연한 요청과 지역 정보를 넣은 요청 두 가지로 시나리오를 받아 내용 차이를 비교해보기
  • 받은 체크리스트 항목 중 하나를 골라 실제 연락망이나 장비 목록과 직접 대조해보기
  • 공개된 재난안전 포털에서 우리 지역 침수·산사태 이력을 찾아 프롬프트에 넣어보기

❓ 자주 묻는 질문

Q. AI가 만든 시나리오를 그대로 훈련에 써도 되나요?
A. 초안으로만 쓰고 그대로 쓰면 안 됩니다. 지역 정보와 실제 매뉴얼을 반영하고 전문가 검토를 거친 뒤에 사용해야 합니다.

Q. 매뉴얼을 통째로 AI에 올려도 괜찮나요?
A. 기관 내부 문서나 민감 정보가 포함된 매뉴얼은 보안 정책을 먼저 확인해야 합니다. 공개된 요약본이나 승인된 범위 내에서만 활용하는 것이 안전합니다.

Q. 체크리스트에 뭘 더 넣어야 할지 모르겠는데 AI가 다 알려주나요?
A. AI는 일반적인 항목을 폭넓게 제안해주지만 우리 조직만의 특수 상황은 모릅니다. 과거 훈련에서 나온 문제점을 함께 입력해 보완하는 것이 좋습니다.

AI는 재난 훈련 시나리오의 뼈대를 빠르게 만들어주지만, 그 뼈대에 지역의 진짜 이야기와 매뉴얼을 입히고 전문가가 검토하는 과정까지 거쳐야 비로소 쓸 수 있는 문서가 됩니다. 다음 편에서는 이렇게 만든 훈련 결과를 AI로 분석해 개선점을 찾는 방법을 다뤄보겠습니다.

생성형AI 사용법 시리즈 6편 · 전체 15편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

NaGeoAI 실제 QGIS 실습 6 | 영상분류 실행과 JSON 숫자 배열 검증

본 실습에서는 NaGeoAI의 영상분류 기능을 QGIS 데스크톱에서 실행하고, 생성된 JSON 파일의 구조와 확률값을 검증하였다. 주차장 예제 영상 한 장을 입력으로 사용하였으며, 실행 완료와 분류 의미의 타당성을 구분하여 설명한다. 모든 그림은 2026년 10월 3일 해당 PC에서 실제 수행한 화면이다.

1. 실습 목적과 적용 범위

영상분류(image classification)는 입력 영상 전체에 하나의 범주를 부여하는 작업이다. 앞선 객체탐지 실습처럼 차량별 경계상자를 생성하지 않으며, 토지피복 픽셀 분류도 수행하지 않는다. 이번 실습의 목적은 입력 영상 확인 → 모델 추론 → JSON 저장 → 수치 검증의 절차를 재현하는 데 있다.

2. 프로그램 설치와 환경 확인

실행 환경은 Windows, QGIS 3.44.12, NaGeoAI 1.9.1에 JSON 직렬화 수정을 적용한 로컬 설치본이다. 모델은 google/vit-base-patch16-224이며, 실제 로그에서 CUDA 사용을 확인하였다.

  1. NaGeoAI-1.9.1.zip 다운로드를 클릭하여 ZIP을 내려받는다. 압축을 풀지 않는다.
  2. QGIS의 플러그인 → 플러그인 관리 및 설치 → ZIP에서 설치에서 ZIP을 선택하고 설치한다. 기존 설치가 있으면 버전과 활성화 상태를 먼저 확인한다.
  3. QGIS를 다시 열고 NaGeoAI 최초 실행 환경 설정에서 필요한 AI 환경의 설치 상태를 확인한다. 누락된 항목만 설치·다운로드하며, 이미 설치된 항목은 건너뛴다. 이번 영상분류에는 OpenSR 모델을 사용하지 않는다.
  4. 인터넷에 연결된 상태에서 영상분류 모델을 처음 실행하면 모델 파일을 받는다. 이후에도 모델 설정 확인을 위한 네트워크 요청이 발생할 수 있으므로, 캐시가 있다고 해서 모든 요청이 생략되는 것은 아니다.

이번에는 플러그인을 재설치하지 않았다. 따라서 새 설치 화면을 촬영한 것으로 표시하지 않고 설치 절차를 글로 안내한다. 아래의 5개 그림은 입력·설정·실행·검증 화면이다.

JSON 저장 수정 사항

공개 v1.9.1 ZIP에는 이번 로컬 직렬화 수정이 아직 반영되지 않았다. 기존 default=str 방식은 NumPy 확률 배열을 문자열로 저장할 수 있다. 이번 검증본은 workers/geoai_task_worker.py의 image_classification 결과 저장 부분을 다음과 같이 수정하고 QGIS를 다시 시작하였다. 같은 숫자 배열 결과를 재현하려면 해당 수정이 필요하다. 수정 전 파일은 별도로 백업한다.

json.dump(result, report, ensure_ascii=False, indent=2,
          default=lambda value: value.tolist() if hasattr(value, "tolist") else str(value),
          allow_nan=False)

3. 예제 파일 다운로드와 입력 확인

사용 자료는 Source Cooperative의 OpenGeos GeoAI 예제 parking-lot.tif이다. 원본 예제 파일 다운로드를 눌러 저장한다. 이 PC에서는 D:\QGIS_Plugin\SampleData\NaGeoAI 폴더에 보관하였다. 실습 화면의 공개 사용은 사용자의 승인을 받았으며, 이를 원본 영상의 일반적인 자유 재배포 허가로 확대하여 해석하지 않는다. 원본 영상과 모델 파일은 이번 GitHub 업로드에 포함하지 않았다. 촬영일과 개별 원본 라이선스는 확인되지 않았으므로 별도의 현장·시기 분석 근거로 사용하지 않는다.

원본 QGIS_Play.qgz는 덮어쓰지 않고 QGIS_Play_NaGeoAI_20261003_classification_check.qgz 복사본을 열었다. 예제 영상은 별도 파일로 추가해야 한다. 일반적인 입력 방법은 레이어 → 레이어 추가 → 래스터 레이어 추가이다. 이번 실제 실행에서는 QGIS의 Python 콘솔에서 다음 명령으로 영상을 추가하였다. 분류 처리는 콘솔이 아니라 NaGeoAI 패널의 실행 버튼으로 수행하였다.

sample = iface.addRasterLayer('D:/QGIS_Plugin/SampleData/NaGeoAI/parking-lot.tif', 'parking-lot')
QgsProject.instance().setCrs(sample.crs())
iface.mapCanvas().setExtent(sample.extent())
iface.mapCanvas().refresh()

유효한 입력 레이어, EPSG:3857, 1,659×938 픽셀, RGB 3밴드, uint8 자료형을 확인하였다. X·Y 픽셀 간격은 각각 0.1492789632, 0.1493203625 투영좌표 단위이다. EPSG:3857의 간격을 현장 지상거리 정확도로 직접 해석하지 않는다. 미국 예제 영상의 표시를 위해 실습 복사본의 프로젝트 CRS만 EPSG:3857로 변경하였고 원본 EPSG:5187 프로젝트는 보존하였다.

QGIS 주차장 입력 영상과 CRS 크기 밴드 픽셀 간격 검증
그림 1. QGIS에서 주차장 영상이 표시되고 콘솔에서 입력 메타데이터를 확인한 화면. 배경지도는 분석 입력으로 사용하지 않았다. (클릭하면 원본 크기로 확인할 수 있다.)

4. NaGeoAI 영상분류 입력값 설정

  1. NaGeoAI 도구 모음의 추가 분석을 열고 기능 목록에서 영상분류를 선택한다.
  2. 입력 영상에 D:/QGIS_Plugin/SampleData/NaGeoAI/parking-lot.tif를 지정한다. 지도에 보이는 레이어와 이 파일이 같은 자료인지 확인한다.
  3. Hugging Face 모델에 google/vit-base-patch16-224를 입력한다.
  4. 출력 경로를 D:/QGIS_Plugin/SampleData/NaGeoAI/verification/classification_gui_20261003_approved.json으로 지정한다. 기존 결과를 보존하기 위해 새로운 파일명을 사용하였다.
  5. 이 기능의 출력은 비공간 JSON이므로 공간 결과를 지도에 추가는 해제하였다.
NaGeoAI 영상분류 입력 파일 모델 결과 JSON 설정
그림 2. 실제 영상분류 설정. 입력 파일, 모델 식별자, 새 JSON 출력 경로를 확인한다. (클릭하면 원본 크기로 확인할 수 있다.)

5. 실행과 완료 로그 확인

실행 버튼을 누르면 패널에 영상분류 시작 메시지가 표시되고, 실행 중 버튼이 비활성화된다. 로그의 네트워크 응답 한 줄만으로 성공을 판단하지 않는다. 처리가 끝난 뒤 CUDA 모델 적재 메시지, 결과 요약, 출력 파일 경로를 확인하고 실제 파일 존재 여부를 검사한다.

NaGeoAI 실행 직후 영상분류 시작 메시지
그림 3. 실행 버튼을 누른 직후의 실제 화면. 영상분류 시작 메시지와 비활성화된 실행 버튼이 보인다. (클릭하면 원본 크기로 확인할 수 있다.)
CUDA 영상분류 완료 로그와 JSON 파일 경로
그림 4. 실제 처리 완료 로그. Model loaded on cuda, 클래스 요약 및 결과 JSON 경로를 확인하였다. 지도에 보이는 영상은 입력 영상이며 분류 결과 지도가 아니다. (클릭하면 원본 크기로 확인할 수 있다.)

6. 출력 파일 구조와 수치 검증

완료 후 QGIS Python 콘솔에서 생성된 파일을 다시 읽어 probabilities의 자료형, 개수, 합계, 최상위 클래스 점수 및 유한값 여부를 검사하였다. 파일 검사는 외부 Python 환경에서도 동일하게 수행하였으나, 그림 5는 실제 QGIS 콘솔 화면이다.

import json, math
result = json.load(open('D:/QGIS_Plugin/SampleData/NaGeoAI/verification/classification_gui_20261003_approved.json', encoding='utf-8'))
probs = result['probabilities']
print(type(probs).__name__, len(probs), sum(probs))
print(result['class'], probs[result['class']])
print(all(math.isfinite(p) for p in probs))
검사항목실제 확인값
probabilities 자료형list — JSON 숫자 배열
확률값 개수1,000
확률값 합계1.000000021433607
모든 값의 유한성True
최상위 클래스782 — screen, CRT screen
최상위 점수0.20161251723766327
QGIS 콘솔의 JSON 숫자 배열 1000개와 확률 합계 검증
그림 5. 실제 결과 JSON을 다시 읽어 검사한 화면. 클래스 782, list 1,000개, 합계 및 유한성 True를 확인한다. (클릭하면 원본 크기로 확인할 수 있다.)

7. 결과의 해석과 한계

확률값 합계의 1과의 차이는 약 2.14×10−8로, 이 검사는 저장된 숫자 배열의 수치적 일관성을 확인하는 절차이다. 지표의 합계가 1에 가깝다는 사실은 분류의 의미적 정확성을 입증하지 않는다.

실제 입력에는 주차장·차량·건물이 보이지만 최상위 출력은 screen, CRT screen이었다. 점수 약 0.2016은 모델의 해당 범주 점수이지, 주차장 분류 정확도 20.16%라는 뜻이 아니다. 기본 모델은 일반 ImageNet 범주를 대상으로 하므로 이 출력으로 주차장, 차량 수, 토지피복 또는 재난 피해를 판단해서는 안 된다. 항공영상에 맞춘 모델과 독립적인 정답자료를 확보하여 비교·검증할 필요가 있다. 토지피복 지도가 목적이라면 의미론적 분할 등 픽셀 단위 작업과 구분해야 한다.

8. 저장과 종료

실습 복사본을 QGIS에서 저장한 뒤 실습에 사용한 QGIS 창을 정상 종료하였다. 저장 후 복사본의 갱신 시각과 크기 변화를 확인하고, 원본 QGIS_Play.qgz의 SHA-256이 실행 전 값과 동일함을 확인하였다. 결과 JSON은 별도 파일로 보관하였다. 프로젝트 파일만 복사하면 입력 래스터가 자동으로 포함되는 것은 아니므로 재실행 시 데이터 경로도 함께 확인한다.

참고 자료

작성·검증일: 2026년 10월 3일. 그림은 공개 GitHub 저장소의 커밋 SHA에 고정된 주소로 연결하였다. 이번 글은 실행·저장 검증을 기록한 실습이며, 항공영상 분류 성능 평가 보고서가 아니다.

훈련 평가보고서, 생성형 AI로 정리하는 법 | 안전한국훈련 실무 4편

훈련 평가보고서, 생성형 AI로 정리하는 법 | 안전한국훈련 실무 4편

🎬 1분 브리핑 영상

📌 3줄 요약

  • 평가보고서는 개요·결과·미흡점·개선과제 네 요소가 핵심
  • 현장 자료만 쓰게 제한해야 AI가 사실을 지어내지 않음
  • 초안 작성 후 수치·기관명 검증, hwpx로 표까지 완성

훈련이 끝나면 늘 찾아오는 숙제가 있습니다. 바로 평가보고서 작성입니다. 현장에서 받아온 평가표와 사진, 메모는 수북이 쌓여 있는데 이걸 어떻게 문장으로 엮어야 할지 막막하신 분들 많으실 겁니다. 특히 '잘된 점'은 금방 쓰는데 '개선 과제'는 뭉뚱그려 "전반적으로 양호함"으로 끝내버리는 경우가 흔합니다. 생성형 AI는 이 작업의 속도를 크게 높여줄 수 있지만, 방법을 모르고 쓰면 현장에 없던 내용을 지어내거나 알맹이 없는 보고서를 만들어 버립니다. 오늘은 평가보고서를 AI로 정리하되, 사실관계는 지키고 개선 과제는 제대로 뽑아내는 순서를 짚어보겠습니다.

disaster drill evaluation report
자료사진 · 사진: Curioso_Photography / Pixabay

📋 평가보고서에는 뭐가 꼭 들어가야 하나요?

평가보고서의 뼈대는 크게 네 가지입니다. 훈련 개요(언제, 어디서, 누가, 어떤 시나리오로 했는지), 평가 항목별 결과(지휘보고, 대피, 구조, 상황전파 등 항목별로 어떻게 수행됐는지), 미흡 사항(계획대로 안 된 부분), 개선 과제(다음 훈련에서 고칠 구체적인 방법)입니다. 이 네 가지가 순서대로 들어가야 읽는 사람이 "뭘 했고, 뭐가 문제였고, 어떻게 고칠지"를 한눈에 파악합니다. AI에게 초안을 맡길 때도 이 틀을 먼저 던져주고 그 안을 채우게 하는 게 핵심입니다. 재난안전 분야에서는 이 보고서가 다음 해 훈련 계획이나 매뉴얼 개정의 근거 자료로 쓰이기 때문에, 틀이 흐트러지면 후속 작업 전체가 흔들립니다.

🔒 현장 자료만 쓰게 어떻게 제한하나요?

AI에게 "훈련 평가보고서 써줘"라고만 하면 그럴듯하지만 실제로 없었던 상황을 만들어낼 위험이 큽니다. 이를 막는 방법은 간단합니다. 현장 기록지, 평가표, 상황일지 같은 원본 자료를 먼저 통째로 붙여넣고 "이 자료에 있는 내용만 사용하고, 자료에 없는 내용은 추측하지 말고 [확인 필요]라고 표시해줘"라고 명시하는 것입니다. 이렇게 하면 AI가 빈칸을 그럴듯한 문장으로 메우는 대신 "확인 필요" 표시를 남겨, 사람이 나중에 원본과 대조하기 쉬워집니다. 특히 참여 인원 수나 소요 시간처럼 숫자가 들어가는 항목은 반드시 이 방식으로 출처를 묶어둬야 나중에 검증이 가능합니다.

🔍 잘된 점만 나열되는 걸 어떻게 막나요?

평가표를 그대로 넣고 요약해달라고 하면 "원활히 수행됨", "신속하게 대응함" 같은 칭찬 위주 문장만 나오기 쉽습니다. 이는 원본 평가표 자체가 체크리스트 형식이라 미흡점이 짧게만 적혀 있는 경우가 많기 때문입니다. 이럴 때는 프롬프트에 "평가표의 '미흡' 또는 '보완 필요' 표시가 된 항목을 모두 찾아 목록으로 뽑고, 각 항목마다 원인 추정과 다음 훈련 시 구체적 개선 방법을 제안해줘"라고 역할을 분리해서 지시해야 합니다. 잘된 점과 미흡점을 같은 비중으로 다루게 강제하는 것이 핵심입니다. 이렇게 뽑아낸 개선 과제는 다음 해 실시계획서의 보완 항목으로 바로 연결되어, 훈련의 질을 해마다 끌어올리는 실질적 근거가 됩니다.

✅ 수치와 기관명, AI 초안을 그대로 결재 올려도 되나요?

절대 안 됩니다. AI는 문장을 그럴듯하게 다듬는 데는 강하지만, 숫자나 고유명사를 정확히 기억하거나 검증하는 도구가 아�닙니다. 참여 인원, 소요 시간, 협조 기관명, 훈련 일자는 반드시 원본 기록(출석부, 공문, 계획서)과 한 글자씩 대조해야 합니다. 또한 훈련 근거가 되는 법령이나 지침은 연도마다 개정될 수 있으므로 소관 부처의 최신 공고와 지침을 직접 확인하는 절차가 꼭 필요합니다. 훈련 규모나 일정도 해마다 달라지기 때문에 작년 자료를 그대로 베끼면 안 됩니다. 해봐야 아는 것은, 초안에서 숫자가 하나라도 나오면 그 옆에 출처 페이지나 자료명을 메모해두고 결재 전 전수 확인하는 습관입니다. 이 확인 과정을 생략하면 보고서 한 곳의 오류가 전체 신뢰도를 떨어뜨립니다.

📄 완성된 초안, 어떻게 한글 문서로 마무리하나요?

내용이 정리되면 마지막은 보기 좋은 문서로 만드는 일입니다. 평가 항목별 결과는 표로 정리하는 게 읽기 훨씬 편하므로, AI에게 "평가 항목, 수행 결과, 미흡 사항, 개선 과제를 각각 열로 하는 표로 정리해줘"라고 요청해 표 형태 텍스트를 받습니다. 이후 hwpx(한글 문서의 최신 파일 형식) 문서로 옮길 때는 표를 복사해 한글 프로그램의 표 붙여넣기 기능을 쓰거나, 문서 변환 기능을 지원하는 AI 도구를 이용해 표 구조가 유지된 hwpx 파일로 바로 받는 방법도 있습니다. 어느 방법이든 표의 셀 정렬과 병합이 깨지지 않았는지 반드시 눈으로 한 번 확인해야 합니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 자료 모으기
    현장 평가표, 상황일지, 사진 설명을 한 문서로 모아 텍스트로 정리
  2. AI에 자료 투입
    생성형 AI 대화창에 평가표 전문을 붙여넣고 네 항목 틀 전달
  3. 미흡점 추출
    "미흡/보완 필요 항목만 뽑아 원인과 개선안 제안해줘" 추가 질문
  4. 표로 재정리
    "항목·결과·미흡사항·개선과제 열로 표 만들어줘" 요청
  5. 원본 대조
    숫자·기관명·일자를 원본 기록과 한 줄씩 대조해 수정(메뉴명은 버전마다 다를 수 있어 '편집' 또는 '도구' 메뉴 주변을 확인)
  6. hwpx 변환
    표를 복사해 한글 프로그램에 붙여넣거나, 문서 변환 기능으로 hwpx 파일 받기

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

현장 평가표를 바탕으로 사실 기반 초안과 개선 과제를 함께 뽑는 프롬프트

너는 재난안전 훈련 평가보고서를 작성하는 실무자를 돕는 보조 역할이다
아래에 붙여넣는 [현장 평가표 전문]에 있는 내용만 사용하고 그 외 내용은 절대 추측하지 말 것
자료에 없는 수치나 기관명이 필요하면 빈칸 대신 [확인 필요]라고 표시할 것
보고서는 다음 네 부분으로 구성한다: 1)훈련 개요 2)평가 항목별 결과(표 형식, 열은 항목/결과/미흡사항) 3)미흡 사항 종합 4)개선 과제
개선 과제는 평가표에서 '미흡' 또는 '보완'으로 표시된 항목을 모두 찾아 각각에 대해 원인 추정과 다음 훈련 시 구체적 실행 방안을 함께 제시할 것
잘된 점 위주로 치우치지 말고 미흡점과 개선과제의 분량을 결과 요약과 비슷하게 맞출 것
[현장 평가표 전문]을 아래에 붙여넣는다
[여기에 평가표 내용 붙여넣기]

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • 지난 훈련 평가표를 꺼내 네 항목(개요·결과·미흡·개선) 틀에 맞춰 직접 분류해보기
  • 무료 생성형 AI에 평가표 일부만 넣고 "이 자료에만 근거해 요약해줘"라고 시켜 결과 비교
  • 초안에서 숫자가 나온 문장 3개를 골라 원본 기록과 대조해보기

❓ 자주 묻는 질문

Q. 평가표가 체크리스트뿐이고 서술이 별로 없는데 AI가 내용을 채울 수 있나요?
A. AI는 없는 내용을 지어내면 안 되므로 서술이 부족하면 "확인 필요"로 남겨야 합니다. 현장 사진이나 메모를 추가로 투입하면 빈 부분을 줄일 수 있습니다.

Q. 보고서에 들어갈 법령 근거는 어떻게 확인하나요?
A. AI가 제시하는 법령명이나 조항은 틀릴 수 있으므로 소관 부처의 공고와 최신 지침을 직접 찾아 대조해야 합니다. 연도별로 개정되는 경우가 많아 작년 자료를 그대로 쓰면 안 됩니다.

Q. hwpx로 변환할 때 표가 깨지면 어떻게 하나요?
A. 셀 병합이나 정렬이 틀어지는 경우가 흔하니 변환 후 표 전체를 눈으로 확인하고 필요한 셀만 수동으로 다시 정리하는 게 빠릅니다. 처음부터 열 개수를 단순하게 설계하면 깨질 확률이 줄어듭니다.

평가보고서는 훈련의 기억을 다음 해로 넘겨주는 다리 역할을 합니다. AI는 그 다리를 빨리 놓는 도구일 뿐, 다리가 제대로 이어졌는지 확인하는 몫은 여전히 사람에게 있습니다. 다음 편에서는 이렇게 쌓인 개선 과제를 실제 매뉴얼 개정에 반영하는 방법을 다뤄보겠습니다.

안전한국훈련 실무 시리즈 4편 · 전체 9편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

2026-10-02

생성형 AI 사용법 5 | 코드를 모르는 사람의 데이터 처리

생성형 AI 사용법 5 | 코드를 모르는 사람의 데이터 처리

📌 3줄 요약

  • 코드 몰라도 생성형 AI로 엑셀·CSV 데이터 정리 가능
  • 받은 결과는 반드시 원본과 대조해 눈으로 검증해야 함
  • 공간데이터는 좌표계·단위 확인이 정확도를 좌우함

어느 재난안전 담당자가 대피소 명단 엑셀 파일 300줄을 받았습니다. 주소 칸에 공백이 뒤섞여 있고, 어떤 줄은 위도·경도가 쉼표로 묶여 한 칸에 들어가 있습니다. 예전 같으면 일일이 손으로 고치거나 코드를 배워야 했을 일이지만, 요즘은 생성형 AI에게 "이 파일 정리해줘"라고 요청하는 것만으로 상당 부분 해결됩니다. 다만 AI가 내놓은 결과를 그대로 믿고 쓰면 안 됩니다. 특히 좌표나 면적처럼 숫자가 중요한 공간데이터는 단위 하나만 틀려도 지도 위 위치가 완전히 엉뚱한 곳으로 튑니다. 이번 편에서는 코드를 몰라도 데이터를 정리하는 방법과, 결과를 눈으로 검증하는 절차를 다룹니다.

Hands holding financial papers for tax preparation and analysis.
자료사진 · 사진: RDNE Stock project / Pexels

📊 엑셀이나 CSV 파일, AI에게 어떻게 맡기나요?

파일을 그대로 채팅창에 올리고 "이 파일에서 주소 칸의 공백을 지우고, 빈 줄은 삭제해줘" 처럼 사람 말로 요청하면 됩니다. 생성형 AI는 업로드된 표를 읽어 구조를 파악하고, 필요한 처리를 설명하거나 직접 수정한 파일을 만들어 줍니다. 중요한 건 요청을 구체적으로 쪼개는 것입니다. "정리해줘" 보다 "A열의 전화번호에서 하이픈을 통일해줘" 처럼 칸 이름과 작업을 콕 집어 말하면 결과가 훨씬 안정적입니다. 재난안전 업무에서는 대피소 명단, 피해 신고 목록처럼 반복 입력되는 표가 많아 이런 정리 작업만 잘 맡겨도 시간이 크게 줄어듭니다.

🐍 코드를 몰라도 파이썬 코드를 요청할 수 있나요?

가능합니다. "파이썬으로 CSV 파일을 열어서 좌표 칸을 위도·경도로 나누는 코드 짜줘"라고 요청하면 AI가 짧은 코드를 만들어 줍니다. 코드를 몰라도 한 줄씩 어떤 뜻인지 설명해 달라고 하면 됩니다. 아래는 예시로 받을 법한 코드입니다.

import pandas as pd
df = pd.read_csv("shelter.csv")
df[["위도","경도"]] = df["좌표"].str.split(",", expand=True)
df.to_csv("shelter_clean.csv", index=False)

이 코드를 실행할 땐 무료로 쓸 수 있는 온라인 실행 환경(검색창에 "파이썬 온라인 실행기"로 찾을 수 있습니다)에 붙여 넣으면 설치 없이 바로 돌려볼 수 있습니다. 대피소나 침수 흔적 좌표 데이터를 이런 식으로 빠르게 정제해두면, 이후 지도 프로그램에 바로 얹어 분석할 수 있습니다.

👀 AI가 만든 결과, 뭘 보고 믿어야 하나요?

결과 파일을 받으면 가장 먼저 행 개수가 원본과 맞는지 확인합니다. 300줄을 넣었는데 280줄만 나왔다면 어딘가 묵인하고 지워진 겁니다. 다음으로 몇 개 줄을 무작위로 골라 원본과 나란히 띄워 눈으로 대조합니다. 이것이 바로 해봐야 아는 것입니다. AI의 설명만 읽고 넘어가지 말고, 반드시 원본 파일을 옆에 켜둔 채 일부 데이터를 손으로 짚어가며 비교해야 합니다. 특히 좌표나 피해 금액처럼 숫자가 들어간 칸은 전부 훑어볼 수 없더라도 최솟값과 최댓값이 상식적인 범위인지 확인하면 이상치를 빠르게 잡아낼 수 있습니다. 재난 통계처럼 한 번 틀리면 보고서 전체 신뢰도가 흔들리는 데이터일수록 이 검증 습관이 중요합니다.

🗺️ 좌표계와 단위, 왜 그렇게 중요한가요?

좌표계는 지구 위 위치를 숫자로 표현하는 약속입니다. 같은 지점이라도 좌표계가 다르면 완전히 다른 숫자로 적힙니다. 흔히 쓰는 위도·경도 체계와, 국내 행정업무에서 쓰는 평면 좌표 체계는 숫자 형태부터 다릅니다. 예를 들어 위도·경도는 소수점 숫자(37.56, 126.97)로 나타나지만 평면 좌표는 미터 단위의 큰 정수(예: 200000, 450000)로 나타납니다. AI에게 좌표 변환을 맡길 때는 "현재 어떤 좌표계인지", "어떤 좌표계로 바꿔야 하는지"를 반드시 말해줘야 합니다. 이 정보를 빼먹으면 AI는 추측으로 변환하고, 결과 지점이 바다 한가운데나 엉뚱한 나라로 찍히는 일이 생깁니다. 홍수 흔적조사나 산사태 위험지 좌표처럼 위치 정확도가 생명인 데이터는 좌표계를 확인하지 않으면 지도에 올렸을 때 전혀 다른 곳을 가리키게 되어 현장 대응이 엉뚱한 곳으로 나갈 수 있습니다.

🧮 단위를 착각하면 어떤 문제가 생기나요?

면적, 거리, 강수량 같은 값은 단위에 따라 숫자 크기가 크게 달라집니다. 침수 면적이 "3200"이라고만 적혀 있으면 제곱미터인지 헥타르인지 알 수 없고, 이걸 헷갈리면 실제보다 100배 큰 피해로 보고될 수도 있습니다. AI에게 데이터를 정리시킬 때도 "이 칸의 단위는 제곱미터입니다" 처럼 명시해야 계산이 꼬이지 않습니다. 결과를 받은 뒤에는 원본 보고서나 현장 조사서의 단위 표기를 다시 한번 대조하는 습관이 필요합니다. 산불 피해 면적, 강수량 집계처럼 숫자 하나로 대응 등급이 달라지는 자료일수록 단위 확인은 생략할 수 없는 절차입니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. 새 대화 시작
    AI 서비스 접속 후 새 채팅을 열고 "엑셀 정리 작업"이라고 주제를 먼저 알림
  2. 파일 업로드
    채팅창의 파일 첨부 버튼(클립 모양 아이콘)으로 엑셀·CSV 파일 올리기
  3. 작업 구체화
    "A열 공백 제거, B열 좌표를 위도·경도로 분리" 처럼 칸 이름과 작업 명시
  4. 결과 요청
    "수정된 파일을 CSV로 내려받게 해줘" 또는 "코드와 함께 설명해줘"라고 요청
  5. 눈으로 대조
    원본과 결과 파일을 나란히 열어 행 수와 샘플 몇 줄을 직접 비교
  6. 좌표계 재확인
    결과 파일을 지도 프로그램에 올리기 전 좌표계 설정값이 맞는지 확인
  7. (화면 구성은 쓰는 서
    (화면 구성은 쓰는 서비스나 버전에 따라 다를 수 있어 못 찾으면 설정이나 도움말 메뉴를 살펴보세요)

※ 프로그램 버전에 따라 메뉴 이름이 조금씩 다를 수 있습니다. 위 그림은 순서를 정리한 도식입니다.

✍️ 그대로 복사해 쓰는 프롬프트

막연한 요청으로 정리를 맡겼을 때 생기는 문제를 보여주는 예시

이 엑셀 파일 정리해줘

맥락과 형식을 구체적으로 준 정리 요청으로 안정적인 결과를 받는 예시

너는 공공데이터 정리를 돕는 보조자야
첨부한 CSV 파일은 [대피소 명단]이고 칸 구성은 [이름, 주소, 좌표, 수용인원]이야
좌표 칸은 "위도,경도" 형태로 한 칸에 섞여 있으니 위도와 경도를 각각 다른 칸으로 분리해줘
주소 칸의 앞뒤 공백은 제거하고, 수용인원이 비어 있는 행은 "미확인"으로 채워줘
작업 후 원본과 비교했을 때 행 개수가 같은지 알려주고, 수정한 내용을 표로 요약해줘
결과는 CSV 파일로 내려받을 수 있게 해줘

받은 결과에서 반드시 확인할 것: 원본과 결과의 행 개수 일치 여부, 좌표 분리가 정확한지 샘플 대조, 좌표계 표기 누락 여부

※ 대괄호 부분을 상황에 맞게 바꿔서 쓰세요. 받은 답은 그대로 쓰지 말고 사실 확인을 거치세요.

🧪 직접 해보기

  • 가지고 있는 엑셀 파일 일부를 AI에게 올려 공백 제거를 요청해보기
  • 결과 파일의 행 개수를 원본과 직접 세어 비교하기
  • 좌표 칸이 있다면 숫자 형태(소수점 vs 큰 정수)로 좌표계 추정해보기

❓ 자주 묻는 질문

Q. 코드를 전혀 몰라도 파이썬 코드를 실행할 수 있나요?
A. 온라인 실행 환경을 쓰면 설치 없이 코드를 붙여 넣고 실행 버튼만 눌러도 됩니다. 다만 코드가 무슨 일을 하는지 한 줄씩 설명을 요청해 이해하고 쓰는 것이 안전합니다.

Q. AI가 만든 결과 파일이 맞는지 어떻게 확실히 알 수 있나요?
A. 완벽히 보장하는 방법은 없고, 원본과 일부를 대조하는 수작업 검증이 필수입니다. 특히 행 개수, 숫자 범위, 좌표 형태 세 가지만 확인해도 큰 오류는 대부분 걸러집니다.

Q. 좌표계가 다른지 어떻게 알아보나요?
A. 좌표 숫자가 소수점이 있는 작은 값이면 위도·경도 계열, 소수점 없는 큰 정수면 평면 좌표 계열일 가능성이 큽니다. 확실하지 않으면 데이터를 준 기관이나 원본 문서의 메타데이터를 확인하는 것이 정확합니다.

코드를 몰라도 생성형 AI 덕분에 데이터 정리의 문턱은 많이 낮아졌지만, 결과를 검증하는 눈은 여전히 사람 몫입니다. 다음 편에서는 이렇게 정리한 데이터를 지도 위에 직접 올려 시각화하는 방법을 다뤄보겠습니다.

생성형AI 사용법 시리즈 5편 · 전체 15편


재난안전과 GeoAI 이야기를 더 보고 싶다면 아래 채널도 함께 보세요.

📌 바로가기

NaGeoAI 실제 QGIS 실습 5 | 객체탐지 좌표 오류 수정과 후보 2건 검증

1. 실습 목적과 확인 범위

본 실습에서는 NaGeoAI 1.9.1의 객체탐지 기능을 QGIS 3.44.12에서 실행하고, 탐지 상자의 좌표가 입력 영상과 일치하는지 확인하였다. 자료 확인 → 입력값 설정 → 객체탐지 → 지도 중첩 및 속성 검증의 순서로 진행하였다. 이번 결과는 모델이 반환한 후보를 검토하기 위한 자료이며, 개별 건물의 정확한 경계나 공식 측량 성과를 의미하지 않는다.

버전 안내: 이 글의 실행 환경은 좌표 변환을 수정한 NaGeoAI 1.9.1이다. 수정 버전의 설치 파일은 NaGeoAI-1.9.1.zip 다운로드에서 받을 수 있다. 1.9.1 릴리스 설명에서 변경 내용을 확인한다.

2. 플러그인 설치 방법

QGIS에서 플러그인 → 플러그인 관리 및 설치 → ZIP 파일에서 설치를 열고, NaGeoAI 배포 ZIP을 지정하여 설치한다. 설치 후 플러그인 목록에서 NaGeoAI의 활성화 여부와 버전을 확인한다. 이 절차는 독자를 위한 설치 안내이며, 이번 실습에서 ZIP 재설치 화면을 새로 촬영한 것은 아니다.

실제 과거 설치 과정과 화면은 실습 1편: 설치부터 NAIP 변화탐지 결과 확인까지를 참고한다. 공개 버전은 NaGeoAI GitHub 릴리스에서 확인한다. 1.9.0을 이번 수정 버전으로 간주하여서는 안 된다.

3. 예제 자료 다운로드 및 입력 확인

입력 자료는 Las Vegas 지역의 2019년 NAIP 예제 영상이다. Source Cooperative의 opengeos/geoai 자료 페이지에서 제공하는 las_vegas_naip_2019_a.tif를 다운로드한다. 원본 파일은 별도로 보존하고, QGIS의 래스터 레이어로 추가한다.

NAIP의 일반적인 자료 설명은 NAIP 공식 자료 목록을 참고한다. 예제 가공본의 재배포 조건은 별도로 확인할 필요가 있으므로, 본 글에서는 원본 TIFF를 다시 업로드하지 않고 제공처의 다운로드 주소를 안내한다.

항목확인값
입력 파일las_vegas_naip_2019_a.tif
입력 좌표계EPSG:26911
영상 크기2,721 × 1,420픽셀, 4개 밴드
픽셀 크기0.6m × 0.6m
출력 좌표계EPSG:4326

실습 시작 원본 QGIS_Play.qgz는 보존하였다. 이번 실행과 결과 저장에는 QGIS_Play_NaGeoAI_20261002_object_detection_fixed.qgz 복사본을 사용하였다. 배경지도만으로 분석하지 않고, 다운로드한 NAIP 래스터를 탐지 입력으로 지정하였다.

그림 1. QGIS 입력 영상과 실습 프로젝트 확인
그림 1. 처리 후 출력 레이어의 표시를 끈 상태에서 입력 영상과 프로젝트를 확인한 화면이다. 처리 전 화면으로 표시하지 않는다.

4. NaGeoAI 객체탐지 입력값 설정

NaGeoAI의 추가 분석 패널을 열고 기능을 객체탐지로 선택하였다. 입력 영상은 위의 TIFF이며, 탐지 대상에는 building. car., 신뢰도 임계값에는 0.3을 입력하였다. 출력 파일은 objects_gui_v191_blog_20261002.geojson으로 지정하고, 공간 결과를 지도에 추가하는 옵션을 켰다.

그림 2. NaGeoAI 객체탐지 기능 및 입력값 설정
그림 2. 새 실행 직전의 객체탐지 설정 화면이다. 지도에 표시된 파란 윤곽선은 앞서 좌표를 확인한 결과이며, 새 실행 결과와 구분한다.

5. 실행 로그와 출력 레이어 확인

실행 버튼을 눌러 처리를 완료하였다. 실제 QGIS 패널에서 후보 2건과 EPSG:26911 → EPSG:4326 변환 메시지를 확인하였으며, 새 GeoJSON 레이어가 지도에 추가되었다. 로그에는 영상 면적의 80% 이상을 차지하는 후보 1건과 영상 경계를 벗어난 상자의 절단 처리 1건에 대한 경고가 기록되었다.

그림 3. 객체탐지 실행 완료 로그와 출력 레이어
그림 3. 실행 직후의 로그 및 출력 레이어 화면이다. 큰 후보 상자는 자동으로 삭제하지 않았으며, 경고를 확인하고 검토 대상으로 남겼다.

출력 레이어의 심볼을 채움 없이 파란 윤곽선으로 설정하여 NAIP 영상과 중첩하였다. 이 중첩은 좌표 정합을 확인하기 위한 것이며, 건물 경계의 정확도를 입증하는 절차는 아니다.

그림 4. NAIP 영상과 탐지 후보 지도 중첩
그림 4. 새 GUI 실행 결과와 이전 좌표 검증 결과를 함께 표시한 중첩 화면이다. 최종 저장 프로젝트에서는 이전 검증 결과를 숨기고 새 실행 결과를 표시하였다.

6. 속성 검증과 해석상 주의사항

후보labelscore영상 대비 면적 비율
1building0.3452448250.997488046
2building0.3025969860.011897756

그림 5. 출력 후보 2건의 속성 테이블
그림 5. 실제 GUI 출력의 label, score, image_fraction 값을 확인한 화면이다.

두 후보의 label은 모두 building이며, car 후보는 반환되지 않았다. 첫 번째 상자는 영상 면적의 약 99.75%를 차지하여 단일 건물의 경계로 이용하기 어렵다. 두 번째 후보도 현장 자료 또는 정답 경계와 대조하지 않았으므로, 개별 건물이 정확하게 탐지되었다고 단정할 수 없다. score는 모델 출력값이며 정밀도나 전체 정확도와 동일하지 않다. 정답 자료를 이용한 정밀도·재현율·경계 정확도 평가는 수행하지 않았다.

7. 좌표 오류 수정 내용 및 저장

이전 객체탐지 출력에서는 픽셀 좌표에 래스터 지리참조 변환을 적용하지 않은 문제가 확인되었다. 1.9.1에서는 탐지 상자의 각 꼭짓점에 영상의 아핀 변환을 적용한 뒤 EPSG:4326으로 변환하도록 수정하였다. 영상 경계 밖의 후보는 경계 범위로 절단하고, 큰 면적의 후보는 경고로 알리도록 하였다. 좌표 변환 수정과 모델의 탐지 품질 개선은 서로 다른 문제이다.

입력 확인, 실행, 출력 속성 확인 및 실제 화면 캡처를 완료한 후 실습용 프로젝트 복사본을 저장하고 QGIS를 정상 종료하였다. 원본 QGIS_Play.qgz는 덮어쓰지 않았다. 과거 Python 종료 오류의 원인을 이번 결과만으로 단정하지 않으며, 이번 실행에서는 QGIS 창이 정상적으로 닫혔음을 확인하였다.

실제 화면 5장은 2026년 10월 2일 QGIS 데스크톱에서 캡처하였으며, GitHub에 보존한 이미지를 삽입하였다. 각 그림을 클릭하면 원본 크기로 확인할 수 있다.

GeoAI 위성·드론 영상 분석, 재난대응 산업이 뜬다 | 재난안전과 GeoAI

GeoAI 위성·드론 영상 분석 기술이 재난대응 산업의 중심으로 떠오르고 있다. 누리호 5차 발사, 위성·드론 영상 분석 스타트업, ArcGIS 경사지 위험 분석 서비스까지 오늘의 관련 소식을 정리했다. 📌 3줄 요약 아크넥사는 위성·드론 영상을...