행정동과 통계청 행정구역 분류

행정동은 대한민국의 행정구역 구분단위의 세부 구분단위입니다. 세부적인 내용은 [링크]를 참조하시면 됩니다. 시도아래에 시군구가 있고 그 하위에는 읍면동으로 나뉘고 읍면은 행정리로, 동는 통으로 나눌 수 있고 행정리와 통은 말단 행정 구역인 반으로 나뉩니다.

우리가 흔히 알고 있는 동단위의 행정구역 관련 코드에는 (1) 행정동 코드, (2) 법정동 코드 (3) 통계청 한국행정구역 분류 등이 있습니다. 흔히들 (2)법정동과 (1)행정동이 있다는 것을 아실텐데 (1)과 (3)이 동일하다고 알고 계신 분이 많을겁니다. 최근 구역은 동일한데 코드가 다른것을 확인했습니다.

(1)과 (2)는 행정안정부 홈페이지에서 확보 가능하고 (3)은 아래에서 설명한다.

위의 세 가지 자료와 관련되어 잘 정리된 글이 존재하여 링크를 걸어둔다. [여기]를 클릭하면 팝업창에서 볼 수 있다.

최신 통계청 통계분류포털의 포털페이지에서 우측의 [행정구역 분류]메뉴로 들어간 다음 좌측의 [자료실]에서 받을 수 있습니다. 현재는 2020.4.1 기준이 최신으로 올라와 있습니다.

행정동 테이블의 원본 :
http://kssc.kostat.go.kr/ksscNew_web/download/%ED%95%9C%EA%B5%AD%ED%96%89%EC%A0%95%EA%B5%AC%EC%97%AD%EB%B6%84%EB%A5%98_2020.4.1.%20%EA%B8%B0%EC%A4%80(%EC%88%98%EC%A0%95).xls

행정동의 shp파일은 [여기]를 방문하시면 확인할 수 있습니다.

태블로로 내용을 그리면서 검토하다보니 기초광역단체가 있는 일반구의 경우 기초광역단체명을 빼고 일반구명만 적어두어 이것만 가지고는 활용이 불가하여 이름을 수정하여 아래에 게시했습니다. (경기도 수지구 –> 경기도 용인시 수지구)

구글시트 링크 : https://docs.google.com/spreadsheets/d/1ka5lfCKIXaC72gdoPUJTzdElQc5_LJrJ5bhApHm_yWs/edit#gid=0

CSV 파일 링크 :
http://dgtnmd.net/wp-content/uploads/2020/06/한국행정구역분류_2020.4.1.-태블로용.csv

태블로 퍼블릭 샘플 : [바로가기]

구글시트 웹공유 :

 2,233 total views,  2 views today

크롬 익스텐션의 오프라인 설치

들어가며

앞에서 크롬 익스텐션을 이용한 화면전환에 대해 설명한 적이 있습니다. [바로가기] 그런데 이 익스텐션의 설치는 인터넷 연결이 전제되어야 합니다. 망분리 기관인 고객사에서는 인터넷 연결이 되지 않아 익스텐션의 설치가 여러운 상황이었습니다. 이런 경우 오프라인으로 설치하는 방법에 대해서 공유합니다.

CRX, zip 파일의 확보

먼저 크롬 익스텐션의 설치파일인 CRX파일의 확보가 선행되어야 합니다. 그런데 간단할줄로만 알았던 CRX파일의 확보가 생각보다 쉽지 않았습니다. 여러 시도끝에 CRX extractor/downloader 라는 또 다른 익스텐션을 이용해서 성공했는데 이 과정을 설명합니다.

https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

먼저 인터넷이 되는 컴퓨터로 이 링크로가면 CRX Extractor/Downloader 익스텐션이 보입니다. 이것을 설치해줍니다. 그림에도 나와 있지만 이 익스텐션의 특징은 CRX파일 뿐 아니라 ZIP파일로도 다운로드가 가능하다는 것입니다. CRX는 드래그&드롭으로 설치 가능하지만, 수동 설치시에는 ZIP파일이 사용하기 편리합니다.

그리고는 CRX를 얻기를 원하는 익스텐션으로 이동합니다. 저의 경우에는 Tab Rotate이므로 그곳으로 이동합니다.

https://chrome.google.com/webstore/detail/tab-rotate/pjgjpabbgnnoohijnillgbckikfkbjed

여기서 Get CRX 익스텐션을 우클릭하여 Download CRX for this extension을 선택하고 CRX를 받을지 ZIP을 받을지를 선택합니다. 페이지는 CRX를 얻기를 원하는 그 익스텐션 설치페이지 상태여야 합니다.

그러면 Tab Rotate.crx 혹은 Tab Rotate.zip을 다운로드하게 됩니다.

이제 이 파일을 망분리된 상태의 다른 피시로 usb등을 통해 가져갑니다.

CRX 설치 : CRX 파일을 드래그 앤 드롭으로 설치

먼저 CRX파일 설치 방법입니다. 확장 프로그램 관리 페이지로 이동하여 우측의 [개발자 모드] 스위치를 켜줍니다.

