공공데이터 활용

공공데이터 5가지 함정

Openly Data 2026. 8. 9. 08:15

공공데이터는 무료로 공개되어 있고 출처도 명확합니다. 그래서 처음에는 내려받아서 바로 쓰면 될 것 같습니다. 그런데 실제로 열어보면 예상과 다른 지점에서 막힙니다.

데이터가 잘못된 것은 아닙니다. 여러 기관이 각자의 업무 기준으로 관리하던 정보를 개방한 것이라, 하나의 통일된 규격으로 정리되어 있지 않을 뿐입니다. 이 성격을 모르고 접근하면 원인을 찾는 데 시간을 많이 씁니다.

공공데이터를 다루면서 반복적으로 만나게 되는 문제 다섯 가지와 대응 방법을 정리했습니다.

1. 좌표계가 데이터마다 다릅니다

증상 — 위도·경도 컬럼이 있길래 지도에 찍었는데 엉뚱한 곳에 표시되거나, 값이 37.5가 아니라 195832.4 같은 큰 숫자로 들어 있습니다.

원인 — 국내 공공데이터는 여러 좌표계를 혼용합니다. 대표적으로 다음과 같습니다.

좌표계 특징
EPSG:4326 (WGS84) 위경도. 우리가 아는 37.xx, 127.xx 형태
EPSG:5179 (UTM-K) 미터 단위. 국내 지도 서비스에서 많이 쓰임
EPSG:5186 (중부원점) 미터 단위. 지적·행정 자료에서 자주 등장

대응 — 값의 자릿수로 먼저 판별합니다. 소수점 앞이 두 자리면 위경도, 여섯 자리 이상이면 미터 단위 투영좌표입니다. 어느 쪽인지 확인한 뒤 변환해서 쓰면 됩니다. 파이썬이라면 pyproj로 변환할 수 있습니다.

기술문서에 좌표계가 명시되지 않은 경우도 있는데, 이럴 때는 값을 알고 있는 지점(예: 시청 주소)과 대조해 역산하는 방법이 확실합니다.

2. 인코딩이 UTF-8이 아닙니다

증상 — CSV를 열었더니 한글이 전부 깨져서 보입니다. 코드에서 읽으면 UnicodeDecodeError가 납니다.

원인 — 상당수의 공공데이터 파일이 EUC-KR 또는 CP949로 저장되어 있습니다. 행정 업무에서 오랫동안 쓰인 인코딩이기 때문입니다. 반면 대부분의 프로그램은 UTF-8을 기본값으로 가정합니다.

대응 — 파일을 읽을 때 인코딩을 명시합니다. cp949로 먼저 시도하고, 실패하면 utf-8로 재시도하는 방식이 무난합니다. utf-8-sig도 함께 고려해야 합니다. 앞에 BOM이 붙어 있으면 첫 번째 컬럼명에 보이지 않는 문자가 섞여서, 컬럼을 찾지 못하는 문제가 생깁니다.

API로 받는 경우에도 응답 헤더의 인코딩과 실제 본문이 다른 경우가 있으므로, 한글이 깨지면 인코딩부터 의심하는 편이 빠릅니다.

3. 운영시간과 휴관일이 자유 텍스트입니다

증상 — 운영시간 컬럼을 파싱하려고 했는데 값이 제각각입니다. 09:00~18:00, 09시~18시, 평일 9-18(동절기 17시까지), 상시개방, - 같은 값이 한 컬럼에 섞여 있습니다.

원인 — 이 항목들은 사람이 읽을 것을 전제로 입력됩니다. 기관 담당자가 자유롭게 작성하다 보니 형식이 통일되지 않습니다. 휴관일도 마찬가지여서 매주 월요일, , 매월 첫째·셋째 월요일, 연중무휴가 함께 존재합니다.

대응 — 완벽한 파싱을 목표로 하면 끝이 없습니다. 현실적인 방법은 다음과 같습니다.

  • 자주 등장하는 패턴 몇 가지만 정규식으로 처리한다
  • 파싱에 실패한 값은 원문 그대로 보존해서 함께 보여준다
  • 정규화된 값과 원문을 별도 컬럼으로 나눠 저장한다

