내가 회사업무 외적으로 관심을 가지는 분야가 좀 많다. TTF 폰트, 이미지 프로세싱, 한국어 형태소 분석기, 딥러닝 이런  것들을 좋아한다. 뭔가 컴퓨터 소프트웨어를 이용하기는 하지만 약간 기술적으로 다른 분야의 접목이 일어나는 분야를 좀 좋아하는 경향이 있다. 이런 것중에 요근래에 관심 가졌던 분야가 있다. 지리정보시스템이다. 위에서 열거한 분야들은 여러번 시도 했으나 뭔가 눈에 보이는 성과를 내지 못해 포기했다가 또 재미를 느껴서 다시 시도 하는 것을 반복하게 된다. 반복할 때마다 기술이 발전해서 더 쉬운 방법이 생기는 경우도 있고, 내 이해력이 좋아져서 발전하는 부분도 있다. 어째든 계속 발전하는 재미가 있다. 지리정보 분야의 경우, 정부에서 공개되는 데이터가 생김에 따라서 뭔가 이용해 볼 수 있는 가능성이 높아져서 요즘 재미를 느끼고 있다. 

 나 같은 사람은 눈에 보이는 게 없으면 재미가 없다. 우선 QGIS 부터 설치해 보자. 
https://qgis.org/ko/site/forusers/download.html
에서 QGIS 독립 설치관리자 2.X 버전을 설치하도록 하자. 3.X 버전도 있지만 2.X 를 설치하는 이유는 다음맵이나 네이버맵 플러그인  설치가 간편해서 이다. 다행히 이 프로그램은 무료이다. 그리고 윈도우즈, 맥 모두 지원한다. 

설치후 QGIS Desktop 프로그램을 실행하면 플러그인 부터 설치하도록 하자. 플러그인 설치는
http://www.qgistutorials.com/ko/docs/using_plugins.html  를 참조해서 설치하면 된다. 설치할 플로그인은 TMS for Korea 이다. 

그리고 메뉴에서 프로젝트(J)-> 새로만들기  로 프로젝트를 새로 만든다. 
메뉴에서 웹(W)->TMS for Korea ->Daum Map->아무거나 를 선택하면 화면에 아래와 같이 맵이 나온다.


왼쪽 화면 아래에 Layers Panel 이 있다. 이 Layer 패널은 포토샵 레이어 처럼 체크박스로 show, hide 시킬 수 있다. 원하는 Layer 를 추가할 수 있다.


이제, 인터넷에 공개된 정보를 다운받아서 새로운 Layer 를 추가해보자. 
국가공간정보포털(http://openapi.nsdi.go.kr/nsdi/index.do) 사이트에 가면 공개된 데이터가 많다. 이 중 SHP 파일들을 QGIS 에서 볼 수 있다. 
부동산 개방데이터에 있는 법정구역정보를 선택해 보자. 그리고 가장 최신 파일중 전체데이터 다운 받는다. 그리고 맨 아래

배포 데이터 좌표계 : Bessel/TM, EPSG:5174 이런 말이 들어 있다. 이 말을 기억해 두자. 좌표계에 대해서는 
( http://www.osgeo.kr/17 ) 를 읽어보자. 

어째든 압축을 해제하고 (SIG) (시구의 약자인듯) 파일을 다시 압축해제 한다. 그리고 확장자 SHP 파일을 QGIS 에 drag and drop 한다. 


이렇게 안 나왔다면 좌표체계가 잘못된 것이다. 아래 글을 계속 읽도록 하자. 

이런식으로 도형이 그려진다. 그리고 마우스 휠로 확대를 할 경우 두 layer 가 확대 되어 나온다. 

Layers Panel 에서 AL_00_D001_20180901(SIG) 레이어를 선택하고 마우스 오른쪽 버튼을 누른 후, 속성을 선택하면 레이어 속서을 변경할 수 있다. 여기서 좌표체계도 변경할 수 있다. 아마 자동으로 잘 선택 될 거라고 생각되는데, 잘 선택이 안되어 있다면 콤보박스 옆 아이콘을 눌러서 EPSG:5174 를 검색해서 추가한 후 수정하도록 하자.





 구역 정보만 있어서 뭔지 알 수 없으니 라벨을 추가하자. 레이어 속성창에서 라벨탭을 선택하고 Show Labels for this layer 를 선택하고 Label with 를 A2를 선택하자. 


위와 같이 설정하면 Label 값을 아래와 같이 출력할 수 있다.


더 자세한 사용법은 https://docs.qgis.org/2.18/ko/docs/user_manual/  메뉴얼을 확인하자. 고맙게도 한국어로 번역되어 있다.


 git 를 이용하게되면 민감한 데이터(패스워드나 SSH Key)를 commit 하기도 한다. 이 git 가 공개된 git 일 경우 보안상에 문제를 일으키기도 한다.
패스워드는 아니지만 API Key 같은 경우도 문제가 될 수 있다.  어째든 이렇게 commit 되고 나면 나중에 지운다고 해도 git 의 특성상 히스토리에 남을수 있다.  

다행히 이 히스토리까지도 지울 수 있다. 
(윈도우즈에서는 큰 따음표를 해야 한다. )

git filter-branch --tree-filter "rm -f ./path\file.py" HEAD


참고 : https://git-scm.com/book/ko/v1/Git-%EB%8F%84%EA%B5%AC-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%8B%A8%EC%9E%A5%ED%95%98%EA%B8%B0#filter-branch%EB%8A%94-%ED%8F%AC%ED%81%AC%EB%A0%88%EC%9D%B8
https://help.github.com/articles/removing-sensitive-data-from-a-repository/

commit 된 것이 많다면 이 방법은 매우 매우 느리다. (이 때 까지 commit 한 히스토리를 다 뒤져서 수정하는 것 같다. ) 
Github 에 다시 접속하니 히스토리를 보니 남아 있었다. 뭔가 잘못한 것 같다. 


더 좋은 방법은 https://rtyley.github.io/bfg-repo-cleaner/  를 이용하는 것이라고 한다. 

사용방법은 git 를 다시 받는 것 부터 시작한다.

git clone --mirror git://example.com/some-big-repo.git
(해당 동작 후 some-big-repo.git 폴더가 생성된다. )

동일한 디렉토리에서 bfg 프로그램을 실행한다.
java -jar C:\Users\user\Downloads\bfg-1.13.0.jar  --delete-files file.py some-big-repo.git
(따로 경로자체를 지정 할 수는 없는 것 같다. 참고 https://stackoverflow.com/a/21172871 )

다시 git 를 이용해서 해당 결과를 서버에 올린다. 
cd some-big-repo.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive

git push

이 결과 file.py 과 관련된 history 가 삭제된다. 이 파일의 히스토리를 유지하고 싶다면 좋은 방법은 아닌 것 같다. 

처음부터 조심히 하는게 좋을 것 같다. 그리고 회사내 중요한 것은 private 계정을 꼭 사용해야겠다.


 언제부터인지 윈도우즈 업데이트 이후, WSL 을 통한 bash 실행에 실패하는 현상이 생겼다. 

C:\programs\pros\conemu>bash

Linux용 Windows 하위 시스템에 배포가 설치되어 있지 않습니다.

아래의 Microsoft Store에서 배포를 설치할 수 있습니다.

https://aka.ms/wslstore

계속하려면 아무 키나 누르세요... 

 분명 정상적으로 설치했는데도 불구 하고 이런 메시지를 본다면 

서비스에 들어가(윈도우키 + R 이후 services.msc 라고 입력하면 실행된다. ) LxssManager 를 중지했다가 다시 시작하면 된다.