이 상태에서 탐색기에서 crx파일을 이 폴더 안으로 끌어 넣으면 설치하겠느냐고 물어본 후 자동으로 설치가 됩니다.

이제 익스텐션의 설정값을 잘 설정해서 운용하면 됩니다.

ZIP설치 : 드래그앤 드롭이 안되는 경우

드래그앤 드롭 방식의 설치가 안된다는 이슈가 최근 있어서 추가 합니다. 어떤 이유에서인지 드래그앤 드롭 방식으로 설치가 안되는 경우 다음을 따라하시기 바랍니다.

우선 chrome://extensions/ 여기로 이동해서 우측의 [개발자 모드]를 켜서 개발자 모드로 들어가게 되면 좌측 상단에 [압축해제된 확장 프로그램을 로드합니다] 버튼이 보이는데 이 버튼을 클릭합니다.

zip파일이 있는 곳으로 이동하여 [폴더 선택]을 눌러주면 설치가 자동으로 딥니다.

이제 설치가 잘 되었아니 익스텐션을 잘 활용합니다.

맺으며

크롬 익스텐션은 오프라인 설치가 가능한데 GetCRX 익스텐션을 활용하여 설치를 원하는 Tab Rotate 익스텐션의 CRX파일을 확보한 다음, 이것을 오프라인 컴퓨터로 복사하여 개발자 모드에서 끌어놓으면 (혹은 [압축해제된 확장 프로그램을 로드합니다] 버튼을 눌러 버튼을 지정하면)으면 설치하여 운용가능합니다.

 6,325 total views,  1 views today

태블로와 주소 정제

들어가며

태블로로 주소 데이터를 만지다 보면 대체 어디까지 주소가 사전 준비되어야 하고 태블로에서 어느 정도의 가공을 해야 활용이 가능할지가 애매한 경우가 있습니다. 실무에서의 경험을 기준으로 다음과 같은 단계가 있을 듯 합니다.

  • 신구주소의 정제
  • 주소의 표준 포맷
  • 지오코딩
  • 태블로에서의 활용

신구주소의 정제

신주소 구주소는 일단 신주소로 변경해주셔야 합니다. 주소의 정제는 아래의 서비스나 업체를 활용하시기 바랍니다. 가끔식 수동으로 주소정제를 할 생각을 하는 분도 보는데 주소가 1~2천개가 아닌 이상은 솔루션을 사용하는 편을 권해드립니다. 참고로 수집한 원주소는 삭제하지 마시기 바랍니다. 변환 결과를 확인하다 보면 사람은 어느정도 해석되므로 수정해주면 되지만 자동으로 컨버팅은 안된다고 결과가 나오는 일이 제법 있습니다.

  • juso.go.kr 도로명 주소 전환 서비스 [바로가기]
    • 도로명 주소 사이트에서 제공해주는 서비스입니다. 50건까지는 수동으로, 3,000건 까지는 파일 첨부로 가능하고 100만건 이하는 전문 업체에서 대행해서 변환을 해서 제공하는 서비스입니다. 공공기관에서 제공하고 있는 서비스이고 100만건이라는 엄청난 양도 하루 이틀만에 변환을 해준다 하니 한 번 활용해보는 것도 괜찮을 듯 합니다.
  • 오픈메이트 새주소정제 지오코딩 서비스 [바로가기]
    • 들어가서 샘플 데이터로 체크해보면 상당히 변환 결과가 깔끔하게 떨어집니다.
    • 지점의 위경도를 계산해주는 지오코딩까지 제공한다고 나와 있습니다.
  • 수지원소프트 주소정제전환서비스 [바로가기]
    • 검색하면 이 업체에서 올린 글들이 많이 검색됩니다.
    • 여러가지 공공 사업쪽에 많은 레퍼런스가 있다 합니다.

주소의 표준 포맷

주소 전환결과를 보시면 알겠지만 최근 대부분의 변환 결과물이 동일한 포맷을 유지하고 있습니다. 시도, 시군구, 신주소를 적고 괄호치고 동명을 적기도 합니다. 확인해보니 도로명주소법 시행령 제3조를 보면 1항 7조에 참고항목이 있는데 이런 것들에 대한 설명은 바로가기에 들어가 보면 나무위키 4번 항목에 잘 설명되어 있습니다. [바로가기] 예시가 잘 되어 있어 아래에 인용합니다. 특별시, 광역시, 일반시에 있는 법정동은 괄호를 열고 적게 되어 있다는데 법정동명을 괄호치고 넣는다..라는 규정이 실제로 존재하는 것은 개인적으로는 처음 확인합니다.

태블로에서 필요한 항목은 공백을 기준으로 주소를 나누어 보았을 때 맨 앞 항목인 [시도]와 두 번째 세번째 항목으로 이루어지는 [시군구]가 있고요, 위의 내용과 같이 괄호 안에 동이 표시되어 있으면 법정동 명도 활용 가능합니다 . (이것은 최근에 알게된 사실이라 동이 없는 지역에 대해서는 좀 더 고민을 해보고 글을 추가하도록 하겠습니다.)

