레이블이 지리좌표계인 게시물을 표시합니다. 모든 게시물 표시
레이블이 지리좌표계인 게시물을 표시합니다. 모든 게시물 표시

2026-09-23

좌표계(CRS)가 헷갈릴 때 | EPSG:4326과 5186 | GeoAI 기초 6편

좌표계(CRS)가 헷갈릴 때 | EPSG:4326과 5186 | GeoAI 기초 6편

🎬 1분 브리핑 영상

📌 3줄 요약

  • 지리좌표계는 경·위도, 투영좌표계는 미터 단위로 거리를 잰다.
  • 한국에서 EPSG:4326과 EPSG:5186은 목적에 따라 구분해 써야 한다.
  • 좌표계가 어긋나면 레이어가 엉뚱한 곳에 놓이고 면적 계산이 틀어진다.

QGIS에 홍수 침수 범위 레이어를 불러왔는데, 분명히 서울 데이터인데 지도 위에서 아프리카 근처에 점이 찍혀 있는 경험을 해보신 적 있으신가요? 혹은 두 레이어를 겹쳤더니 딱 맞아야 할 도로와 건물이 수십 미터씩 어긋나 있는 경우도 있습니다. 이런 증상의 가장 흔한 원인이 바로 좌표계, 즉 CRS(Coordinate Reference System, 지구 위 위치를 숫자로 나타내는 기준 체계)가 서로 다르거나 잘못 지정되어 있기 때문입니다.

GIS를 처음 배울 때 좌표계는 그냥 넘어가기 쉬운 개념이지만, 재난안전 업무처럼 공간 정확도가 생명과 직결되는 분야에서는 좌표계 오류 하나가 대피소 위치를 엉뚱한 행정구역에 배치하거나 침수 면적을 잘못 계산하는 결과로 이어질 수 있습니다. 이번 글에서는 지리좌표계와 투영좌표계의 차이, 한국에서 자주 쓰는 EPSG 코드, 그리고 좌표계가 어긋났을 때 어떤 순서로 해결하는지를 차근차근 짚어 보겠습니다.

🌐 지리좌표계와 투영좌표계는 어떻게 다른가요?

지리좌표계(Geographic CRS)는 경도와 위도처럼 각도 단위로 위치를 표현합니다. 지구를 둥근 타원체로 보고 "북쪽으로 몇 도, 동쪽으로 몇 도"라고 말하는 방식입니다. 대표적인 예가 WGS84인데, 이것을 EPSG 코드로 표현하면 EPSG:4326입니다. GPS 기기가 찍어주는 좌표, 스마트폰 지도 앱의 위치 공유, 국제 데이터 교환에 가장 흔히 쓰입니다.

투영좌표계(Projected CRS)는 둥근 지구를 평면 종이 위에 펼칠 때 쓰는 기준입니다. 종이에 펼치면서 어쩔 수 없이 면적이나 모양에 왜곡이 생기는데, 투영법의 종류에 따라 거리 왜곡을 줄이거나 면적 왜곡을 줄이는 방향을 선택합니다. 단위는 미터 또는 피트가 됩니다. 재난안전 업무에서 침수 면적이 몇 제곱킬로미터인지, 대피 경로가 몇 미터인지 계산하려면 반드시 투영좌표계 위에서 작업해야 합니다. 각도 단위인 경위도로는 거리와 면적을 직접 계산할 수 없기 때문입니다.

🗺️ 한국에서 EPSG:4326과 EPSG:5186은 각각 언제 쓰나요?

EPSG:4326은 앞서 말한 WGS84 지리좌표계입니다. 웹 지도, API, GPS 데이터, 국제 공유 데이터에서 자주 만납니다. 좌표값이 경도 126~130, 위도 34~38 범위에 있다면 이 체계일 가능성이 높습니다.

