1.21 Zenoh 프로젝트의 초기 아키텍처 구축

1.21 Zenoh 프로젝트의 초기 아키텍처 구축

1. 프로젝트의 출발점과 핵심 설계 목표

Zenoh 프로젝트는 분산 컴퓨팅 환경에서 기존 미들웨어가 지닌 성능적, 구조적 한계를 근본적으로 해결하고자 하는 학술적, 실무적 통찰에서 출발했다. 초창기 연구팀은 사물인터넷(IoT), 로보틱스, 엣지 컴퓨팅(Edge Computing) 시스템이 각기 다른 네트워크 토폴로지와 이질적인 통신 패턴을 요구함에 따라, 시스템 전반의 복잡성이 통제 불가능한 수준으로 치솟는 현상에 주목했다.

이러한 문제를 타개하기 위해 Zenoh의 초기 아키텍처는 세 가지 핵심 목표를 설정했다. 첫째, 엣지(Edge)와 데이터 센터 장비뿐만 아니라 자원이 극도로 제한된 마이크로컨트롤러(Microcontroller) 환경에서도 동작해야 한다(Cloud-to-Microcontroller Continuum). 둘째, 발행/구독(Pub/Sub)과 질의/응답(Query/Reply) 패턴을 단일 프로토콜로 통합하여 데이터의 세 가지 상태(Data in Motion, Data at Rest, Data in Computation)를 동시에 다룰 수 있어야 한다. 셋째, 이 모든 기능을 제공하면서도 네트워크 대역폭과 CPU 자원의 낭비를 최소화하는 제로 오버헤드(Zero Overhead) 원칙을 달성해야 한다.

2. 엑세스 추상화 기반의 세션 계층 설계

Zenoh 아키텍처의 가장 눈에 띄는 초기 설계는 통신 인터페이스를 담당하는 세션 계층(Session Layer)과 물리적인 데이터 전송을 담당하는 라우팅 계층(Routing Layer)의 명확한 분리이다.

세션 계층 설계의 핵심은 위치 투명성(Location Transparency)을 제공하는 리소스 명명 규약이었다. IP 주소나 브로커의 위치에 종속되지 않도록, 데이터 자체를 논리적으로 식별하는 키 표현식(Key Expression) 개념과 이를 구독 또는 질의하기 위한 셀렉터(Selector) 개념이 초기 프로토타입부터 강력한 추상화 구조로 도입되었다. 이를 통해 애플리케이션 개발자는 물리적인 네트워크 환경의 변화와 관계없이 언제나 동일한 API를 통해 일관된 방식으로 데이터를 요청하고 수신할 수 있게 되었다.

3. 효율성을 극대화한 라우팅 계층 모델

Zenoh는 정보 중심 라우팅(Information-Centric Routing)의 개념을 바탕으로 기존의 중앙 브로커(Centralized Broker) 기반 아키텍처를 탈피했다. 네트워크 상의 장치 역할을 클라이언트(Client), 피어(Peer), 라우터(Router)로 규정하고 노드 간의 동적 발견(Dynamic Discovery) 기술을 아키텍처 코어에 내장했다.

라우팅 계층은 네트워크 토폴로지(Mesh, Routed, Clique)의 제약을 뛰어넘어 동작하도록 최적화되었다. 특히 초기 설계 단계부터 프로토콜 내부에 유선 수준의 패킷 일괄 처리(Wire-level Batching) 및 효율적인 단편화(Fragmentation) 기법을 반영하여, 극히 적은 바이트 스트림만으로도 메타데이터와 단편화된 페이로드를 안정적으로 전송할 수 있는 강력한 하부 구조를 탄생시켰다. 이처럼 철저한 모듈화와 최적화의 융합은 Zenoh가 차세대 데이터 중심 네트워킹(Data-Centric Networking)의 중추로 성장할 수 있는 견고한 초석이 되었다.