또 아래에서 설명드리는 위도, 경도값이 있으면 시각화에 활용할 여지가 있고 나머지 부분은 태블로에서의 활용이라는 측면에서는 크게 중요하지 않습니다. (실질적으로 우편물 등을 보낸다던가 하는 경우에는 당연히 정확도가 중요하겠으나) 태블로 같이 시도 통계, 시군구 통계 등을 낸다거나 시고/시군구/읍면동에 거주 인구로 농담을 표시한 후에 특정 지점 (위경도)을 찍는 등의 일들에는 제한된 값만 활용하면 된다는 것을 유념해주시기 바랍니다.

지오 코딩

지도위 특정 위치에 마크를 표시하려면 위도 경도가 필요합니다. 주소를 가지고 위도 경도를 확보하는 방법을 지오코딩이라합니다. 보통 다음 두 가지 방법을 추천드립니다.

  • 구글시트에서 awesome Table를 이용하는 방법
    • 구글 시트에 주소를 불러들여서 주소인 칼럼을 지정해주면 위/경도 칼럼에 위/경도를 계산해서 넣어주는 방식입니다.
  • 무료 툴을 이용하는 방법 (Geocoder-Xr)
  • 외부 업체의 서비스를 이용하는 방법
    • 지오 코딩으로 전문 서비스 업체 검색해보시면 검색되실 겁니다.

태블로에서의 활용

위의 시도, 시군구, 읍면동 그리고 위경도만 있으면 태블로에서 시각적으로 잘 표현할 수 있습니다.

