앞서 법정동코드에서 지역코드를 가져오는 방법에 대해서 설명을 했다. 이번에는 우리가 정말 필요한 지역의 지역코드를 가져오는게 필요하다. 지역코드의 단위는 행정동으로 구분이 되어있기 때문에 서울특별시의 모든 지역코드를 가져오기 위해서는 별도의 처리가 필요하다. 서울특별시의 행정구는 총 25개로 나누어져있다.
위키를 보면 각각의 25개의 구에 대해서 인구, 세대, 면적을 표시하고 있다. 언제 수집을 했는지에 대해서는 나와있지 않다... 일단 25개의 행정구역으로 나누어져있기 때문에 우리는 위에 있는 지도로 봤을때 강서구, 양천구, 구로구,, ...., 강동구 등의 지역코드를 얻어야 한다.
지역코드 '11'이 지역코드에 있고, 지역코드의 셋(set)을 얻으면 총 26개를 얻을 수 있는데 이 중에는 서울특별시 11000이 포함되어있기 때문에 11000을 제거하면 우리가 원하는 서울특별시의 지역코드 25개를 얻을 수 있다. 이제 지역코드를 이용해서 공공데이터 포털에서 서울특별시 실거래매매 데이터를 가져오기가 가능하다.
서울 특별시 2019년 데이터를 가져오기 위해서는 12(1월~12월) x 25(행정구역) = 총 300번의 요청으로 가능하다. 공공데이터에서는 일일 트래픽이 1000이기 때문에 서울특별시 3년 데이터를 하루에 가져올 수 있다.
위 글에서 법정동코드를 다운로드 받고 인코딩 문제까지 알아보았다. 법정동코드와 행정동코드를 구분을 해야 공공데이터포털에서 원하는 지역의 데이터를 가져올 수 있다.
법정동코드에는 행정동코드가 포함되어 있다. ABC가 법정동코드라면 A는 행정동코드이다. 예를들어서 ABC가 서울특별시 종로구라고 한다면 A는 서울특별시의 행정동 코드이다. 그럼 법정동 코드에서 어떻게 행정동코드를 추출하는지 알아보자.
pandas를 이용해서 위에서 얻은 파일을 읽으면, 법정동코드가 int64로 읽힌다. 법정동코드는 숫자의 의미가 아니기 때문에 문자열로 변환을 해준다. 변환이후에 [:5]의 slicing을 이용해서 최종 지역코드를 얻어낼 수 있다.
import pandas as pd
df.read_csv('../data/road_code.csv', index=False)
df['폐지여부'].value_counts()
폐지 25565
존재 20542
Name: 폐지여부, dtype: int64
df = df[df['폐지여부'] == '존재']
df.dtypes
법정동코드 int64
법정동명 object
폐지여부 object
dtype: object
df['법정동코드'] = df['법정동코드'].astype(str)
df['지역코드'] = df['법정동코드'].apply(lambda x: x[:5])
df.head(5)
법정동코드 법정동명 폐지여부 지역코드
0 1100000000 서울특별시 존재 11000
1 1111000000 서울특별시 종로구 존재 11110
2 1111010100 서울특별시 종로구 청운동 존재 11110
3 1111010200 서울특별시 종로구 신교동 존재 11110
4 1111010300 서울특별시 종로구 궁정동 존재 11110
공공데이터포털에서 데이터 가져올때 SERVICE KEY IS NOT REGISTERED ERROR 가 발생한다면 두가지 이유다 첫번째는 포털사이트에서 미등록시 (1시간 정도 소요된다고 가이드를 준다.) 두번째는 인코딩 문제이다. 인코딩 문제를 해결하는 방법에 대해서 설명한다.
SERVICE_KEY를 받으면 unsafe characters인 %가 포함되어 있다. 우리는 항상 URL에서는 인코딩된 결과를 보기 때문에 자연스럽게 내가 파라미터에 넣어도 잘~ 동작하겠지 생각하지만 그렇게 넣으면 서비스키가 등록되어있지 않다고 나온다!
클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음. 외부에서 접근가능한 url을 사용할 수 있게 하고, 트래픽 로드밸런싱도 해주고, ssl 인증서 처리, 도메인 기반 가상 호스팅을 제공. ingress 자체는 이런 규칙들을 정의해둔 자원. 실제 동작하게 해주는게 ingress controller. 클라우드서비스를 사용하는것이 아니라면 ingress와 ingress controller를 직접 연동해주어야함.