EPSG:5186은 국토지리정보원이 고시한 한국 중부원점 TM(Transverse Mercator, 횡단 메르카토르) 투영좌표계입니다. 국내 공간 분석에서 가장 흔히 권장되는 투영좌표계 중 하나로, 단위는 미터입니다. 국가공간정보포털이나 행정안전부 재난정보 레이어처럼 국내 공공 데이터에서 자주 볼 수 있습니다. 좌표값이 200,000~600,000 범위라면 투영좌표계를 의심해 볼 수 있습니다.

추가로 EPSG:5179(Korea 2000 / Unified CS)도 자주 등장합니다. 전국 단위 지도를 하나의 투영계로 커버하고 싶을 때 씁니다. EPSG:3857은 웹 메르카토르로, OpenStreetMap이나 카카오맵처럼 웹 타일 지도에 주로 쓰이지만 고위도로 갈수록 면적 왜곡이 크기 때문에 정확한 면적·거리 계산에는 적합하지 않습니다. 산불 피해 범위나 홍수 침수 구역의 면적을 공식 보고서에 올릴 때는 EPSG:5186 또는 EPSG:5179 위에서 계산하는 것이 안전합니다.

🔍 좌표계가 어긋났을 때 어떤 증상이 나타나나요?

가장 흔한 증상은 레이어가 엉뚱한 위치에 놓이는 것입니다. 대표적인 경우가 좌표값은 있는데 CRS 정보가 없거나 잘못 할당된 경우입니다. 예를 들어 실제로는 EPSG:5186 미터 좌표인 데이터를 QGIS가 EPSG:4326(경위도)으로 읽으면, 200,000을 경도 200도로 해석해서 지도 밖으로 날아가 버립니다.

두 번째 증상은 레이어는 비슷한 위치에 보이는데 수십 미터에서 수백 미터씩 어긋나는 경우입니다. 이때는 QGIS가 프로젝트 CRS에 맞춰 실시간으로 좌표를 변환하는 '온더플라이(On the Fly) 투영' 기능이 작동하고 있을 가능성이 큽니다. 두 레이어의 CRS가 다르면 겹쳐 보이더라도 실제 지오메트리 데이터는 서로 다른 기준점을 참조하므로 공간 연산(교차, 버퍼, 면적 계산 등) 결과가 틀어집니다. 산사태 위험 구역과 주민 거주지를 겹쳐 취약 인구를 추출하는 분석을 할 때 이 오류가 숨어 있으면 결과를 신뢰할 수 없습니다.

🛠️ 좌표계 오류는 어떤 순서로 해결하면 되나요?

해봐야 아는 것이기도 한데, 먼저 레이어의 현재 CRS 정보를 직접 눈으로 확인하는 것이 첫 번째 단계입니다. QGIS에서는 레이어 패널에서 해당 레이어를 오른쪽 클릭 > 속성(Properties) > 정보(Information) 탭을 열면 "CRS" 항목에 현재 지정된 좌표계 이름과 EPSG 코드가 표시됩니다. 여기서 'Unknown CRS' 또는 전혀 다른 EPSG 코드가 보이면 문제의 원인이 확인된 것입니다.

두 번째는 '정의 설정'과 '재투영'을 구분하는 일입니다. 데이터 파일에 CRS 정보 자체가 없을 때는 레이어 오른쪽 클릭 > 레이어 CRS 설정(Set Layer CRS)으로 올바른 CRS를 할당합니다. 반면 CRS는 이미 맞는데 다른 좌표계로 변환이 필요할 때는 벡터 데이터라면 벡터(Vector) > 데이터 관리 툴(Data Management Tools) > 레이어 재투영(Reproject Layer)을 사용합니다. 래스터라면 래스터(Raster) > 투영(Projections) > 워프(변환)(Warp (Reproject)) 메뉴를 이용합니다. 메뉴 이름은 QGIS 버전에 따라 조금씩 다를 수 있으므로, 못 찾을 때는 상단 처리(Processing) > 툴박스(Toolbox)를 열고 "reproject"로 검색하면 버전과 관계없이 찾을 수 있습니다.