간략하게 문장으로만 표현해보면 주소 정제가 깨끗하게 진행되었다고 가정할 경우 맨 첫칼럼은 시도 정보일 것이고, 두번째와 세번째 칼럼은 시군구에 해당하게 됩니다. 세부적으로는 세번째 칼럼의 맨 끝글자가 “구”로 끝나는 경우에는 두번째 칼럼 + 세번째 칼럼이 시군구 명이고, 그렇지 않은 경우에는 두번째 칼럼만이 시군구 명 입니다. 또 괄호가 있는 경우에는 여는 괄호 “(“를 기준으로 잘라서 오른쪽 칼럼 첫번째 단어가 법정동이 됩니다. 이런식으로 태블로의 계산식을 활용하여 각종 통계 값들을 끌어낼 수 있습니다.

이런 방식으로 진행되는 태블로에서의 데이터 활용 시각화는 분량이 제법 될 것 같으므로 다른 글에서 새롭게 기술하겠습니다.

마무리하며

태블로는 BI툴이기 때문에 데이터가 준비된 것을 전제로 하여 그 다음 활용 부분을 맡는 경우가 많습니다. 주소변환이나 지오 코딩등은 데이터의 준비에 관한 문제로서 통일된 주소록을 확보한다거나 위경도를 확보한다는 것은 사전에 준비되어야 합니다. 주소 데이터는 계속해서 추가되는 것이므로 항상 변환이 필요하되 초기 변환에 대부분의 노력이 들어갈 것이므로 데이터의 양과 질을 고려해서 무료 ~ 적당한 비용 범위까지의 서비스를 이용하는 것도 권해드립니다.

 2,158 total views,  1 views today

SHP의 한글이 깨지거나 좌표계 오류인 경우 QGIS의 기본 조작법

아래와 같은 오류메시지를 보는 경우가 있습니다.

내용을 읽어보면 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의 간단한 조작방법은 알아두는 것이 좋을 것 같아 정리해 보았고요 이런 경우 도움이 되었으면 좋겠습니다.

 8,332 total views

태블로 대시보드 화면 전환 상황판을 위한 크롬 익스텐션

들어가며

대시보드 여러 장을 돌려가면서 사용할 일이 있습니다. 예를 들어 대한민국 일자리 상황판이나 제조 현황판, 코로나 상황판 이런 것들이 될텐데요, 한 번에 여러개의 KPI를 한 곳에 모아놓은 종합 대시보드를 만들어서 그것을 볼 수도 있겠지만 여러개의 KPI별로 만들어진 대시보드 여러장을 돌려가면서 살펴볼 수 도 있습니다.

대시보드의 데이터 갱신을 위해 지금까지 사용해온 방식은 몇 가지 있고 그 중 하나는 크롬의 익스텐션을 이용하는 것입니다. 처음 들어보시는 분도 있겠지만 크롬 브라우저의 기능을 강화해주는 브라우저에 설치하는 보조 프로그램이 익스텐션이라 할 수 있습니다.

이번에는 데이터 갱신 뿐만 아니라 몇 개의 화면을 로테이팅 할 필요가 있어서 그런 익스텐션을 찾아보았습니다.

탭-로테이트 크롬 익스텐션

탭-로테이트라는 익스텐션을 소개합니다. 몇 가지 익스텐션을 테스트해 보면서 가장 필요한 특징은 다음 세 가지 정도였는데요 아래에서 설치하면서 확인해보겠습니다.

  • Full Screen이 지원되어야 한다
  • 사전 로딩이 지원되어야 한다.
  • 화면 및 동작 정의가 편리해야 한다.

먼저 설치는 통상의 크롬 익스텐션 설치 방법을 따르면 됩니다. 혹시라도 망분리 등으로 오프라인 설치 방법이 필요하신 분은 [여기]를 클릭해서 내용을 참고하시기 바랍니다.

https://chrome.google.com/webstore/detail/tab-rotate/pjgjpabbgnnoohijnillgbckikfkbjed

설치는 [Chrome에 설치] 버튼을 눌러서 하게 됩니다. 확인을 해서 설치해 주게 되고요.

필요한 탭을 열어 놓은 상태에서 실행 버튼인 [▶]을 눌러주게 됩니다. 기부를 권유하는 창이 뜨는데 관심 있는 분은 기부도 좋지 않을까 생각합니다.

플레이/pause버튼을 우 클릭하여 [옵션]을 열면 텍스트 에디터가 나옵니다. 코드라고 무턱대고 겁먹지 마시고요 내용을 살펴보겠습니다.

  • URL목록이 보이고
  • duration은 유지 시간입니다.
  • tabReloadIntervalSeconds 는 해당 탭을 리로드 하는 타이밍입니다. 데이터가 가끔씩 한 번 바뀌는 경우에는 인터벌을 크게 놔도 좋을 듯 합니다.
  • 최상단에도 옵션이 있는데 fullscreen, autoStart는 단어만으로 의미를 아실 듯 합니다.
  • lazyLoadTabs은 탭이 열리기 전에 미리 url을 로딩한다는 의미로서 화면 로딩시간이 느린 페이지의 경우 다른 페이지가 사용자에게 보여지는 동안에 미리 url을 로딩하기 때문에 모래시계가 보여지는 시간을 최소화 해줍니다. 가장 중요한 기능 같습니다.

옵션 설정해주기

한편 태블로 화면의 경우에는 서버 url을 그대로 사용하셔도 되고요, 혹은 url의 끝부분에 .pdf, .png를 붙여주게 되면 pdf나 이미지로 로딩되게 됩니다. 위의 lazyLoadTabs 기능으로 인해서 직접 로딩을 해도 되는지 판단이 필요할 듯 합니다.

샘플을 아래에 붙입니다.

{
“settingsReloadIntervalMinutes”: 1,
“fullscreen”: true,
“autoStart”: true,
“lazyLoadTabs”: true,
“websites”: [
{
“url”: “http://lgpoc.planit.ai/#/views/1/1?:iid=3”,
“duration”: 10,
“tabReloadIntervalSeconds”: 15
},
{
“url”: “http://lgpoc.planit.ai/#/views/1/2?:iid=3”,
“duration”: 10,
“tabReloadIntervalSeconds”: 15
},
{
“url”: “http://lgpoc.planit.ai/#/views/1/3?:iid=3”,
“duration”: 10,
“tabReloadIntervalSeconds”: 300
},
{
“url”: “http://lgpoc.planit.ai/#/views/1/1_1?:iid=3”,
“duration”: 10,
“tabReloadIntervalSeconds”: 15
}
]
}

태블로는 뷰의 url을 로딩하면 인터렉티브한 태블로 화면이 나타나게 되고요, url뒤에 pdf나 png를 붙이면 pdf나 png가 로딩되게 됩니다.

제가 테스트를 해보니 일반 인터렉티브 화면의 경우 아래 그림과 같이 테두리를 자동으로 없애기가 어려웠습니다. [전체 화면] 버튼을 눌러도 리로딩할 때 자꾸 원상태로 돌아가더라고요.

이미지를 로딩하게 되는 경우에는 아래와 같고, 이미지의 사이즈도 지정하실 수 있습니다.

?:size=3000인 파라미터를 붙이게 되면 아래 그림처럼 폭이 3000인 이미지가 로딩됩니다. 이 로테이션을 운용할 장비의 해상도를 확인해서 원하는 사이즈로 이미지를 다운로드 받으시면 되겠습니다.

응용

이미지 사이즈가 다르거나 혹은 제목 등을 넣고 싶다면 위 url을 html페이지를 만들어 내장시키면 됩니다. 위 url 대신 로컬 html을 로테이션 시키는 것입니다.

https://help.tableau.com/current/pro/desktop/ko-kr/embed_ex_img.htm

예를 들어 NOTEPAD혹은 에티터를 열어 page1.html을 만든 다음 아래와 같은 코드를 내장시킵니다. 이와 같은 페이지를 page1, page2, page3로 만들어 로테이션을 시키게 됩니다.

이 경우 이미지가 스크린 사이즈랑 딱 맞지 않는 경우 height혹은 width 중 하나만을 100%로 놓아야 이미지 비율 왜곡이 생기지 않게 됩니다. html 샘플은 [여기]를 클릭해서 다운로드하세요.

마무리

전반적으로 원하는 기능은 전부 있었습니다만, 사람이 어느정도 기능이 지원되면 또 욕심이 생기는지라 하면 전환간에 부드러운 전환은 안되는가 하는 욕심도 슬며시 생겼습니다. 1) smooth하게 탭을 전환해주는 익스텐션이 있을까 하는 생각과 함께 2) 오픈 소스이니 소스를 고치는 것도 방법이 아닐까 했습니다. (물론 folk를 내는 순간 업데이트는 포기해야 하겟지요)

