@aanoaa - 홍형석, 사당동 펠프스, github:aanoaa
Postcodify는 웹 페이지에서 도로명주소, 지번주소, 영문주소 등을 편리하게 검색할 수 있도록 해주는 오픈소스 라이브러리입니다. PHP 구현물이며, LGPL-3.0 라이센스이고, 현재 GitHub 저장소에서 개발이 이루어지고 있습니다. 공식 홈페이지의 설명에 따르면 다음과 같은 장점이 있다고합니다.
참, 좋아보이는데 Perl 사용자는 어떻해야 할까요?
PHP 구현물인 Postcodify를 Perl로 옮긴 프로젝트가 p5-postcodify입니다. 자, 지금부터 Postcodify 라이브러리를 펄을 이용해 사용하는 방법을 알아보죠. p5-postcodify 모듈은 CPAN 모듈이 아니므로 설치를 위해 저장소를 복제합니다.
$ git clone [email protected]:aanoaa/p5-postcodify.git
Postcodify를 사용하려면 우선 전국 주소 데이터베이스 파일이 필요합니다. 필요한데, 원본은 대한민국 정부가 운영하는 도로명주소 DB 제공 홈페이지에서 내려받을 수 있습니다.
Postcodify에서 이 파일을 바로 사용할 수 있는 것은 아니고 내려받은 후 인덱스 구동 절차를 거쳐야 합니다. 편리하게도 Postcodify에서는 인덱스까지 생성을 완료한 데이터베이스를 자체 서버에서 다운로드받을 수 있도록 링크를 제공합니다. Perl로 포팅한 p5-postcodify 저장소에는 이 데이터베이스 파일을 다운로드할 수 있도록 스크립트를 제공하고 있습니다. 다음 명령을 이용해서 데이터베이스 파일을 다운로드 합니다. 하드 디스크에 2GB 이상의 여유 공간이 필요합니다.
$ cd p5-postcodify/ # # wget # $ wget -qO https://raw.githubusercontent.com/aanoaa/p5-postcodify/develop/installer.sh | sh # # or curl # $ curl https://raw.githubusercontent.com/aanoaa/p5-postcodify/develop/installer.sh | sh
스크립트를 통해 자동으로 다운로드 및 압축 해제가 끝나면
db/postcodify.20141112.v2.sqlite
파일이 준비됩니다.
p5-postcodify 모듈은 CPAN 모듈이 아니므로 cpanm을 이용해 설치하는 것을 추천합니다. 의존 모듈을 설치하는 명령은 다음과 같습니다.
$ cpanm --installdeps .
잘 동작하는지 확인하는 방법은 간단합니다.
$ perl -Ilib scripts/search.pl 서울시 강남구 논현동 99-1 {"lang":"KO","time":"0.2474","version":"v2.2.0","msg":"...
위와 비슷한 결과가 나왔다면 성공입니다.
모듈을 적재해서 사용하는 법 역시 간단합니다.
#!/usr/bin/env perl use strict; use warnings; use Postcodify; my $p = Postcodify->new; my $result = $p->search('서울시 강남구 논현동 99-1'); print $result->json;
펄과 Postcodify를 이용하면 단 몇 줄의 코드를 이용해 간단하게 주소 및 우편번호를 검색할 수 있습니다. 직접 데이터베이스와 서버를 구축하는 것이 번거롭다면 무료 Web API Service를 사용할 수도 있습니다. p5-postcodify는 공식 Postcodify jQuery 플러그인과 호환되므로 더 자세한 내용을 알고 싶다면 공식 문서를 확인하세요.
마지막으로 이렇게 훌륭한 라이브러리와 서비스를 만든 Postcodify 개발진에게 고마운 마음을 전합니다.
X-mas tree
& Llama
ASCII Art by ASCII Art Farts.
Computer ASCII Art by Chris.com.
Font ASCII Art by TAAG.
Artwork by
Inkyung Park
& Keedi Kim.
Designed by
Hojung Youn
& Keedi Kim.
Articles by
Seoul Perl Mongers.
Edited by
Luzluna Park
& Keedi Kim.
Hosting generously sponsored by
Yuni Kim.
Sponsored by
SILEX.
.-''' __ __ / \/ \/ \ =-_- | \. -____- / \ // /|| '' //| //|| == = == ==