세 번째는 재투영 후 결과를 반드시 확인하는 것입니다. 위성영상이나 행정경계 레이어와 겹쳐 놓고 경계선이 맞는지 눈으로 검토한 뒤, 면적 계산이 필요하다면 필드 계산기($area 함수)로 이상한 값이 나오지 않는지 체크합니다. 대피소 위치 데이터라면 한두 곳을 골라 실제 주소와 좌표를 대조해 보는 것이 가장 확실합니다.

📋 프로젝트를 시작할 때 CRS를 어떻게 통일하면 되나요?

여러 출처의 데이터를 함께 쓰는 프로젝트라면 시작 전에 기준 CRS를 하나로 정해 두는 것이 가장 효율적입니다. 국내 공간 분석을 목적으로 한다면 EPSG:5186이나 EPSG:5179 중 기관에서 자주 쓰는 쪽으로 맞추고, 모든 레이어를 해당 CRS로 재투영한 뒤 저장합니다. QGIS에서 프로젝트 CRS는 프로젝트(Project) > 속성(Properties) > CRS 탭에서 설정할 수 있습니다.

데이터를 받을 때마다 파일명 또는 메타데이터에 EPSG 코드를 기록해 두는 습관도 중요합니다. 특히 공공 포털에서 내려받은 shp 파일은 .prj 파일이 함께 있는지 확인하세요. .prj 파일이 없으면 QGIS가 CRS를 자동으로 인식하지 못해 Unknown CRS로 처리합니다. 홍수 대피 경로를 분석하거나 산불 피해 구역 면적을 산정하는 업무처럼 결과의 정확도가 중요한 경우, 데이터 수신 단계에서 CRS를 확인하는 절차를 작업 체크리스트에 포함시켜 두면 나중에 발생할 수 있는 오류를 미리 막을 수 있습니다.

🖥️ 화면에서 따라하기

따라하기 단계

  1. CRS 확인
    레이어 패널에서 레이어 오른쪽 클릭 > 속성(Properties) > 정보(Information) 탭 > CRS 항목 확인
  2. CRS 할당
    CRS가 Unknown일 때: 레이어 오른쪽 클릭 > 레이어 CRS 설정(Set Layer CRS) > EPSG 코드 입력 후 확인
  3. 벡터 재투영
    벡터(Vector) > 데이터 관리 툴 > 레이어 재투영(Reproject Layer) > 목표 CRS에 EPSG:5186 입력 후 실행
  4. 래스터 재투영
    래스터(Raster) > 투영(Projections) > 워프(Warp) > 목표 CRS에 EPSG:5186 입력 후 실행
  5. 결과 시각 검토
    재투영된 레이어를 기준 레이어(행정경계 등)와 겹쳐 경계 일치 여부 눈으로 확인
  6. 면적 계산 확인
    레이어 오른쪽 클릭 > 속성 테이블 열기 > 필드 계산기 > $area 입력해 이상값 여부 점검

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

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

좌표계 오류 원인과 해결 절차를 단계별로 정리해 달라고 요청할 때

너는 GIS 기술 지원 전문가야. 나는 공간정보를 처음 배우는 실무자야.
아래 상황을 읽고, 좌표계 오류의 원인과 해결 순서를 단계별로 설명해 줘.

상황: [데이터 출처(예: 국가공간정보포털 shp 파일)], [사용 도구(예: QGIS 최신 버전)],
[증상(예: 레이어가 지도 밖에 표시됨 / 두 레이어가 수백 미터 어긋남)]

답변 형식:
1. 추정 원인 (2줄 이내)
2. 확인 절차 (번호 목록, 각 줄 1단계)
3. 해결 방법 (재투영 vs CRS 할당 중 무엇인지 구분해서)
4. 재발 방지를 위한 체크리스트 (3항목 이내)

추측이 필요한 경우 "추정:"이라고 표시하고, 확실하지 않은 수치나 메뉴 이름은 단정하지 마.
결과물을 사람이 반드시 검토해야 하는 항목을 마지막에 별도로 적어 줘.

팀원에게 CRS 통일 기준을 안내하는 내부 가이드 초안을 만들 때

너는 공공기관 GIS 업무 담당자를 돕는 기술 문서 작성 보조자야.
아래 조건에 맞는 내부 가이드 초안을 작성해 줘.

