Practice/Tech
[OPEN API/공공데이터] 서울시 지하철 실시간 도착정보

이번 포스팅에서는 정부에서 제공하는 공공데이터를 활용하여 어떻게 서울시 지하철 실시간 도착 정보를 불러올 수 있는지 알아보겠습니다! 어떤 지하철의 실시간 도착 정보를 알기 위해서는, 조금 신기하게도... 지하철역의 이름만 있으면 가능합니다!

 

하지만, 이렇게 이름으로 검색을 하기 때문에, 해당하는 역을 검색하면 현재 이 역을 지나가는 모든 노선(1호선, 2호선...)에 대한 지하철이 검색됩니다. 따라서 넉넉하게 5개 정도를 검색해서, 원하는 라인의 지하철을 찾아야만 하는 단점이 있습니다.

 

우리가 알아야 하는 데이터는 딱 2개입니다! 첫 번째는 노선의 고유 키 값, 두 번째는 역의 이름 입니다.

 

엑셀 파일 다운로드 - 지하철 역의 이름

지하철 역의 이름에 대한 정보는 정부에서 엑셀 파일로 제공하고 있기 때문에, 아래의 링크로 들어가셔서 첫 번째 파일을 다운로드하면, 확인하실 수 있습니다.

 

다운로드 링크 -> https://data.seoul.go.kr/dataList/OA-12764/F/1/datasetView.do

 

다운로드 완료 후, 파일을 확인해 보시면 아래와 같이 3가지 종류의 데이터를 확인해 볼 수 있습니다. 여기서 SUBWAY_ID라는 데이터는 지하철의 노선을 구분하는 유일한 키 값을 의미하고, STATN_ID지하철 역을 구분하는 유일한 키 값을 의미합니다. 또한, STATN_NM지하철 역의 이름을 의미합니다.

 

 

지하철 노선 코드 (직접 정리하였습니다!)

지하철 노선코드에 대한 의미는 여기서 찾아볼 수 없기 때문에 이곳저곳 검색도 해보고 API를 사용해가면서 제가 따로 정리를 하였습니다. 아래의 이미지를 보시면 노선 코드가 몇 호선을 의미하는지 확인하실 수 있을 것입니다.

 

SUBWAY_ID는 위에서 사용한 지하철의 노선을 구분하는 유일한 키값과 일치하고, SUBWAY_NAME은 해당 코드에 해당하는 지하철의 노선 이름입니다.

 

 

이쯤 되면, 역 이름만 있으면 API를 사용할 수 있다고 했는데 왜 이렇게 호선의 이름이 필요한 것인지 궁금하실 것 같습니다!

 

 

그 이유는, 저희가 역을 검색하면... 불행히도, 호선의 이름이 계속 null로 넘어옵니다... API의 문제라고 생각하지만 사용자 입장에서는 어쩔 수 없이 이렇게 SUBWAY_ID 값을 SUBWAY_NAME으로 변경하여 화면에서 사용할 수밖에 없는 것입니다 ㅠㅠ

 

검색하는 방법

첫 번째, 찾고 싶은 역의 이름을 결정합니다.

두 번째, 공공데이터 API를 통해서 해당하는 데이터를 요청합니다. (다음 챕터!)

세 번째, 공공데이터 API를 통해서 불러온 데이터 중에서 원하는 노선에 대한 것만 걸러냅니다.

네 번째, 걸러낸 데이터 중에서 상행/하행 여부를 구분하여 데이터를 활용하면 됩니다!

 

서울시 지하철 실시간 도착정보 API 이용 신청하기

아래의 링크로 들어가서 스크롤을 내리다 보면, 인증키 신청 버튼을 찾으실 수 있습니다. 이 버튼을 클릭하여 인증키 신청을 진행합니다. (공공데이터는 로그인 이후에 사용할 수 있기 때문에, 회원가입 이후에 이용하실 수 있습니다.)

 

API 이용 신청하기 -> https://data.seoul.go.kr/dataList/OA-12764/F/1/datasetView.do

 

내가 신청한 API 확인하기

신청을 하자마자 자동승인이 될 것입니다. 인증키 관리 링크로 이동하여 상태를 확인하실 수 있고, API를 이용하기 위한 키를 받으실 수 있습니다. 친절하게 샘플 URL도 제공하기 때문에, 이용 방법에 대해서는 너무 걱정하지 않으셔도 될 것 같습니다.

 

신청한 API 확인하기 -> https://data.seoul.go.kr/together/mypage/actkeyMng_ss.do

 

API 테스트

아래의 링크를 통해서 API를 사용하실 수 있습니다. 발급받은 API 키와 지하철 역만 있으면 데이터를 확인해보실 수 있습니다.

 

테스트 링크(양재역) -> http://swopenapi.seoul.go.kr/api/subway/[발급받은 API키]/json/realtimeStationArrival/1/5/[지하철역]

 

고생하셨습니다!

 

'Practice > Tech' 카테고리의 다른 글

[OPEN API/공공데이터] 서울시 버스도착정보  (0) 2022.01.02