이번에는 이 정도로 일단 마무리하려고 하는데요, 간이하게 대시보드로 상황판이 필요한 분들에게 도움이 되시기 바랍니다.

추가팁 – 잘되는 익스텐션 복사하기

혹시 잘 운용되고 있는 크롬의 익스텐션을 복사할 수 있을지 확인해봤는데 그것도 가능합니다.

먼저 사용자 계정별로 익스텐션을 설치하게 되므로 그 디렉토리를 찾습니다. 요령은 아래의 커맨드를 주소창에 붙여 나온 결과값을 보고 폴더의 위치를 확인합니다.

chrome://version

이것을 누르게 되면 이런 이미지를 볼 수 있습니다. 여기서 프로필 경로가 가장 중요합니다. 드래그하여 복사를 해주세요.

(윈도우+E 버튼을 눌러) 탐색기를 켜준 주소창에 위 주소를 붙여넣어 다음 해당 폴더로 이동하여 Extension폴더로 들어갑니다. 프로파일은 크롬의 사용자 추가시마다 일련번호를 붙여서 숫자가 늘어나는 듯 했습니다. 위의 프로필 경로가 가장 확실한 방법입니다.

익스텐션 폴더에 들어가면 여러 익스텐션이 있는데 이게 또 암호입니다.


어떤 폴더를 복제할지는 확장 프로그램 관리로 가봐야 합니다. 여기에 개발자 모드를 켜서 프로그램 아이디를 확인하시거나 혹은 해당 익스텐션의 [세부정보]를 눌러 들어가면 주소창에 프로그램 아이디가 보입니다.


여기서는 pjgjpabbgnnoohijnillgbckikfkbjed 이므로 이 이름으 가진 폴더를 찾으면 됩니다.

이 폴더를 압축하여 zip파일을 만들어 필요한 사람에게 전송하면 되겠습니다.

 1,875 total views

내 패스포드 안의 스탬프 (그림효과가 나는 지도를 활용해서 내 viz멋지게 만들기)

디노입니다. 태블로 갤러리를 살펴보다가 디자인이 멋진 viz가 있어서 소개합니다. 바로 다음 viz인데요. Stamps.tms 입니다.

임베딩 하다보니 창이 좀 좁네요. 여기를 클릭하시면 새창에서 보실 수 있습니다.

깔끔한 디자인도 멋지고, 배경지도도 괜찮아 보여서 다운로드 받아서 살펴봤습니다.

곡선라인은 MakePoint, MakeLine으로 표시해두었네요. MakePoint 함수를 살펴보면 간단히 위경도를 가져다가 점을 선언했습니다. 시작점, 종료점 모두 적용했네요.

선사이의 항공로선을 이어주려면 MakeLine을 사용하게 됩니다. 위에서 선언한 두 점 사이에 선을 그어주는 계산식을 만드는 것만으로도 두 점 사이의 항공로를 표현하게 됩니다. 지구는 둥근데 우리는 이것을 펼쳐놓은 네모난 지도를 보고 있으므로 시각의 왜곡이 존재하는 것이겠죠.

곡선이 상당히 아름답습니다. 이 기능 출시전에는 지구 곡율을 반영한 여러가지 함수를 조합해서 어렵게 어렵게 구현했었습니다.


여기서 푸른 색의 지도 또한 눈에 띕니다. 브이월드니 다음 지도, 구글 지도 찾는 분들이 대부분 디테일한 지도를 원하신다면, 이런 그림 느낌이 나는 지도들은 디테일이 보이면 오히려 좀 불편한, 분위기가 나는 지도들이 필요한 경우에 많이 쓰입니다. 대부분 지구 전체 혹은 태평양 지도 같은 넓은 지역을 커버하는 지도가 필요한 경우입니다.

그런데 실제로 이런 그림과 같은 지도들도 강력한 해상도를 가지고 있습니다. 우리가 잘 아는 강남역을 향해서 줌인해 볼까요?

강남역의 웬만한 건물은 선명하게 보이고 있습니다. 사람이 일일이 그리지는 않았을 것이고 정밀한 지도를 그림과 같은 느낌이 나도록 가공하였음은 충분히 짐작할 수 있는데도 이렇게 줌인해볼 때 마다 지도 마다 전부 다른 느낌이 들어서 감탄을 하고는 합니다.


여기서 지도 고를때의 팁 한가지만 더 말씀드리면요, 바로 독도와 동해입니다. 위와 같이 지도의 아름다움과 이미지가 주는 효과에 감탄을 하다보면 가끔 잊는 일이 있는데 바로 독도가 제대로 표시되어 있는지 동해가 아니라 일본해라고 표시되어 있는가입니다.

