소프트웨어 전문지 마이크로소프트웨어 395호는 데이터과학을 주제로 담았습니다. 데이터과학에 대한 개론, 학습 방법, 실무 적용 사례, 학계 등 마소 395호 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

2017년 인구주택총조사 전수집계 결과에 따르면 서울의 인구수는 약 974만 명, 가구 수는 약 390만 가구다. 그리고 같은 해에 약 98만 가구가 서울을 떠났고(전출), 약 95만 가구는 서울로 들어왔다(전입). 이 수치는 서울과 다른 시도 간 이동뿐 아니라 서울 내에서 발생한 인구이동, 즉 서울에서 서울로 이사한 건수도 포함하고 있다.

국내인구이동통계에 따르면 2017년의 서울 내 인구이동 발생 횟수는 81만6442건이다. 이는 전출 기준 약 84%, 전입 기준 약 86%에 해당하는 수치로, 이동의 상당수가 서울 내에서 이뤄졌다는 것을 의미한다. 그렇다면 이들은 서울의 어디에서 어디로 가는가? 서울발 서울행 이동의 실체가 궁금하다.

서울 내 인구이동 데이터 중 일부. / 마이크로소프트웨어 395호
서울 내 인구이동 데이터 중 일부. / 마이크로소프트웨어 395호
복잡해 보이지만 분석에 사용할 내용은 앞에 위치한 10개 열이다. 순서대로 보면, 앞 3개 열은 전입 행정구역 코드(시도, 시군구, 동읍면)며, 다음 3개 열은 전입 날짜(년, 월, 일)를 의미한다. 그리고 다음 3개 열은 전출 행정구역 코드(시도, 시군구, 동읍면)며, 뒤 숫자는 전입 사유를 나타내는 코드(1: 직업, 2: 가족, 3: 주택, 4: 교육, 5: 교통, 6: 건강, 9: 기타)다.

위 그림의 마지막 행을 예로 들면, 서울시(11) 종로구(110) 청운효자동(51500)에 살던 가구가 가족(2) 관련 문제로 2017년 1월 12일에 같은 행정동으로 이사했다는 것을 알 수 있다.

여기서 하나의 행은 한 건의 가구 이동을 의미한다. 서울 내 이동 데이터만 선택 추출했기에 해당 데이터는 81만6442개 행으로 이뤄져 있다. 따라서 서울 내 인구이동 현상을 분석하기 위해서는 81만6442개 행을 분석해 각 가구가 어디에서 어디로 이동했는지 파악해야 한다. 그러나 위 그림과 같은 나열식 데이터를 사람이 일일이 살펴보려면 상당한 시간이 소요될 뿐 아니라 데이터로부터 의미 있는 인사이트를 얻기도 어려울 것이다.

그럼 어떻게 해야 할까? 인구이동 데이터는 필연적으로 출발지와 도착지가 있기에 항상 위치정보를 포함한다. 따라서 해당 데이터를 지도 위에 시각화할 수 있다면 훨씬 많은 것을 볼 수 있다. 이 글에서는 서울 내 인구이동 데이터를 시각화하기 위해 오픈소스 기반 지리 정보(Geospatial) 분석 도구인 Kepler.gl(https://kepler.gl)을 선택했다. Kepler.gl은 2018년 초 우버(Uber)에서 출시했다. 복잡한 코딩 없이 누구나 공간 데이터를 멋지게 시각화할 수 있다.

동일 행정동 내 이동 시각화. / 마이크로소프트웨어 395호
동일 행정동 내 이동 시각화. / 마이크로소프트웨어 395호
Kepler.gl을 이용해 서울 내 인구이동 데이터를 시각화하기 위해서는 ‘서울 내 인구이동 데이터’ 그림과 같은 ‘txt’ 형식의 파일을 좌표가 포함된 ‘csv’, ‘json’, ‘geojson’ 형식으로 변환해야 한다. 이를 위해 전국 행정동 데이터(github.com/vuski/admdongkor)에서 서울 지역 행정동 폴리곤(Polygon)의 중심점(Centroid)을 추출해, 전입/전출 행정구역코드를 경위도 좌표로 변환하는 과정을 거쳤다.

먼저 서울 내 인구이동 81만6442건을 전출/전입 행정동에 따라 분류하고 이동 횟수에 따라 정렬한 결과, 상위 168개 이동이 모두 동일 행정동 내에서 이뤄진 것으로 나타났다. 전체에서 보면 행정동 내 이동은 22만3387건으로 전체의 약 27%를 차지한다. ‘동일 행정동 내 이동 시각화’ 그림은 Kepler.gl을 이용해 행정동 내 이동을 발생 건수에 따라 시각화한 것이다. 본래 이동이라는 것은 출발지와 도착지가 달라야 한다. 하지만 인구이동 데이터의 최소 공간 단위가 행정동이다 보니 이보다 상세한 이동 경로를 알 수 없고, 동일 지역 내 이동은 경로로 표현할 수 없기에 ‘동일 행정동 내 이동 시각화’ 그림과 같은 시각화 방법을 택했다.

동일 행정동 내 이동 건수 많은 상위 5개 지역 현황. / 마이크로소프트웨어 395호
동일 행정동 내 이동 건수 많은 상위 5개 지역 현황. / 마이크로소프트웨어 395호
각각에 대해 전입 사유를 알아본 결과, ‘주택’이 가장 많았다. 특히 역삼1동을 제외하고는 모두 ‘주택 > 가족 > 직업/기타 > 교통 > 교육/건강’ 순으로 비율이 높은 패턴이 동일하게 보이는 것은 인상적이다. 역삼1동은 ‘직업’ 사유로 인한 이동이 다른 지역에 비해 압도적으로 많았다. 테헤란로를 중심으로 업무 지구가 발달한 지역이기 때문으로 생각한다.

이영민 필자의 ‘Kepler.gl을 이용한 2017년 서울 내 인구이동 시각화’에 대한 자세한 내용은 ‘마이크로소프트웨어 395호(https://www.imaso.co.kr/archives/4654)’에서 확인할 수 있다.