데이터 생존 로그

n8n 자동화 프로젝트② - 워크플로우 생성을 위한 사전 작업(공공 데이터 포털, 경기 버스 API) 본문

생존 도구🏹

n8n 자동화 프로젝트② - 워크플로우 생성을 위한 사전 작업(공공 데이터 포털, 경기 버스 API)

분석가 베어그릴스 2025. 2. 16. 12:05

* 이 글은 data popcorn에서 진행하는 n8n 스터디 2기에 참여하고 그 과정을 글로 남긴 게시글입니다.


이번 게시글에서는 저번 게시글에서 간단히 기획했던 아이디어를 본격적으로 만들기 위해, 사전 작업을 하는 과정을 담고 있습니다. (경기 버스 API, 공공 데이터 포털 활용 세팅)

- 저번 게시글: https://analyst-ggom-chi-kim.tistory.com/26

 

n8n 자동화 프로젝트① - n8n에 대한 이해와 프로젝트 기획

* 이 글은 data popcorn에서 진행하는 n8n 스터디 2기에 참여하고 그 과정을 글로 남긴 게시글입니다.n8n 기초 강의: https://youtu.be/zcjTErUqvxM?si=MN0VAE5p6RtQ2YLkn8n & AI 자동화 커뮤니티: https://open.kakao.com/o/gwBK

analyst-ggom-chi-kim.tistory.com

 

 

아이디어 배경 & 상세

필자는 매주 월요일 화요일에 본가인 수원에서 강남으로 통근을 한다.

통근을 하며 아주 간혹 발생하지만 가장 화가 나는 순간이 있다.

 

그건 바로 '잔여 좌석이 없어서 버스를 놓칠 때'이다.

언젠가부터 법이 바뀌어서 좌석 버스에 좌석이 만석일 때, 버스를 태워주시지 않는다..

 

이 이아디어는 이러한 순간에 대비해 보고자 시작되었다!

 

몇 시에 정류장에 도착하면 버스를 놓치지 않고 탈 수 있는지,

몇 시에 정류장에 도착하면 버스를 놓칠 위험이 있는지 알아보려 한다!

 

그러기 위해서는 가장 첫 단추인 데이터 수집이 필요하다.

데이터 수집을 n8n 자동화를 통해 해보려 한다.

 

위 분석을 위해서는 '모든 시간대(되도록 촘촘하면 좋겠다.)에 대한 버스의 위치 및 잔여 좌석' 정보가 필요하다.

쉽게 말하면, 네이버 지도 서비스에서 제공하는 아래 그림의 데이터를 촘촘한 시간별로(매 분 혹은 매 N분) 스냅샷을 찍어 적재하는 것이다!

 

 

 

버스는 내가 타는 3000번 버스의 대해서만 아이디어가 필요하고, 컬럼은 다음과 같이 구성해 보려 한다.

  • 버스 고유 번호(아마 번호판이 되지 않을까 싶다. 같은 3000번 버스라도 구분해야 하니까)
  • 잔여 좌석
  • 정류장 고유 번호
  • 데이터 적재 시간

 

하나의 행은 특정 시간(적재 시간)에 특정 버스의 위치 및 좌석 정보를 담고 있다.

2025년 2월 16일 오전 9시에 적재 사이클이 한 번 돌고, 당시 3000번 버스가 15대 운행 중이라면, 15개의 행이 쌓이는 구조!

 

위 데이터를 수집하기 위해서는 사전 준비가 필요하다.

이제 그 준비 과정을 알아보자!

 

공공 데이터 포털 오픈 API 버스 정보

다행이도 공공 데이터 포털에서 3000번 버스의 운행 정보를 API로 받아올 수 있다. (웹 스크래핑 필요 없음!)

 

몇몇 API를 찾아보니, 아래 링크의 API가 내가 쌓고자 하는 데이터와 동일한 데이터를 전송하고 있었다!

(경기도_버스위치정보 조회)

https://www.data.go.kr/iim/api/selectAPIAcountView.do

 

공공데이터포털 통합 로그인

공공데이터포털 로그인 국민과 함께 하는 공공데이터포털에 오신 것을 환영합니다

auth.data.go.kr

 

위 링크에 접속해서 api key만 발급받으면 완료! (한 시간 내에 승인이 났다.)

 

API 명세를 살펴보니, routeId값만 찾아서 기입하면 되는 것 같다.

 

내가 타는 3000번 버스의 routeId는 다음 페이지에서 조회했다.

https://www.gbis.go.kr/gbis2014/publicService.action?cmd=tBusRoute

 

경기버스정보

 

www.gbis.go.kr

 

 

HTTP 노드 활용법

자 이제 기본적인 준비를 마쳤으니, n8n에서 HTTP 노드를 활용하는 방법에 대해서 간단히 알아보자.

 

활용하는 방법은 생각보다 간단하다.

HTTP Request 노드를 추가하고, 다음과 같이 API에 필요한 정보를 셋팅만 해주면 끝!

 

 

간단히 실행 버튼만 클릭하면, 다음과 같이 데이터를 받아볼 수 있다. 

 

 

 

이제 원하는 데이터를 적재하기 위한 사전 준비와 코어한 기능(HTTP Request 노드)에 대한 학습을 마쳤다!

다음에는 더 다양한 n8n 노드와 함께 원하는 데이터를 쌓아보는 워크플로를 만들어 보자!

 

반응형
Comments