독도를 찾느라 한참 걸렸습니다만, 독도는 제 위치에 제 명칭으로 표시가 되어 있습니다.

아무리 지도가 아름다워도 일본해라고 있는 지도는 사용하면 문제가 생길 수 있습니다. 저는 밤 12시가 다 된 시간에 다급한 고객의 전화를 받은 적이 있는데요, 저희가 여러 지도 중에서 디자인이 맘에 드는 지도를 넣어드렸고 고객도 ok를 하셨던 건인데 누군가가 공개된 viz에서 지도를 이리 저리 옮겨보다(panning)가 동해가 아닌 Sea of Japan이 있는 것을 발견하고 신문사에 연락을 했다는 것이었습니다.

전화를 받자 마자 야간에 부랴 부랴 지도를 수정해드렸고, 다음날에 신문 기사가 나가는 것을 막았다고 전해들었는데요. “공공기관에서 그런 것도 확인하지 않고 VIZ를 만들어서 공개하다니 ” 하는 기사가 나갈뻔 한 사건이었습니다. 이런 일이 있고 난 다음부터는 습관적으로 동해와 독도는 찾아보는 습관이 생겼습니다.

이런 경우 제대로 표기가 된 지도를 사용하는 것이 가장 좋겠습니다만, 사정상, 디자인상 여의치가 않은 경우 지도의 PANNING 기능을 막는 방법인데요 아래처럼 맵 – 맵 옵션 – 3개 선택사항 해제로서 가능합니다. 이렇게 되면 지도가 고정되어 사용자가 패닝을 통해서 이리 저리 옮겨다니면서 의도하지 않은 검토를 하지 못하게 할 수 있습니다.


어떤 지도를 사용했는지를 살피기 위해서 데스크탑에서 맵을 눌러봤습니다.

stamps란 이름을 가진 지도입니다. 이것을 다른 viz에서 사용하기 위해서는 Manage Maps란 메뉴를 눌러줍니다. 간단한 특성값이 보이는데 잘은 모르겠네요.

살피다 보니 export기능이 있습니다. tms파일 형식으로 내보내줘서 나중에 사용할 수 있을듯 합니다.

tms파일을 열어보니 api 키값과 서버 주소등이 보입니다.

여기를 클릭하시면 stamps.tms 파일을 압축한 파일을 다운로드 받을 수 있습니다. 필요하신 분들 잘 활용하시기 바랍니다. 키값도 보이고 있는 것을 보면 저작권, 사용권등의 문제들에 대해서는 추가 적인 검토가 필요하지 않을까 생각해봤습니다. 나중에 이런 맵들의 저작권등에 대해서도 한번 검토하는 글을 올려보겠습니다.

이 tms 파일을 my Tableau Repository폴더에 넣어두면 태블로 데스크탑에서 지도 그리려고 할 때 선택목록에 뜨게 됩니다. 만일 폴더에 자동 목록이 뜨지 않으면 Import를 눌러서 로딩해보시기 바랍니다.

예쁘고 아름다운 지도를 포한한 멋진 viz를 만드시기 바랍니다.

 1,231 total views,  1 views today

태블로 화면 오토 리프레시 총정리

디노입니다. 화면의 자동 갱신 (데이터 갱신도 마찬가지)을 물어보시는 분들이 많습니다. 며칠전 질문에 답변을 한 김에 정리해보았습니다.

1. html 메타 태그

html혹은 웹페이지에 임베딩한 경우에 유용한 방법입니다. 방법은 웹에서 쉽게 구글링 가능한데 html페이지에 아래 검정색 부분의 meta태그를 추가하는 방법입니다. (링크) 이해가 간단하고 조작이 쉽죠. 임베딩한 경우에만 유효하다는 단점이 있습니다.

<meta http-equiv=”refresh” content=”5″ />

2. 페이지 자체를 리프레시하는 크롬 익스텐션

요즘 많이 사용하고 있는 크롬 브라우저는 익스텐션이 있습니다. 여러가지 브라우저의 활용을 극대화하는 추가 기능일텐데요, 많은 개발자들이 재미있는 기능들을 익스텐션으로 개발하여 공유하고 있습니다. 크롬 전용이라는 제한은 있지만 현실적으로 동작합니다. 이와 유사한 개념은 파폭이나 ie에도 있을 듯 합니다. 개인적으로는 복잡할 것 없고 소스의 수정 또한 없으며 또 자동 리프레시를 원하는 경우가 대부분의 경우 전시용도가 많을 것이므로 누가 건드릴 일이 없는 화면일 것이라 이 방법을 추천드립니다.

https://chrome.google.com/webstore/search/auto%20refresh

유사한 응용 방법으로 전시회 등에서 특정 몇 개의 태블로 화면을 몇 초 간격으로 계속 돌려서 전시해야 하는 경우에도 무척 우용합니다.

3.  태블로 리프레시 크롬 익스텐션

