종이라벨을 넘어 실시간 IoT 데이터 파이프라인으로 구현한 오프라인 DX 여정
전국 1,300개 매장의 수백만 개 가격표를 실시간으로 제어하는 거대한 IoT 생태계 구축기를 다룹니다. 수동 업무로 인한 물리적 부채를 코드로 해결하고, 이벤트 기반 아키텍처를 통해 데이터가 스스로 자신을 증명하는 자동 동기화 환경을 구현한 기술적 도전과 성과를 담고 있습니다.
오프라인 비즈니스의 디지털 전환(DX)을 고민하는 엔지니어나 대규모 IoT 기기를 안정적으로 관리하려는 백엔드 개발자에게 강력히 추천합니다. 레거시 시스템의 부하를 줄이면서 데이터 정합성을 확보하는 실전적인 이벤트 기반 아키텍처 패턴을 학습할 수 있습니다.
전국 1,300여 개 올리브영 매장의 수백만 개 가격표를 수동으로 교체하면서 막대한 물리적 리소스가 소모되었으며, 재고와 가격 데이터의 실시간 동기화가 불가능했습니다. 특히 데이터 변경이 현장에 도달하기까지 직원의 물리적 개입이 필수적인 '물리적 지연(Physical Latency)'이 발생하여 매장 운영의 병목 현상을 초래했습니다.
Kotlin과 Spring Boot 3.x를 기반으로 한 클라우드 중앙화 아키텍처를 구축하고, MSK(Kafka)와 SQS를 활용한 이벤트 기반 메시지 파이프라인을 도입했습니다. 이를 통해 전국의 ESL 단말기에 데이터를 비동기로 전달하며, 서버 중심의 템플릿 렌더링 기술과 중앙 관제 시스템을 통해 데이터 일관성을 확보하고 원격 제어가 가능하도록 설계했습니다.
매장당 일 평균 약 2시간의 업무 시간을 절감하여 전사적으로 약 90만 시간의 가치를 창출했으며, 온-오프라인 데이터 정합성을 실시간으로 확보했습니다. 또한 동적 뷰 렌더링을 통해 프로모션별 UI 다형성을 구현함으로써 오프라인 매장의 마케팅 유연성을 비약적으로 높였습니다.
Trade-off
본문에 구체적인 한계점은 명시되지 않았으나, 일반적으로 대규모 IoT 기기를 실시간 제어하기 위한 메시지 큐와 클라우드 인프라 운용에 따른 유지보수 비용 및 네트워크 장애에 대한 의존도가 높아지는 트레이드오프가 예상됩니다.
데이터가 시스템상에서 변경되었으나 직원의 물리적 확인과 개입이 없어 실제 현장에 반영되지 못하고 지체되는 시간입니다.
이벤트 발생 시 메시지 큐를 통해 데이터를 비동기적으로 전달하여 시스템 간 결합도를 낮추고 대규모 트래픽을 완충하는 구조입니다.
고정된 레이아웃 대신 서버에서 전송한 데이터를 기반으로 런타임에 UI를 동적으로 시각화하는 기술입니다.