사용자가 킥보드를 타고 주행하다가 배터리에 문제가 생기면 갑자기 멈춰버리는 문제가 있었습니다. 이는 심한 지역의 경우 이용의 1~2% 정도 발생하고, 전체 고객 문의의 70%를 차지할 정도로 전사 차원에서 심각한 문제였습니다.
주행 중 멈춤이 발생하면 특정 패턴의 하드웨어 명령이 들어왔기에 이를 Kafka Streams를 통해 실시간으로 감지하는 주행 중 멈춤 감지 시스템을 개발했고 이를 Kibana에서 실시간으로 확인할 수 있도록 했습니다.
결과적으로 주행 중 멈춤 현상이 발생하는 배터리의 수를 이전의 10% 수준으로, 고객 문의 수는 이전의 5% 수준으로 줄였습니다.
•
Apache Avro를 이용해 킥보드 명령 스키마를 관리해 추후 펌웨어 업데이트로 인해 프로토콜이 변경되어도 안전하게 대응할 수 있도록 함
•
Kafka Streams를 이용해 주행 중 멈춤 패턴을 실시간으로 감지하도록 구현
•
주행 중 멈춤과 관련하여 필요한 부가적인 정보를 별도의 이벤트로 받아 KTable로 구축하고, 주행 중 멈춤이 감지된 경우 이를 Join해 함께 기록되도록 함
•
Github Action과 Jib를 이용해 컨테이너 이미지를 빌드하고 AWS ECR을 이용해서 관리
•
AWS ECS Fargate를 사용해서 배포 및 운영