Refresh Tableau Extension
검색을 이런 딱 맞춤으로 태블로 용으로 개발된 크롬의 익스텐션으로 나온 제품도 있네요. 다만 다운로드는 40건에 불과하고 평가가 없고, 안써봐서 모르겟음. 물론 대세는 아래의 익스텐션입니다.

4. 태블로 익스텐션

오픈 소스 좀 있습니다. 1) uiNamespace 리프레시 모듈소스 좀 점검하여 수정한 zip 파일 첨부합니다. 

폐쇠망이라면 내부에 웹서버 돌리시고, trex파일의 url맞춰주시면 데스크탑에서 문제 없이 돌아갑니다. configureation을 하러 들어가게 되면 데이터 소스 목록이 나타나고 리프레시할 데이터 소스를 선택하면 됩니다. 완성도도 있고 잘 동작하네요

테스트가 끝나면 서버에도 등록을 하셔야 합니다. ui는 심심합니다. 설치에 큰 어려움은 없습니다. 망분리 상황이라면 외부 참조를 하고 있는 js라이브러리들은 다운받아서 망 안으로 전부 이동시켜야 합니다. 잘 돌아갑니다.  

사용법 매뉴얼은 다음과 같습니다. https://onlinehelp.tableau.com/current/pro/desktop/ko-kr/dashboard_extensions.htm

2) 아래 링크는 다른 익스텐션인데 좀 예전 방식의 javascript api를 사용한 refresh 방법인데 예전 방식이므로 적절치 않은데 디자인 UI 컨셉은 좋습니다.

 https://databoss.starschema.net/auto-refresh-tableau-dashboard-without-embedding/

5. 태블로 익스텐션 개발

내부에 능숙한 개발자가 있다면 태블로 extension api를 사용해서 개발을 하는 것도 방법입니다. 만일 개발을 하게 된다면refresh는 위 4와 같은 UI로가고 config설정창은 uiNamespace 이것을 좀 수정하면 어떨까 생각해보았습니다. 여력이 되면 완성하여 공개하는 것도 고려하고 있습니다만, 좀처럼 짬이 잘 나지는 않는군요.

https://tableau.github.io/extensions-api/

맺으며

지금까지 태블로 서버 화면의 오토리프레시 방안에 대해 살펴보았습니다. 도움이 되셨기 바랍니다.

 1,476 total views,  1 views today

VWORLD 4. tms 파일 서버에 게시하기

디노입니다. 앞의 글에서는 vworld 이미지를 사용해서 외부 인터넷이 안되는 고립망 내에서 태블로 사용자는 누구나 맵 서비스를 이용할 수 있도록 하는 방법을 알아봤습니다. 이번에는 고립망내에서 브라우저만으로 태블로를 만나야 하는 익스플로러 사용자의 입장에서 지도 서비스에 대해서 알아보려고 합니다.

브라우저에서의 배경 맵 스타일 변경

최근 태블로 2020.1버젼에서는 브라우저 (편집모드)에서 배경 맵 스타일을 변경할 수 있게 되어서 특히 웹으로만 태블로를 대할 수 밖에 없는 익스플로러나 뷰어 사용자들이 상당히 편리해졌습니다. 선택할 수 있는 배경 맵 스타일은 기본 태블로 지도와 사용자 지정 맵 등이고 다음 링크에 연결하는 방법이 나와 있습니다.

https://kb.tableau.com/articles/howto/creating-a-custom-map-connection?lang=ko-kr

그런데 데스크탑에서 vworld.tms파일을 사용한 경우 서버에 VIZ를 올리게 되면 맵 목록에 vworld지도가 추가되긴 하지만, vworld 지도를 (데스크탑에서 VIZ를 올리거나 그러지 않거나에 관계 없이) 기본 값의 하나로 뜨게 해달라는 고객의 요청이 있었습니다. 즉 누구나 [새 통합문서 만들기]를 눌러 들어간 경우에도 아무일도 하지 않아도 vworld지도가 보이면 좋겠다는 의견이었습니다. 이 고객은 내부 사용자만 수천명이 넘는 경우이어서 이야기를 듣고보니 담당자가 그 많은 분들에게 일일이 설명하는 것도 보통일이 아닌 듯 했습니다.

태블로 기본 지도 목록

위 매뉴얼을 보니 서버의 특정 위치에 tms파일을 넣어주게 되면 목록에 자동으로 뜨는 것 처럼 이해를 할 수도 있으나 실제 해보니 서버 폴더에 tms파일을 넣어주는 것 만으로는 새로운 지도가 목록에 뜨지는 않아서 (실패한 시도를 자세히 검토/기록할 필요는 없어 자세한 내용은 생략합니다.) 다시 한번 주위에 도움을 요청했습니다.

tableau.tms 를 vworld.tms 내용으로 대체

답변중에 기가 막힌 아이디어도 있었는데 어차피 사용하지 않을 tableau.tms파일의 내용을 vworld.tms의 내용으로 바꿔놓음 되지 아니겠느냐는 아이디어 었습니다. 그래서 그대로 실행해보니 지도가 멋지게 뜨기 시작했습니다.