기관: [기관명]
주요 업무: [재난안전 공간분석 / 도시계획 등]
사용 도구: [QGIS / ArcGIS Pro 등]
기준 CRS: [EPSG:5186 또는 EPSG:5179]

포함할 내용:
- 데이터 수신 시 CRS 확인 방법 (1~2줄)
- 재투영이 필요한 경우와 아닌 경우 구분
- 파일 저장 시 명명 규칙 예시 (CRS 코드 포함)
- 담당자가 반드시 육안으로 검토해야 하는 항목

전문용어는 처음 나올 때 괄호로 풀어 써. 위협적이거나 단정적인 표현은 쓰지 마.

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

🧪 직접 해보기

  • QGIS에 가지고 있는 shp 파일을 불러온 뒤 레이어 오른쪽 클릭 > 속성 > 정보 탭에서 CRS 항목을 직접 읽어보고, EPSG 코드가 무엇인지 확인해 본다.
  • epsg.io 사이트에서 5186, 4326, 5179, 3857을 각각 검색해 지도 미리보기와 단위(degree/metre)가 어떻게 다른지 비교해 본다.
  • QGIS에서 같은 지역의 shp 파일을 EPSG:4326과 EPSG:5186으로 각각 저장한 뒤 필드 계산기에서 $area 값을 비교해, 경위도 좌표 위에서 계산한 면적이 얼마나 틀리는지 직접 확인해 본다.

❓ 자주 묻는 질문

Q. QGIS에서 레이어를 불러왔는데 지도 위에 아무것도 안 보여요. 좌표계 문제인가요?
A. 가능성이 높습니다. 레이어 패널에서 해당 레이어 오른쪽 클릭 > 레이어로 확대(Zoom to Layer)를 눌러서 레이어가 실제로 어디에 놓여 있는지 먼저 확인하세요. 지도 범위 밖 엉뚱한 곳에 있다면 CRS가 잘못 지정되었거나 할당되지 않은 경우입니다.

Q. CRS를 바꾸면 원본 데이터가 손상되나요?
A. 레이어 CRS 설정(Set Layer CRS)은 파일 자체의 좌표값을 바꾸지 않고 해석 기준만 바꿉니다. 반면 재투영(Reproject Layer)은 좌표값 자체를 새 CRS 기준으로 변환해서 새 파일로 저장합니다. 원본을 보존하려면 재투영 전에 원본 파일을 별도로 백업해 두는 것이 안전합니다.

Q. 웹 지도(카카오맵, 네이버 지도)에서 좌표를 복사했는데 QGIS에 붙이면 왜 안 맞나요?
A. 웹 지도에서 제공하는 좌표는 대부분 EPSG:4326(경위도) 기준입니다. QGIS 프로젝트가 EPSG:5186 같은 투영좌표계로 설정되어 있다면, 좌표 입력 시 반드시 해당 좌표가 EPSG:4326임을 명시하거나, 프로젝트 CRS를 일시적으로 4326으로 바꿔서 입력한 뒤 다시 변환해야 합니다.

좌표계는 GIS 작업의 가장 기초적인 설정이지만, 익숙해지기까지 의외로 많은 시행착오를 겪는 부분이기도 합니다. 핵심만 정리하면, 데이터를 받는 순간 CRS를 확인하고, 분석 전에 모든 레이어를 하나의 투영좌표계로 통일하고, 결과를 눈과 수치 두 가지로 검토하는 세 가지 습관이면 대부분의 오류를 예방할 수 있습니다. 재난안전 분야에서는 이 단순한 확인 절차 하나가 대피소 배치 오류나 침수 면적 오산을 막는 안전망이 됩니다. 좌표계를 제대로 맞췄다면 이제 그 위에서 공간 분석을 수행할 차례인데, 다음 편에서는 벡터 데이터의 버퍼(buffer)와 교차(intersect) 분석이 재난안전 업무에서 어떻게 쓰이는지를 살펴보겠습니다.

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


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

📌 바로가기

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

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