Cursor로 경기도 버스 API에서 데이터를 조회하고 Kafka에 전송하는 Java 모듈을 만들어보자

 

먼저 공공데이터 포탈에서 버스 정보를 얻기 위해 필요한 API를 신청해서 인증키를 받는다.

공공데이터 포털

 

API 호출 방법

 

이후에 Cursor에게 내가 만들고 싶은 모듈의 설명을 적는다.

 

내 모듈의 주요 역할은 크게 2가지로 나눌 수 있다.

 

1. 경기도 버스 API 3분 마다 호출, JSON 데이터 형식으로 파싱한다.

2. 데이터 원본 그대로  Kafka `bus-location-events` 토픽에 프로듀싱한다.

cursor 진행 과정

 

그렇게 프로젝트 의존성 파일부터 시작해서 코드까지 뚝딱 결과물을 만들어준다.

 

만들어준 코드의 주요 부분을 살펴보자.

 

경기도 버스 API 요청 주소와 M5438번 버스를 의미하는 노선 ID(routeId), 데이터를 프로듀싱할 토픽을 final 변수로 선언한다.

 

해당 정보를 토대로 uri를 구성하고 https 요청을 통해 얻은 JSON 데이터를 KafkaTemplate을 통해 데이터를 프로듀스한다.

 

 

일단 로컬에서 테스트 하기 위해 Docker Hub로 kafka image를 다운받아 9092 포트를 포트포워딩하여 실행하였고

컨테이너 내부로 진입하여 토픽 생성까지 완료했다.

 

 

 

그렇게 cursor가 만들어준 Java 코드를 maven으로 빌드하여 실행하면 kafka log에 다음과 같이 데이터가 전송되는 것을 볼 수 있다.

 

 

 

uri를 만들 때 인증키가 이중으로 인코딩 되는 문제 말고는 단순히 API를 호출하고 Kafka에 데이터를 쓰는 간단한 모듈이기에 순조롭게 진행됐다. 

 

다음 글에서는 해당 kafka topic에 있는 데이터를 consume하여 데이터를 가공하고, 데이터베이스에 저장하는 java 모듈을 만들어보자.