원문을 버리지 않는 것이 중요합니다. 파싱 결과가 틀렸을 때 되돌아갈 근거가 남기 때문입니다.

4. 폐업과 변경이 늦게 반영됩니다

증상 — 데이터에는 정상 영업 중으로 되어 있는데 실제로는 문을 닫은 곳이 나옵니다. 반대로 새로 생긴 곳이 데이터에 없기도 합니다.

원인 — 데이터의 갱신 주기와 현실의 변화 속도가 다릅니다. 폐업 신고가 접수되고, 그것이 시스템에 반영되고, 개방 데이터로 다시 배포되기까지 여러 단계를 거칩니다. 기관에 따라 이 주기가 일 단위이기도 하고 월 단위이기도 합니다.

대응 — 데이터의 기준일을 반드시 함께 표시합니다. 이용자가 정보의 시점을 알 수 있어야 판단할 수 있기 때문입니다.

또한 데이터를 최종 답이 아니라 후보를 좁히는 도구로 위치시키는 것이 맞습니다. 최종 확인은 해당 기관이나 시설의 공식 안내에서 하도록 안내하는 편이 정확합니다.

5. 식별자가 안정적이지 않습니다

증상 — 지난달 데이터와 이번 달 데이터를 비교했더니 같은 시설의 관리번호가 달라져 있거나, 같은 시설이 이름만 조금 다르게 두 건으로 존재합니다.

원인 — 관리번호가 기관 내부 업무 기준으로 부여되는 경우, 데이터 재생성 과정에서 값이 바뀔 수 있습니다. 또 지점이 여러 개인 시설이나 이름이 변경된 시설은 중복으로 남기도 합니다.

대응 — 제공된 관리번호만으로 이력을 추적하지 않는 것이 안전합니다. 이름, 주소, 좌표를 조합한 자체 식별 키를 만들어 두면 갱신 시 대조가 가능합니다.

주소 역시 표기가 흔들리므로(도로명과 지번 혼용, 공백과 괄호 차이) 비교 전에 정규화가 필요합니다.

정리하면

다섯 가지 모두 데이터의 결함이라기보다 성격에 가깝습니다. 여러 기관이 각자의 업무 목적으로 관리하던 정보를 개방한 것이므로, 하나의 서비스처럼 정돈되어 있을 것을 기대하면 어긋납니다.

그래서 공공데이터를 다룰 때는 처음부터 다음을 전제로 두는 편이 좋습니다.

  1. 좌표계와 인코딩은 데이터마다 확인한다
  2. 자유 텍스트 항목은 원문을 보존한다
  3. 기준일을 항상 함께 표시한다
  4. 식별자는 직접 만든다

이 네 가지를 처음에 정해두면, 데이터가 바뀌어도 다시 처음부터 확인할 일이 줄어듭니다.

자주 묻는 질문

Q. 좌표계를 모르겠는데 어떻게 확인하나요?
값의 자릿수로 1차 판별하고, 위치를 알고 있는 지점과 대조해 확인합니다. 기술문서에 명시되어 있는 경우가 많으니 먼저 확인해 보시기 바랍니다.

Q. 한글이 깨지는데 파일을 다시 받아야 하나요?
대부분 인코딩 문제이므로 파일을 다시 받을 필요는 없습니다. cp949로 읽어보시면 대체로 해결됩니다.

Q. 데이터가 실제와 다르면 어디에 알려야 하나요?
공공데이터포털의 해당 데이터 페이지에서 제공 기관에 문의할 수 있습니다. 데이터를 관리하는 주체는 포털이 아니라 각 기관이므로, 기관 담당 부서에 직접 연락하는 편이 빠릅니다.


자료 출처 · 공공데이터포털 공공데이터 이용가이드, 국토지리정보원 좌표계 안내
데이터 구조와 갱신 정책은 제공 기관에 따라 다를 수 있습니다.

'공공데이터 활용' 카테고리의 다른 글

공공데이터 갱신 주기  (0) 2026.08.11
공공데이터포털 API 발급  (0) 2026.08.07