콘텐츠로 건너뛰기

실시간 버스 위치 데이터 수집: n8n 워크플로우의 모든 것



실시간 버스 위치 데이터 수집: n8n 워크플로우의 모든 것

이번 글에서는 n8n을 이용한 실시간 버스 위치 데이터 수집 프로젝트에 대해 자세히 소개할게요. 제가 직접 시행한 이 프로젝트는 실시간으로 데이터를 수집하고 관리하는 데 매우 유용했답니다. 이 포스트를 통해 실시간 위치 데이터 수집을 위한 n8n 워크플로우 과정을 단계별로 이해하시고, 여러분의 필요에 맞게 응용해 보실 수 있을 거예요.

n8n 워크플로우 개요

제가 직접 경험해 본 바로는, n8n은 사용자 친화적이며 강력한 오픈 소스 자동화 툴이에요. 이번 프로젝트에서는 특정 버스 노선의 실시간 위치 데이터를 수집하는 과정을 구현했어요. 전체 워크플로우는 다음의 표와 같은 방식으로 진행됩니다.

작업 단계기능
1. Schedule Trigger3분마다 워크플로우 실행
2. If Node특정 시간대(02:00 ~ 05:00) 데이터 필터링
3. HTTP Request경기도 공공데이터 API로부터 실시간 버스 정보 요청
4. Split OutAPI 응답 중 버스 위치 데이터 분리
5. Edit Fields데이터 가공 및 timestamp 필드 추가
6. Date & Timetimestamp를 YYYY-MM-DD HH:mm:ss 형식으로 변환
7. Merge가공된 데이터와 원본 데이터 병합
8. Google Sheets가공된 데이터 Google Sheets에 저장

이 과정을 통해 수집한 데이터는 매우 유용하게 활용할 수 있는데요, 특히 지속적으로 업데이트되는 실시간 정보는 우리가 버스 현황을 파악하는 데 큰 도움이 된답니다.

 

👉 ✅ 상세정보 바로 확인 👈

 



  1. 데이터 수집 트리거 설정

n8n 워크플로우의 첫 단계로, Schedule Trigger를 설정했어요. 이 트리거는 3분마다 자동으로 실행된답니다. 이렇게 설정한 이유는 버스의 실시간 현황을 자주 확인해야 하기 때문이에요.

많은 사람들이 시간대에 따라 대중교통 이용에 차이가 나타난다고 느껴본 적 있으실 거예요. 특히 출퇴근 시간에 더 높은 빈도로 데이터를 수집하는 것은 필수적이에요.

2. 특정 시간대 제외하기

워커플로우의 두 번째 단계에서는 시간 조건을 검토하는 If 노드를 활용하여, 특정 시간대인 02:00 ~ 05:00 사이에는 데이터를 요청하지 않도록 필터링했어요. 이 시간대에는 대부분의 버스가 운행되지 않는 경우가 많기 때문에 불필요한 데이터 수집을 막을 수 있었어요.

이렇게 설정하게 되면 시스템 리소스를 효율적으로 사용할 수 있다는 점이 장점이랍니다. 과연 이 방법이 지속적인 데이터 수집에 더 효율적이지 않을까요?

버스 위치 정보 요청 및 데이터 관리

다음 단계에서는 HTTP Request 노드를 사용하여, 경기도 공공데이터 API에 실시간 위치 데이터를 요청했어요. 이 API에서 특정 노선, 즉 routeId=200000104의 실시간 버스 위치 정보를 가져옵니다.

API 요청 및 응답 분할

버스 정보를 요청하고 나면, API로부터 응답이 오게 돼요. 이 응답 중에서 busLocationList 필드를 개별 항목으로 분리하는 Split Out 단계를 추가했어요. 이 과정은 인상 깊었는데, 데이터를 분리할 때 ‘가공’과 ‘원본’이 어떻게 조화롭게 연결되는지를 실감했어요.

데이터 가공 및 날짜 형식 변환

그 후에 Edit Fields 단계에서 각 데이터를 가공하고, 수집한 timestamp 필드를 추가했어요. 이 필드는 나중에 데이터 분석에 매우 유용하답니다. 그 외에도 Date & Time 기능을 활용하여 timestamp를 YYYY-MM-DD HH:mm:ss 포맷으로 변환해 주었어요.

이렇게 날짜 포맷 변경 하나하나가 데이터 가공의 진정한 의미를 더해주었답니다.

데이터 통합과 Google Sheets 저장

마지막 단계는 가공된 데이터를 Google Sheets에 저장하는 과정이에요. 여기에서는 Google Sheets 노드를 활용하여 bus_data 시트에 변환된 데이터를 기록했습니다.

저장되는 데이터는 아래와 같은 내용을 포함해요:

  • plateNo (버스 번호판)
  • remainSeatCnt (남은 좌석 수)
  • stationId (현재 정류장 ID)
  • stationSeq (정류장 순번)
  • timestamp (데이터 수집 시각)

이 데이터를 실시간으로 확인할 수 있게 돼서, 정말 유용했답니다. 데이터가 정리된 Google Sheets를 통해 분석 및 시각화 대시보드를 구성할 수 있었던 경험은 무척 감사했어요.

3분마다 기록되는 실시간 데이터의 기적

3분마다 Google Sheets에 기록되는 새로운 버스 운행 데이터는, 실제 상황에서 매우 중요한 역할을 해 주었어요. 제가 데이터를 수집하면서 느낀 것은, 이러한 자동화는 덕분에 편리하고, 시간 소비를 줄여주기 때문에 더욱 중요하다는 거예요.

Google Sheets에서 확인하기

Google Sheets의 bus_data 시트에서 실시간으로 저장된 데이터를 확인하고, 필요시 해당 데이터를 활용하여 추가적인 분석 작업을 할 수 있었어요. 데이터가 분류되고 체계적으로 정리되어 있었기 때문에, 후속 작업이 매우 쉬웠답니다. 여러분도 Google Sheets를 활용한 데이터 관리가 얼마나 용이한지 직접 느껴보시길 바라요.

자주 묻는 질문 (FAQ)

n8n은 어떤 용도로 사용되나요?

n8n은 데이터 자동화를 위한 오픈 소스 툴로, 다양한 API와 연동해 사용됩니다.

Google Sheets와 연동이 왜 중요한가요?

Google Sheets와의 연동은 데이터 저장과 분석을 보다 쉽게 할 수 있도록 도와줍니다.

버스 실시간 데이터는 어떻게 활용할 수 있나요?

수집된 버스 실시간 데이터를 통해 대중교통 이용 패턴 분석, 시각화 대시보드 구성 등이 가능합니다.

n8n의 장점은 무엇이 있나요?

n8n은 사용자 친화적 인터페이스를 갖추고 있어 자동화 작업을 쉽게 설정하고 관리할 수 있습니다.

결론적으로, n8n은 복잡한 데이터 수집 과정을 자동화하여 보다 편리한 데이터를 제공해주는 훌륭한 도구랍니다. 데이터를 수집하여 필요한 순간에 활용하는 경험을 통해, 대중교통 시스템의 활용 가능성을 한층 더 높일 수 있었어요.

키워드: n8n, 자동화, 실시간 데이터, Google Sheets, 버스 위치 데이터, API, 데이터 수집, 데이터 가공, 분석, 워크플로우, 대중교통