행정동은 대한민국의 행정구역 구분단위의 세부 구분단위입니다. 세부적인 내용은 [링크]를 참조하시면 됩니다. 시도아래에 시군구가 있고 그 하위에는 읍면동으로 나뉘고 읍면은 행정리로, 동는 통으로 나눌 수 있고 행정리와 통은 말단 행정 구역인 반으로 나뉩니다.
우리가 흔히 알고 있는 동단위의 행정구역 관련 코드에는 (1) 행정동 코드, (2) 법정동 코드 (3) 통계청 한국행정구역 분류 등이 있습니다. 흔히들 (2)법정동과 (1)행정동이 있다는 것을 아실텐데 (1)과 (3)이 동일하다고 알고 계신 분이 많을겁니다. 최근 구역은 동일한데 코드가 다른것을 확인했습니다.
(1)과 (2)는 행정안정부 홈페이지에서 확보 가능하고 (3)은 아래에서 설명한다.
위의 세 가지 자료와 관련되어 잘 정리된 글이 존재하여 링크를 걸어둔다. [여기]를 클릭하면 팝업창에서 볼 수 있다.
최신 통계청 통계분류포털의 포털페이지에서 우측의 [행정구역 분류]메뉴로 들어간 다음 좌측의 [자료실]에서 받을 수 있습니다. 현재는 2020.4.1 기준이 최신으로 올라와 있습니다.
태블로로 주소 데이터를 만지다 보면 대체 어디까지 주소가 사전 준비되어야 하고 태블로에서 어느 정도의 가공을 해야 활용이 가능할지가 애매한 경우가 있습니다. 실무에서의 경험을 기준으로 다음과 같은 단계가 있을 듯 합니다.
신구주소의 정제
주소의 표준 포맷
지오코딩
태블로에서의 활용
신구주소의 정제
신주소 구주소는 일단 신주소로 변경해주셔야 합니다. 주소의 정제는 아래의 서비스나 업체를 활용하시기 바랍니다. 가끔식 수동으로 주소정제를 할 생각을 하는 분도 보는데 주소가 1~2천개가 아닌 이상은 솔루션을 사용하는 편을 권해드립니다. 참고로 수집한 원주소는 삭제하지 마시기 바랍니다. 변환 결과를 확인하다 보면 사람은 어느정도 해석되므로 수정해주면 되지만 자동으로 컨버팅은 안된다고 결과가 나오는 일이 제법 있습니다.
도로명 주소 사이트에서 제공해주는 서비스입니다. 50건까지는 수동으로, 3,000건 까지는 파일 첨부로 가능하고 100만건 이하는 전문 업체에서 대행해서 변환을 해서 제공하는 서비스입니다. 공공기관에서 제공하고 있는 서비스이고 100만건이라는 엄청난 양도 하루 이틀만에 변환을 해준다 하니 한 번 활용해보는 것도 괜찮을 듯 합니다.
주소 전환결과를 보시면 알겠지만 최근 대부분의 변환 결과물이 동일한 포맷을 유지하고 있습니다. 시도, 시군구, 신주소를 적고 괄호치고 동명을 적기도 합니다. 확인해보니 도로명주소법 시행령 제3조를 보면 1항 7조에 참고항목이 있는데 이런 것들에 대한 설명은 바로가기에 들어가 보면 나무위키 4번 항목에 잘 설명되어 있습니다. [바로가기] 예시가 잘 되어 있어 아래에 인용합니다. 특별시, 광역시, 일반시에 있는 법정동은 괄호를 열고 적게 되어 있다는데 법정동명을 괄호치고 넣는다..라는 규정이 실제로 존재하는 것은 개인적으로는 처음 확인합니다.
태블로에서 필요한 항목은 공백을 기준으로 주소를 나누어 보았을 때 맨 앞 항목인 [시도]와 두 번째 세번째 항목으로 이루어지는 [시군구]가 있고요, 위의 내용과 같이 괄호 안에 동이 표시되어 있으면 법정동 명도 활용 가능합니다 . (이것은 최근에 알게된 사실이라 동이 없는 지역에 대해서는 좀 더 고민을 해보고 글을 추가하도록 하겠습니다.)
또 아래에서 설명드리는 위도, 경도값이 있으면 시각화에 활용할 여지가 있고 나머지 부분은 태블로에서의 활용이라는 측면에서는 크게 중요하지 않습니다. (실질적으로 우편물 등을 보낸다던가 하는 경우에는 당연히 정확도가 중요하겠으나) 태블로 같이 시도 통계, 시군구 통계 등을 낸다거나 시고/시군구/읍면동에 거주 인구로 농담을 표시한 후에 특정 지점 (위경도)을 찍는 등의 일들에는 제한된 값만 활용하면 된다는 것을 유념해주시기 바랍니다.
지오 코딩
지도위 특정 위치에 마크를 표시하려면 위도 경도가 필요합니다. 주소를 가지고 위도 경도를 확보하는 방법을 지오코딩이라합니다. 보통 다음 두 가지 방법을 추천드립니다.
구글시트에서 awesome Table를 이용하는 방법
구글 시트에 주소를 불러들여서 주소인 칼럼을 지정해주면 위/경도 칼럼에 위/경도를 계산해서 넣어주는 방식입니다.
GIS DEVELOPER에서 공개한 무료툴입니다. PC에 설치하는 타입의 프로그램이고 Awesome Table 보다는 속도가 낫습니다.
외부 업체의 서비스를 이용하는 방법
지오 코딩으로 전문 서비스 업체 검색해보시면 검색되실 겁니다.
태블로에서의 활용
위의 시도, 시군구, 읍면동 그리고 위경도만 있으면 태블로에서 시각적으로 잘 표현할 수 있습니다.
간략하게 문장으로만 표현해보면 주소 정제가 깨끗하게 진행되었다고 가정할 경우 맨 첫칼럼은 시도 정보일 것이고, 두번째와 세번째 칼럼은 시군구에 해당하게 됩니다. 세부적으로는 세번째 칼럼의 맨 끝글자가 “구”로 끝나는 경우에는 두번째 칼럼 + 세번째 칼럼이 시군구 명이고, 그렇지 않은 경우에는 두번째 칼럼만이 시군구 명 입니다. 또 괄호가 있는 경우에는 여는 괄호 “(“를 기준으로 잘라서 오른쪽 칼럼 첫번째 단어가 법정동이 됩니다. 이런식으로 태블로의 계산식을 활용하여 각종 통계 값들을 끌어낼 수 있습니다.
이런 방식으로 진행되는 태블로에서의 데이터 활용 시각화는 분량이 제법 될 것 같으므로 다른 글에서 새롭게 기술하겠습니다.
마무리하며
태블로는 BI툴이기 때문에 데이터가 준비된 것을 전제로 하여 그 다음 활용 부분을 맡는 경우가 많습니다. 주소변환이나 지오 코딩등은 데이터의 준비에 관한 문제로서 통일된 주소록을 확보한다거나 위경도를 확보한다는 것은 사전에 준비되어야 합니다. 주소 데이터는 계속해서 추가되는 것이므로 항상 변환이 필요하되 초기 변환에 대부분의 노력이 들어갈 것이므로 데이터의 양과 질을 고려해서 무료 ~ 적당한 비용 범위까지의 서비스를 이용하는 것도 권해드립니다.
내용을 읽어보면 prj파일이 없다는 것이고 공간 기준 정보가 포함되어 있지 않아서 WGS84 형식으로 가정할 것인데 오류가 있을 수 있다는 내용입니다. 확보한 SHP파일이 불완전하기 때문에 생긴 문제라 볼 수 있습니다.
이 경우 QGIS를 활용하여 간단하게 수정 가능합니다. 물론 제대로된 SHP파일을 구하면 QGIS를 건드릴 이유도 없겠지만 무료 톨이고 간단히 만질 일이 가끔 가다 있기 때문에 기본 조작은 알아두면 편리합니다.
다음의 3가지를 설명드립니다.
QGIS의 설치
VECTOR LAYER 불러들이기
한글CHAR 깨지는 현상 수정
좌표계 지정
LAYER 저장하기 (내보내기)
QGIS의 설치
QGIS는 오픈소스로 유명한 GIS툴입니다. “QGIS” 로 구글링하면 쉽게 찾아 볼 수 있습니다. 다운로드 링크가 바로 보이므로 바로 들어갑니다.
독립설치형 버젼으로 안정화 버전을 선택합니다. 다른 버젼을 선택해도 됩니다.
도네이션을 유도하는 창이 있는데 기부를 하는 것도 좋은 방법이 아닐까 생각해봤습니다.
프로그램의 다운로드가 완료되면 엔터 엔터하여 잘 설치하고 실행해줍니다.
VECTOR LAYER 불러들이기
아래와 같은 화면이 나오는데 이제 확보한 shp파일을 읽어줄 차례입니다.
그림과 같은 메뉴를 선택하면 됩니다.
벡터 레이어인 shp파일을 선택하면 됩니다. 좌표계가 지정 안되어 있었는지 먼가를 물어보지만 일단 오케이 해줍니다. 저 파일들을 4~5개는 항상 묶음으로 함께 보게 됩니다.
대한민국 지도를 보면 잘 불려들어온 것을 볼 수 있습니다.
한글CHAR 깨지는 현상 수정
여기까지 온 분들의 절반 이상은 한글셋이 깨지기 때문에 들어오셨다고 해도 과언이 아닐텐데요, 제대로 읽어들였는지는 아래와 같이 확인 가능합니다.
아무것도 안하고 SHP파일을 불러들였는데 아래와 같이 나왔다면 한글 글자셋이 잘못되어 있는 경우입니다.
이것은 저장된 방식과 읽어들인 방식이 달라서 생기는 문제인데요, 이것은 레이어의 속성을 봐야 합니다.
두 번째 메뉴인 소스를 선택하게 되면 데이터 인코딩 방식이 System으로 되어 있는 것을 볼 수 있는데 이것을 euc-kr (이던 utf-8이던 원래 저장된 방식에 맞게..) 로 지정해주면 됩니다. EUC-KR로 변환하여 속성창을 다시 읽어보니 제대로 보이게 되었습니다.
좌표계의 지정 및 저장
이제 한글이 제대로 보이니 저장을 해야겠습니다. 좌표계도 문제가 되었었는데 저장 옵션에 있습니다. 좌측 LAYER PANE에서 찾아도 안보입니다. 에전 버젼에서는 여기서 잘 되었었는데 없어진 모양입니다. 마음을 가라앉히고 상단의 레이어 메뉴를 선택해줍니다. 원하는 SHP레이어만 저장하려고 하니까요.
SHP 파일은 아크GIS를 만든 ESRI의 형식입니다. SHP파일로 다시 저장할 것이므로 해당 옵션을 선택합니다. 파일 이름도 정해야할텐데 […] 버튼을 누르면 저장할 위치의 SHP파일 목록이 뜨게 됩니다. 이번에는 UTF-8형식으로 저장하려 하니 이름만 살짝 TL-SCCO_EMD_UTF8.shp으로 저장할까 합니다. 각자 알아서 좋은 이름을 저장해주세요.
좌표계는 여전히 오류가 있다고 나오는 경우 맨 마지막의 EPSG:4326 – WGS84로 저장하시면 태블로에서 이상 없이 불러들일 수 있습니다.
[OK]를 눌러주면 이상 없이 저장되고 새 레이어가 하나 생긴 것을 볼 수 있습니다.
저장 결과의 확인
이제 태블로에서 해당 파일을 불러들여 봅니다. 한글 깨짐 없이, 좌표계 지정 오류 없이 잘 들어온 것을 볼 수 있습니다.
태블로 화면도 이상없이 잘 그려지는 집니다. 아래와 같은 기본 SHP파일의 조작에 대해서는 별도로 설명드리겠습니다.
마무리하며
태블로를 사용하시는 분들은 대부분 SHP를 만들기 보다는 사용만을 할 일이 월등히 많습니다만, 가끔식 QGIS가 필요한 경우가 있고 또 다른 경우를 위해서도 QGIS의 간단한 조작방법은 알아두는 것이 좋을 것 같아 정리해 보았고요 이런 경우 도움이 되었으면 좋겠습니다.
디노입니다. 태블로는 국가명, 시도명을 모두 내장하고 있습니다. 그런데 이런 설명을 드리면 글로벌 전체 목록을 받아볼 수 없겠냐 하는 질문을 종종 받습니다. 자동이라니까요라고 말씀을 드려도 목록을 쓸데가 있다 합니다.
아무래도 글로벌 하게 비즈니스를 하는 업체들이었던 것으로 기억합니다. 나중에 들어보니 각 지사등에서 수집된 데이터를 태블로로 그리려고 하면 수집한 데이터가 제각각인 경우가 많아서 표준에 맞추어 한번 정리를 하려고 한다네요. 제가 태블로가 내장하고 있는 국가명을 가지고 포스팅을 한 적이 있는데 같은 방식으로 해결되겠지 했었습니다만, 의외로 이건 좀 다른 방식으로 해결되었습니다.
결과 – 태블로 퍼블릭 임베딩
먼저 태블로 퍼블릭에 게시한 결과물 먼저 공유드립니다. 2020.1 버젼기준으로 작성되었습니다.
The GeocodingData.hyper or City.tds file contains a list of city names in the Tableau geocoding database.
2019.4.0 and later on Windows, GeocodingData.hyper is used to recognize cities. The file is located by default at C:\Program Files\Tableau\Tableau [version]\Local\data.
geocoding관련 tds를 그대로 사용할 수 없어, 필요한 경우 아래와 같은 방법을 사용 한다고 합니다.
State.tds를 열어보시면 GeocodingData.hyper의 State, LocalDataState, StateSynonyms를 사용해서 각각을 Left Outer join, Inner Join으로 사용하고 있는 것을 확인할 수 있습니다.
모델링
위 xml의 내용을 바탕으로 아래와 같이 모델링을 합니다.
저는 나라의 하위에 시도(states)가 오도록 하기 위해 약간 변형해서 모델링을 했습니다. 아래의 이미지를 참조하시고 필요하다면 태블로 퍼블릭에서 태블로 파일을 직접 다운받아서 검토하시기 바랍니다.
감사드려요!
이 문제의 해결은 태블로 한국지사의 기술 이사이신 우재하 이사님과 김연진 이사님이 큰 도움을 주셨습니다.