데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[기술 7기] 방범시설과 범죄와의 상관관계 분석 (상)

데이터 이야기
작성자
dataonair
작성일
2014-12-05 00:00
조회
6515


방범시설과 범죄와의 상관관계 분석 (상)

상관관계 속에서 범죄의 숨겨진 비밀을 캐기다



인터뷰 바로가기▶ 글: 김대훈(빅데이터 아카데미 기술 전문가 과정 7기

범죄 예방을 위해 방범용 CCTV 설치 대수를 늘려가고 있지만 범죄율은 줄어들지 않고 있다. 빅데이터 기술을 활용해 범죄 발생에 대한 근본적인 원인 도출과 시민의 자발적 참여를 통한 공공기관 또는 지자체에서 파악하지 못한 우범지역을 발굴해 미리 대처할 수 없을까 하는 생각에 시작한 프로젝트다.



Challenges

하루가 멀다 하고 범죄 소식이 쏟아지고 있다. 빅데이터 아카데미 기술 전문가 과정 7기 프로젝트팀(이하 ‘우리팀’으로 통일)의 팀원들 또한 그 불안으로부터 예외는 아니었다. 연로한 부모님과 아내, 자녀까지 가족의 안전을 바라는 마음은 누구나 마찬가지일 것이다. 안전에 대한 바람은 CCTV, IPTV, 차량용 블랙박스 등의 감시 카메라 시장으로 이어져 관련 산업이 매년 빠르게 성장하고 있다.

하지만 아무리 자동차 블랙박스, IPTV 성능이 좋아졌다 하더라도 공공 안전을 위한 도구가 아님은 사실이다. 감시카메라 사각지대는 항상 존재하고 범죄에 악용되기까지도 한다. 그래서 개인적으로 감시카메라를 설치하기도 한다. 그렇다고 공공용 감시카메라를 늘려나가서는 안된다. 범죄자들은 ‘거리의 눈’을 피해 다닐 수 있기 때문이다.



공익에 보탬이 되는 주제를 선정

방범용 CCTV를 설치한 지역은 범죄율이 다소 감소하지만, 그 주변의 범죄율이 늘어나는 것을 범죄의 전이효과 (crime displacement effect)라고 한다. 범죄의 사각지대는 항상 존재하기 마련이다. 모든 범죄를 막을 수는 없지만, ‘거리의 눈’으로서 주거 침입이나 절도 등 범죄를 줄일 수 있다. 앞으로 CCTV와 같은 감시 장비와 더불어 도시환경 디자인을 개선해 나간다면 범죄율도 점차 줄어들 것이다. 우리팀은 이처럼 불안한 시기에 사회안전에 관한 문제에 관심을 갖게 되었고 이 프로젝트를 진행하게 되었다.

dbin_341.jpg

필자는 평소 범죄와 사회안전 기반시설에 관심이 많았다. 현재 살고 있는 곳 또한 어린이 보호구역이고, 주변에 CCTV가 많다. 더불어 성범죄자의 위치 파악을 하고, 주거지를 결정할 만큼 지역 안전 지표에도 민감하다. 어려서부터 경찰관에 대한 동경이 있었고, 공공의 목적에 맞는 프로젝트를 하고 싶었다. 그래서인지 처음 조원들에게 제시한 단어는 ‘범죄’였다. 그러자 ‘CCTV’라는 키워드가 나왔고 ‘어린이 보호구역’, ‘경찰서-지구대’ 등 다양한 관련 단어가 줄지어 나왔다.

우리팀은 제시된 단어들을 취합해 주제를 선정하였고, 이는 흥미로운 프로젝트를 진행할 수 있는 초석으로 활용됐다. 이 주제에 대해 조원들 모두 만족했다. 서비스를 상품화하기보다는 공익에 보탬이 되었으면 좋겠다는 의견이 많았다.



Solution

프로세스와 계획 수립

1.5개월이라는 수료 프로젝트 기간을 알차게 활용하기 위해 일정을 수립해 체계적으로 접근했다. 먼저 HBase의 사용을 위해 Thrift Server와 zookeeper 서비스를 추가했지만, 일단 HIVE에서 테스트하기로 하였다. 수집된 비정형 정보를 정형화해 HIVE의 테이블에 적재한 후 이를 RHadoop, RHive, RHdfs 설정을 통해 R 또는 JSP로 시각화하였다.

dbin_342.jpg

R은 googleVis, ggplot2, ggmap 라이브러리를 통해 시각했다. R을 시도하기 전에는 JSP와 ajax, 네이버 지도 API로 웹을 개발했다. 프로젝트 초기에, 집체교육 기간에 배운 R을 사용하는 것이 본 프로젝트에 적합하다는 생각이 들어, JSP로 개발하는 작업을 중단하고 R로 선회했다. JSP로 개발을 하면서 D3.JS를 알게 되었고, 이를 통해 발전 방향을 확고히 할 수 있었다. R과 D3.JS를 적절히 사용하면 멋진 그림이 나올 것이다.

dbin_343.jpg

하둡 에코시스템 설치와 설정
전체 서비스를 설치하고 Hbase의 Thrift Server와 Zookeeper, Flume과 R 서비스를 추가하였다. R은 마이크로소프트에서 제공하는 HIVE ODBC를 통하여 PC Client에서 접속하거나 R 웹 버전으로 개발하였다. 안정적인 시스템 운영을 위해 필요에 따라 사용하는 서비스만 기동시켜서 작업했다.

dbin_344.jpg

테이블 설계와 데이터 수집
Flume으로 수집한 트위터의 데이터에는 입에 담지 못할 선정적인 글들이 많았다. 그도 그럴 것이 범죄 관련 키워드로 수집했기에 ‘험악한’ 내용이 많을 수밖에 없었다. 트위터 테이블을 제외한 CCTV, 상권, 경찰서, 학교 등의 위치정보 테이블은 각 지자체에서 받은 자료를 토대로 설계하였다.

HUE 인터페이스 안에서 테이블 설계 및 수집 작업은 클라이언트 PC에서 사용하는 도구에 비해 불편했다. 하지만 쉘 프롬프트에서 작업하는 것보다는 편리했고, 자동완성기능과 그래프 등 생각보다 많은 기능을 제공하고 있었다

Flume에서 범죄 관련 키워드를 설정해 <그림 4>와 같이 JSON 형식으로 데이터를 수집하였다. 특정 디렉터리에 연도/월/일/시간별 데이터를 HDFS에 적재했다. NAME NODE가 아닌 3대의 서버에서 Flume 서비스를 구동시켰다. SNS 데이터를 트위터가 아닌 곳에서 확인할 수 있다는 것이 처음에는 낯설었지만 곧 익숙해졌다.

dbin_345.jpg

HDFS의 데이터를 HIVE에서 확인하려면, <그림 5>와 같이 HIVE Editor의 설정 탭에서 Hive Serde를 설정해야 했다. Serde는 JSON 형식의 데이터를 읽고, 써야 할 경우 사용하는 모듈이다. dbin_346.jpg

<표 2>에서 보듯이 방범용 CCTV 설치 대수가 적은 지역을 확인할 수 있었다. 종로구와 송파구의 CCTV 대수는 의외였다. 개인적으로 ‘상권이 잘 형성돼 있고, 소위 ‘강남 4구’에 속하는 지역은 설치 대수가 많지 않을까’ 하는 생각을 했기 때문이다. 현 시점에도 방범용 CCTV 통합구축 사업을 진행하는 지자체에서 빅데이터 분석을 토대로 CCTV를 설치하면 더 효율적일 것이다.

dbin_347.jpg

dbin_348.jpg

인포메티카(Informatica)의 ‘데이터 트랜스포메이션’이라는 솔루션을 사용해 DOC, PDF 형식의 CCTV 시설 위치 파일을 텍스트로 추출해 HIVE에 저장했다. 데이터 트랜스포메이션 솔루션은 라이선스에 문제가 되지 않는 수준에서 사용했다. 솔루션의 특징을 설명하자면 DOC, PPT, PDF, XLS 등 비정형 문서를 자동으로 정형화해 테이블에 적재할 수 있고, 수십만 개 이상의 파일도 자동으로 처리하는 편리한 솔루션이다.

<그림 6>은 각 구청에서 받은 비정형 파일을 인포메티카 데이터 트랜스포메이션 솔루션(<그림 7> 참조)의 파서로 정형화된 형식으로 변환하는 과정이다. 물론 이 과정을 자동화하려면 라이선스가 필요하기에 일부는 수작업으로 했다. 인터넷에 떠돌아다니는 믿을 수 없는 프로그램을 사용할 수는 없었으므로 직접 했다.

dbin_349.jpg

R의 웹 클라이언트 버전에서 RHIVE 라이브러리로 HIVE에 접속한 후, <그림 8>에서와 같이 위도와 경도 정보를 HIVE에서 조회하여 googleVis, ggplot2, ggmap의 R 라이브러리를 통해 지도에 시각화하였다. CCTV 위치는 우선적으로 강남구에 한하여 적색 마커로 표시하였다. 로컬에서 R의 PC 버전 클라이언트를 설치하여, HIVE ODBC를 설정할 필요 없이 편리하게 웹에서 작업할 수 있었다.

dbin_350.jpg

dbin_351.jpg

dbin_352.jpg

<그림 9>의 CCTV, 경찰서, 방범대, 지구대의 위치와 <그림 10>의 학교, 유치원 위치를 결합하여 <그림 11>에서와 같이 CCTV가 필요한 사각지대를 찾아낼 수 있었다. 그 곳은 오래된 아파트 단지여서 주변에 방범용 CCTV가 없었지만, 근처에 학교가 있었다.

dbin_353.jpg

R 분석 작업을 하기 전에 기술검토 과정에서 JSP로도 개발을 시도해 보았다. CCTV의 위치를 반경 50m의 동그란 원으로 하여 표시해 주었다. R이 아닌 기술, 즉 네이버 지도 API나 D3.JS로 시각화할 수 있겠다는 생각이 들었다. (다음 회에 계속)






출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net