GIS 데이터를 다루다 보면 가장 흔하게 만나는 확장자가 바로 .shp입니다. 하지만 초보자들은 "왜 파일 하나가 아니라 여러 개가 세트로 움직이지?"라며 당황하곤 합니다. 오늘은 QGIS 사용자라면 반드시 알아야 할 SHP 파일의 구조부터, 흔히 발생하는 오류 해결법까지 상세히 파헤쳐 보겠습니다.

1. SHP 파일, 사실은 '팀플레이' 파일이다?
SHP 파일은 단일 파일이 아닙니다. 하나의 레이어를 구성하기 위해 최소 3개에서 많게는 10개 이상의 파일이 필요합니다.
- 필수 3인방
- .shp: 도형의 기하학적 형상(점, 선, 면) 정보가 담긴 핵심 파일입니다.
- .shx: 도형 정보의 인덱스로, 데이터를 빠르게 찾을 수 있게 돕습니다.
- .dbf: 도형에 결합된 속성 정보(이름, 면적, 인구수 등)가 표(Table) 형태로 저장된 파일입니다
- 없으면 곤란한 파일:
- .prj: 좌표계 정보가 담겨 있습니다. 이 파일이 없으면 QGIS에서 지도가 엉뚱한 곳(예: 아프리카 앞바다)에 뜰 수 있습니다.
- .cpg: 인코딩 정보(한글 깨짐 방지)를 담고 있습니다.
💡 팁: 누군가에게 SHP 데이터를 보낼 때는 반드시 이 확장자들을 모두 압축(.zip)해서 하나로 보내야 합니다. 하나라도 빠지면 QGIS에서 열리지 않습니다.

2. QGIS에서 SHP 파일 불러오기 및 생성하기
데이터 불러오기
가장 간단한 방법은 탐색기에서 .shp 파일을 QGIS 화면으로 드래그 앤 드롭하는 것입니다. 또는 상단 메뉴의 레이어 -> 레이어 추가 -> 벡터 레이어 추가를 통해 경로를 지정할 수 있습니다.
데이터 새로 만들기
나만의 지도를 그리고 싶다면 레이어 -> 레이어 생성 -> 새 Shapefile 레이어를 선택하세요. 이때 점(Point), 선(Line), 면(Polygon) 중 어떤 형태를 그릴지, 그리고 좌표계는 무엇으로 할지 결정해야 합니다. 한국이라면 보통 EPSG:5186을 자주 사용합니다.

3. 가장 흔한 문제: "한글이 깨져요!" (인코딩 해결법)
SHP 파일은 오래된 규격이라 인코딩 설정에 민감합니다. 속성 테이블을 열었을 때 한글이 외계어처럼 나온다면 다음 방법을 시도해 보세요.
- 해당 레이어 우클릭 -> 속성(Properties) 클릭.
- 원본(Source) 탭으로 이동.
- 데이터 소스 인코딩 설정을 System 또는 EUC-KR, 혹은 UTF-8로 변경해 보며 확인합니다.
- 만약 이렇게 해도 안 된다면, 파일을 내보낼 때(Export) 인코딩을 명시적으로 지정하여 새 파일로 저장하는 것이 가장 확실합니다.
4. SHP 파일의 치명적인 한계점 (2026년 기준)
SHP는 1990년대에 만들어진 포맷이라 현대적인 작업 환경에서 몇 가지 제약이 있습니다.
- 용량 제한: 하나의 파일 세트가 2GB를 넘을 수 없습니다. 대용량 위성 데이터나 정밀 지적도를 다룰 때 치명적입니다.
- 필드명 길이 제한: 속성 테이블의 열 이름(필드명)이 영문 기준 10자를 넘지 못합니다. 한글은 더 짧아져서 이름이 잘리는 경우가 많습니다.
- 널(Null) 값 처리 불능: 데이터가 비어 있는 것과 '0'인 것을 구분하기 어렵습니다.

5. 결론: 이제는 GeoPackage(GPKG)로 갈아탈 때?
QGIS 공식 문서와 전문가들은 이제 SHP 대신 GeoPackage(.gpkg) 사용을 권장합니다. GPKG는 파일 하나에 여러 레이어를 담을 수 있고, 용량 제한도 없으며, 속도도 훨씬 빠릅니다.
하지만 여전히 공공기관이나 타 협업 기관에서 SHP를 요구하는 경우가 많으므로, 두 포맷의 특성을 모두 이해하고 상황에 맞게 변환하여 사용하는 능력이 중요합니다.
'4. [Data&SW] 데이터 분석실 > QGIS' 카테고리의 다른 글
| [QGIS 팁] 쉐이프파일(Shapefile)은 이제 그만! 왜 GeoPackage를 써야 할까? (0) | 2026.02.15 |
|---|---|
| QGIS(Quantum GIS) 공간데이터 분석용 오픈소프 소프트웨 (0) | 2026.02.11 |