아래 그림은 C:\Program Files\Tableau\Tableau Server\packages\vizqlserver.20201.20.0326.1623\Mapsources 에 있는 tableau.tms 의 수정된 내용입니다. vworld 내용으로 싹 바꿔치기를 했습니다. 2d/Base 지도를 사용하는 것으로 지정했네요. 사실 내부망에 설치한 맵 이미지의 경우 기본(Base) 지도뿐이기 때문에 이 방식으로 사용에 문제는 없겠습니다.

위 이미지에서 xdworld.vworld.kr 이부분은 조직 내부에서 운용되고 있는 vworld map서버의 ip로 변경하셔야 하고요, 하단에 “vworld 2d 기본지도”는 좌측의 지도 목록에서 표시될 이름입니다.

위 그림을 참조하시면 태블로 기본 지도를 선택했을 분인데 vworld지도가 기본으로 전시되고 있습니다. 하단의map-attribute를 보면 “@국도교통부”라고 서비스 제공자의 이름이 있는데 이것은 그대로 사용하시면 됩니다만 혹시 이것을 삭제할 필요가 있는 경우라면 map-attribute를 수정하는 것도 방법이겠습니다.

편의를 위해 코드와 파일을 첨부합니다. 다만 이 방법은 태블로 서버 내에 있는 기본 파일을 살짝 변형해서 사용하는 것이므로 태블로 서버의 업그레이드 등에서는 삭제될 수 있으므로 항상 주의하셔야 합니다.

맺으며

망분리 상태에서 VWORLD 맴 서비스가 구동되고 있다면 tableau.tms파일의 내용을 고쳐 vworld detail.tms파일의 내용으로 대체하는 것으로서 웹익스플로러도 기본지도로서 사용 가능합니다. 도움이 되었기 바랍니다.

 815 total views

VWORLD 2. 정식 지도 확보 절차

망분리로 인해 폐쇄망 환경에 있는 기업이나 조직은 국토부 지도인 vworld를 사용할 수 있습니다. 실질적으로 지도를 구하는 절차를 알아봅니다.

정식 vworld 이미지 파일 확보 절차

  1. 국토지리정보원에 국가인터넷지도 원본shp 파일 요청

① 공문

② 신청서(하단URL)

  • 인터넷지도 – 국문지도 체크
  • 포맷 – shp 체크 

* 공공기관의 경우 온나라, 민간기업(개인)의 경우 메일로 회신.

  • 담당자: 오 민 호 주무관
  • [email protected]
  • 국토교통부 국토지리정보원 지리정보과
  • Direct: 031-210-2734  Mobile: 010-2742-1753

[신청서 URL]

  1. 국토부 공문 발송
  • 국토교통부 공간정보진흥과로 브이월드 공간정보를 활용하기 위해 제공요청한다는 공문과 별첨자료인 공간정보제공신청서를 작성하고 첨부하여 
    수신 [국토교통부 공간정보진흥과] 로 발송
  • [신청서 URL]
  1. 승인공문 수신 후 진흥원과 공간정보 수령일자 협의
  2. 외장 HDD지참하여 진흥원 방문 수령(대리수령 가능)
  • 서약서(신분증사본)(신청서 URL), 인수증(신청서 URL)을 자필서명한 원본을 제출
  • 용량이 상당하므로 256G SSD 등을 가지고 가시면 좋을 듯
  1. 공간정보 적용 및 사용기간이 완료되면 활용결과서, 파기확인서를 작성하여 제출

 818 total views

글로벌 주, 시도 목록 확인

디노입니다. 태블로는 국가명, 시도명을 모두 내장하고 있습니다. 그런데 이런 설명을 드리면 글로벌 전체 목록을 받아볼 수 없겠냐 하는 질문을 종종 받습니다. 자동이라니까요라고 말씀을 드려도 목록을 쓸데가 있다 합니다.

아무래도 글로벌 하게 비즈니스를 하는 업체들이었던 것으로 기억합니다. 나중에 들어보니 각 지사등에서 수집된 데이터를 태블로로 그리려고 하면 수집한 데이터가 제각각인 경우가 많아서 표준에 맞추어 한번 정리를 하려고 한다네요. 제가 태블로가 내장하고 있는 국가명을 가지고 포스팅을 한 적이 있는데 같은 방식으로 해결되겠지 했었습니다만, 의외로 이건 좀 다른 방식으로 해결되었습니다.

결과 – 태블로 퍼블릭 임베딩

먼저 태블로 퍼블릭에 게시한 결과물 먼저 공유드립니다. 2020.1 버젼기준으로 작성되었습니다.

만드는 방법

tds를 이용하지 않고 hyper를 참조하게 변경됨

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)가 오도록 하기 위해 약간 변형해서 모델링을 했습니다. 아래의 이미지를 참조하시고 필요하다면 태블로 퍼블릭에서 태블로 파일을 직접 다운받아서 검토하시기 바랍니다.

감사드려요!

이 문제의 해결은 태블로 한국지사의 기술 이사이신 우재하 이사님과 김연진 이사님이 큰 도움을 주셨습니다.

 612 total views,  1 views today