나는 경기도 평택에서 서울 강남으로 출퇴근 하는 직장인이다.
우리 집 앞을 지나가는 광역 버스인 M5438에 탑승해서 편하게 1시간 30분이면 회사에 도착할 수 있다.
하지만 강남에서 평택까지 가는 버스가 유일하다보니 출퇴근 시간대에는 자리가 없어 타고싶어도 탈 수 없는 상황이 나온다.

과거의 버스 남은 좌석 기록을 볼 수 있다면 위와 같이 버스를 하염없이 기다리는 상황을 미리 피할 수 있을 것 같아서 서비스를 만들어보기로 했다.
시간이 흐르고
지난 2025년 05월 카카오 맵에서 버스 예상 시간표 기능이 업데이트 되었다. 이 기능을 쓰면 해결된다. 글을 마치겠다.

첫 출근 때 버스를 놓치고 아이디어를 구상을 해왔지만 카카오 맵에서 너무 고맙게 서비스를 출시했다.
이미 좋은 기능이 있지만 그래도 칼을 뽑았으면 무라도 썰자는 마음, 회사에서 사용하는 기술 스택 연습을 위해 내 손으로 만들어보기로 했다.
직접 개발하려면 1년안에도 못 끝낼 것 같아서 AI 도구를 활용하여 개발하기로 했다.
UI : Lovable
Backend(Java) : Cursor / gemini
etc : Kafka / Docker / AWS
먼저 기획한 구성도는 아래와 같다.
1. 경기도 버스 API를 주기적으로 호출하여 데이터베이스에 저장한다.
2. 사용자가 요청할 때 데이터베이스를 조회하여 응답을 준다.

필요한 모듈은 4개, 데이터 베이스 1개, 역할은 크게 2가지로 나누었다.
(데이터 수집 / 가공)
1. 경기도 버스 API에서 주기적으로 데이터를 읽어서 Kafka에 Produce하는 모듈
2. Kafka를 Consume하여 데이터를 가공 후 Elastic Search에 저장하는 모듈
(UI / 데이터 조회)
3. 사용자와 상호작용하여 시간, 현재 위치한 정류장 등 데이터를 입력받고 API 호출하여 화면을 뿌려주는 UI 웹-앱 모듈
4. UI에서 받은 정보를 토대로 Elastic Search를 조회하여 API 응답을 주는 모듈
다음 글에서는 Lovable로 간단하게 UI 를 만들어보자