본문 바로가기
IT 정보/용어

객체 요청 브로커(ORB), CORBA의 심장 ORB의 모든 것을 파헤치다

by 희품 2025. 8. 22.
반응형

객체 요청 브로커(ORB), CORBA의 심장 ORB의 모든 것을 파헤치다 썸네일 이미지

우리가 사용하는 수많은 서비스 뒤에는 보이지 않는 복잡한 세상이 있다. 자바(Java)로 만든 서버와 C++로 만든 클라이언트가, 리눅스 서버와 윈도우 PC가 마치 한 몸처럼 데이터를 주고받는다. 이처럼 서로 다른 언어, 다른 운영체제, 다른 하드웨어의 장벽을 넘어 소프트웨어 컴포넌트들이 원활하게 통신할 수 있도록 돕는 기술이 바로 '미들웨어'이다.
그리고 그 미들웨어 기술의 역사에서 매우 중요한 위치를 차지하는 것이 바로 ORB(Object Request Broker, 객체 요청 브로커)이다.

 

ORB(Object Request Broker)란?

ORB 약어, Object Request Broker는 분산 컴퓨팅 환경에서 분산 객체 간의 통신을 용이하게 하는 미들웨어 구성 요소

ORB는 분산 객체 컴퓨팅 표준인 CORBA(Common Object Request Broker Architecture) 의 핵심 엔진이자 심장이다. 간단히 말해, 네트워크로 연결된 서로 다른 컴퓨터에 존재하는 객체(소프트웨어 부품)들이 마치 같은 컴퓨터 안에 있는 것처럼 서로의 메소드(기능)를 호출하고 통신할 수 있게 해주는 중개인이다.

 

개발자 입장에서 ORB가 없다면, 다른 컴퓨터의 객체를 사용하기 위해 소켓 통신, 데이터 직렬화, 네트워크 오류 처리 등 수많은 저수준(low-level) 작업을 직접 구현해야 한다. 하지만 ORB를 사용하면 이러한 복잡한 네트워크 관련 처리를 모두 ORB에게 위임하고, 개발자는 오직 비즈니스 로직에만 집중할 수 있게 된다. ORB는 일종의 '소프트웨어 버스' 역할을 하며 객체 간의 모든 요청과 응답을 투명하게 전달한다.

 

 

ORB의 핵심 동작 원리 : 투명성의 마법

ORB가 어떻게 이 모든 것을 가능하게 하는지 그 핵심 동작 원리는 무엇일까? ORB의 가장 큰 특징은 '투명성'을 제공하는 것이다.

IT 분야의 투명성을 나타내는 이미지. 기술과 투명함을 연결.

  • 위치 투명성 (Location Transparency): 클라이언트는 자신이 호출하려는 객체가 로컬 컴퓨터에 있는지, 네트워크 건너편 다른 대륙의 서버에 있는지 전혀 알 필요가 없다.
  • 구현 투명성 (Implementation Transparency): 클라이언트는 서버 객체가 어떤 프로그래밍 언어로 만들어졌는지 신경 쓸 필요가 없다.

 

 

 

ORB의 구성 요소

이러한 투명성은 다양한 구성 요소들의 유기적인 협력을 통해 이루어진다.

대화형 온라인 프로젝트 관리 과정, 현대적인 디자인, 매력적인 시각 효과, 컴퓨터 화면, 다양한 학생, 전문적인 환경, 생생한 색상, 교육 자료, 사용자 친화적인 인터페이스, 개별 학습, 전문 프로젝트

  • IDL (Interface Definition Language): 특정 프로그래밍 언어에 종속되지 않는 중립적인 언어로 객체의 인터페이스(어떤 메소드를 제공하는지, 각 메소드는 어떤 파라미터를 받는지 등)를 정의한다. 이 IDL 파일을 컴파일하면 각 언어에 맞는 클라이언트 측 '스텁(Stub)'과 서버 측 '스켈레톤(Skeleton)' 코드가 자동으로 생성된다.
  • 스텁 (Stub): 클라이언트 측에 존재하는 프록시(대리인) 객체이다. 클라이언트는 원격 객체가 아닌 이 스텁 객체의 메소드를 호출한다. 스텁은 클라이언트의 요청을 ORB가 이해할 수 있는 형태로 변환(마샬링)하여 네트워크를 통해 서버로 전송하는 역할을 한다.
  • 스켈레톤 (Skeleton): 서버 측에 존재하며 스텁과 반대 역할을 한다. ORB로부터 요청을 받아 원본 데이터 형태로 변환(언마샬링)한 뒤, 실제 서버 객체의 해당 메소드를 호출한다. 그리고 그 결과를 다시 ORB를 통해 클라이언트로 전달한다.
  • IIOP (Internet Inter-ORB Protocol): ORB들끼리 인터넷(TCP/IP)을 통해 통신하기 위한 표준 프로토콜이다. 이 프로토콜 덕분에 서로 다른 벤더가 만든 ORB 제품이라도 상호 통신이 가능하다.

 

현대기술 관점에서 본 ORB

gRPC 고성능 원격 프로시저 호출 프레임워크 마이크로서비스 다이어그램 구성으로 클라이언트 서버와 서버 간 통신

솔직히 말해, 오늘날 새롭게 시작하는 프로젝트에서 CORBA와 ORB를 주력 기술로 선택하는 경우는 드물다. 웹의 발전과 함께 등장한 RESTful APIgRPC와 같은 기술들이 훨씬 더 간단하고 유연하며, 많은 개발자에게 익숙하기 때문이다. JSON, XML과 HTTP를 사용하는 REST API는 배우기 쉽고, 다양한 플랫폼에서 폭넓게 지원된다는 강력한 장점이 있다.

 

 

하지만 그렇다고 해서 ORB가 완전히 사라진 기술은 아니다. ORB는 강력한 타입 시스템과 언어 독립성, 높은 성능을 바탕으로 여전히 특정 도메인에서 중요한 역할을 수행하고 있다. 특히 수십 년간 안정성이 검증되어야 하는 금융, 통신, 국방, 항공 우주, 대규모 산업 제어 시스템 등 미션 크리티컬한 분야의 레거시 시스템에서는 여전히 CORBA와 ORB가 굳건히 자리를 지키고 있다.


피어-투-피어 네트워크 - P2P - 각 피어가 동일한 기능과 자원을 갖는 분산형 통신 모델 - 개념적 예시

결론적으로 ORB는 분산 컴퓨팅의 개념을 한 단계 발전시킨 선구적인 기술이다. 비록 주류의 자리에서는 내려왔지만, ORB가 제시했던 '이기종 시스템 간의 원활한 연동'이라는 목표와 위치 투명성, 인터페이스 정의와 같은 개념들은 오늘날의 마이크로서비스 아키텍처(MSA)와 API 기반 통신 기술에 깊은 영감을 주었음은 부정할 수 없는 사실이다.

궁금하신 내용이 있으면 댓글 남겨주세요. 꼬리말 이미지.

#ORB #ObjectRequestBroker #CORBA #미들웨어 #분산컴퓨팅 #IT기술 #프로그래밍 #개발자 #레거시시스템 #IIOP #IDL

반응형