1261.27 토픽 기반 데이터 스트리밍의 장점과 한계
1. 토픽 기반 데이터 스트리밍의 개요
ROS2에서 토픽(Topic)은 발행-구독(Publish-Subscribe) 패턴을 구현하는 비동기 단방향 통신 채널이다. 토픽 기반 데이터 스트리밍은 발행자(Publisher)가 연속적으로 메시지를 발행하고, 하나 이상의 구독자(Subscriber)가 이를 수신하는 방식으로 데이터 흐름을 형성한다. 이 통신 방식은 센서 데이터의 주기적 전달, 상태 정보의 지속적 갱신, 제어 명령의 연속적 전송 등 로봇 시스템의 핵심적인 데이터 흐름을 구성하는 기본 메커니즘이다.
2. 토픽 기반 데이터 스트리밍의 장점
2.1 공간적 분리에 의한 모듈성 확보
토픽 통신에서 발행자와 구독자는 상대방의 존재 여부, 네트워크 주소, 프로세스 위치를 인지할 필요가 없다. 양측은 토픽 이름과 메시지 타입이라는 논리적 계약(Contract)만을 공유하며, DDS(Data Distribution Service) 미들웨어의 검색(Discovery) 메커니즘이 자동으로 상대방을 탐지하여 연결을 수립한다. 이러한 공간적 분리(Spatial Decoupling)는 시스템 구성요소의 독립적 개발, 배포, 교체를 가능하게 하며, 로봇 소프트웨어 아키텍처의 모듈성을 근본적으로 보장한다.
2.2 일대다 및 다대다 통신 지원
하나의 토픽에 대해 복수의 발행자와 복수의 구독자가 동시에 참여할 수 있다. 이는 동일한 센서 데이터를 인지 모듈, 제어 모듈, 로깅 모듈 등 다수의 소비자가 독립적으로 활용하는 로봇 시스템의 일반적인 데이터 흐름 패턴에 자연스럽게 부합한다. 복수의 발행자로부터의 데이터가 동일 토픽을 통해 전달되는 다대다(Many-to-Many) 통신도 지원되며, 이는 다중 센서 융합이나 분산 상태 보고 등에 활용된다.
2.3 비동기적 통신에 의한 시간적 분리
토픽 통신은 본질적으로 비동기(Asynchronous) 방식으로 동작한다. 발행자는 메시지를 발행한 후 구독자의 수신이나 처리를 대기하지 않으며, 구독자는 자신의 처리 주기에 따라 독립적으로 메시지를 소비한다. 이러한 시간적 분리(Temporal Decoupling)는 발행자와 구독자 간의 처리 속도 차이를 흡수하며, 하나의 구성요소가 지연되더라도 다른 구성요소의 실행에 직접적인 영향을 미치지 않는다.
2.4 연속 데이터 스트림에 대한 최적화
토픽 통신은 센서 데이터, 위치 추정 결과, 제어 입력 등 연속적으로 생성되는 시계열 데이터(Time-Series Data)의 전달에 최적화되어 있다. 발행 주기와 구독 주기가 독립적이므로, 발행자는 센서의 갱성 주기에 맞추어 데이터를 발행하고 구독자는 제어 루프의 주기에 맞추어 최신 데이터를 소비할 수 있다. QoS 정책의 이력(History) 설정을 통해 최신 데이터만 유지하거나 모든 데이터를 축적하는 방식을 선택할 수 있다.
2.5 동적 시스템 구성의 용이성
토픽 통신은 노드의 동적 합류(Join)와 이탈(Leave)을 자연스럽게 지원한다. 새로운 구독자가 시스템에 추가되더라도 기존 발행자의 코드나 설정을 변경할 필요가 없으며, DDS 검색 프로토콜이 자동으로 신규 엔드포인트를 인식한다. 이는 로봇 시스템의 운영 중 모듈 추가·제거, 진단 도구의 임시 접속, 다중 로봇 환경에서의 동적 통신 그래프 형성에 핵심적인 특성이다.
2.6 표준화된 메시지 인터페이스
ROS2의 토픽 통신은 .msg 파일을 통해 정의된 형식화된 메시지 타입을 사용한다. sensor_msgs/msg/LaserScan, geometry_msgs/msg/Twist, nav_msgs/msg/Odometry 등 로봇 공학 분야에서 널리 사용되는 표준 메시지 타입이 사전 정의되어 있으며, 이는 이기종 하드웨어와 소프트웨어 간의 데이터 호환성을 보장한다.
3. 토픽 기반 데이터 스트리밍의 한계
3.1 요청-응답 패턴의 직접적 미지원
토픽 통신은 단방향 데이터 흐름을 기반으로 설계되었으므로, 특정 요청에 대한 응답을 직접적으로 수신하는 요청-응답(Request-Response) 패턴을 본질적으로 지원하지 않는다. 매개변수 조회, 구성 변경, 일회성 연산 요청 등 동기적 상호작용이 필요한 사용 사례에서는 토픽 통신만으로는 요청과 응답의 인과적 연결(Causal Linkage)을 보장할 수 없다.
3.2 전달 확인 메커니즘의 부재
RELIABLE QoS 정책을 적용하더라도, 이는 DDS 미들웨어 수준에서의 전달 보장에 해당하며, 구독자가 메시지를 정상적으로 처리하였는지에 대한 응용 수준의 확인(Acknowledgment)은 제공되지 않는다. 따라서, 로봇에 긴급 정지 명령을 전달한 후 해당 명령이 실제로 수행되었는지를 확인하는 것은 토픽 통신만으로는 불가능하다.
3.3 장시간 작업에 대한 진행 상황 보고 부재
토픽 통신은 목표(Goal)의 설정, 진행 상황(Feedback)의 보고, 최종 결과(Result)의 반환이라는 구조화된 장시간 작업 패턴을 지원하지 않는다. 로봇의 내비게이션, 매니퓰레이션 등 수초에서 수분에 걸쳐 수행되는 복합 행동에서는 작업의 시작, 진행 경과, 완료 또는 실패를 체계적으로 관리할 필요가 있으나, 토픽의 단순 스트리밍 구조로는 이러한 상태 관리가 어렵다.
3.4 작업 취소와 선점의 미지원
토픽 통신에는 진행 중인 작업을 외부에서 취소하거나, 새로운 목표로 기존 작업을 선점(Preempt)하는 메커니즘이 내장되어 있지 않다. 이를 토픽만으로 구현하려면 별도의 취소 토픽을 정의하고, 발행자와 구독자 양측에서 취소 프로토콜을 자체적으로 구현하여야 하며, 이는 코드의 복잡성과 오류 가능성을 증가시킨다.
3.5 메시지 순서 보장의 제약
DDS 미들웨어는 동일 발행자로부터 전송된 메시지에 대해서는 순서(Order)를 보장하나, 복수의 발행자로부터 동일 토픽에 발행된 메시지 간의 전역적 순서(Global Ordering)는 보장하지 않는다. 따라서, 다대일(Many-to-One) 통신 구조에서는 메시지의 도착 순서가 발행 순서와 상이할 수 있으며, 시간 동기화(Time Synchronization)를 통해 이를 보정하여야 한다.
3.6 대역폭 소비와 확장성 제약
토픽 기반 스트리밍에서 발행된 메시지는 모든 활성 구독자에게 개별적으로 전달된다. 대용량 메시지(예: 고해상도 이미지, 3차원 포인트 클라우드)를 다수의 구독자에게 동시에 전달하는 경우, 네트워크 대역폭 소비가 구독자 수에 비례하여 증가한다. DDS의 멀티캐스트(Multicast) 전송이 이를 부분적으로 완화할 수 있으나, 네트워크 인프라의 멀티캐스트 지원 여부에 의존한다.
3.7 데이터 흐름 제어의 미비
토픽 통신에서 구독자는 발행자의 발행 속도를 제어할 수 있는 역압(Backpressure) 메커니즘을 보유하지 않는다. 구독자의 처리 속도가 발행 속도에 미달하는 경우, 수신 큐의 초과로 인한 메시지 폐기가 발생하며, 이는 데이터 손실로 이어질 수 있다. KEEP_ALL 이력 정책을 적용하면 메시지 폐기를 방지할 수 있으나, 메모리 사용량의 무한 증가가 유발될 수 있다.
4. 토픽 통신의 적합한 적용 영역과 보완 전략
토픽 기반 데이터 스트리밍은 주기적 센서 데이터 전달, 연속적 상태 발행, 제어 명령의 지속적 전송 등 단방향 데이터 스트림이 요구되는 영역에서 최적의 성능을 발휘한다. 반면, 요청-응답 상호작용에는 서비스(Service) 통신이, 장시간 작업의 관리에는 액션(Action) 통신이 각각 적합하다.
실제 로봇 시스템에서는 토픽, 서비스, 액션을 상호 보완적으로 조합하여 통신 아키텍처를 구성한다. 토픽의 한계를 정확히 인식하고, 각 통신 패러다임의 장점이 극대화되는 사용 사례에 적절히 배치하는 것이 고품질 로봇 소프트웨어 설계의 기본 원칙이다.
5. 참고 문헌
- Open Robotics, “ROS 2 Documentation: Humble Hawksbill,” https://docs.ros.org/en/humble/, 2022.
- Eugster, P. T., Felber, P. A., Guerraoui, R., Kermarrec, A.-M., “The Many Faces of Publish/Subscribe,” ACM Computing Surveys, Vol. 35, No. 2, pp. 114–131, 2003.
- OMG, “Data Distribution Service (DDS) Specification, Version 1.4,” Object Management Group, 2015.
- Maruyama, Y., Kato, S., Azumi, T., “Exploring the Performance of ROS2,” Proceedings of the 13th International Conference on Embedded Software (EMSOFT), 2016.