더북(TheBook)

PIDL 파일에 선언된 함수들은 C++나 C# 같은 여러 언어로 작성된 송신 코드나 수신 코드로 만들어집니다. 송신 코드나 수신 코드는 뒤에서 설명할 Proxy 및 Stub이라는 이름의 클래스로 만들어집니다. 이들 클래스는 네임스페이스(namespace) 안에 들어갑니다. 앞 코드에서 global 키워드 다음에 이어지는 것은 네임스페이스 이름입니다.

이 이름 다음으로 이어지는 숫자는 메시지 ID 값입니다. 프로세스 A에서 프로세스 B의 RMI 함수 X를 호출한다고 가정합시다. 이때 함수 X에 있던 매개변수는 메시지 형태로 만들어야 합니다. 그래야 프로세스 B에 보낼 수 있으니까요. 함수 매개변수를 메시지 블록으로 만드는 과정을 직렬화(serialize)라고 합니다. 반대로 메시지 블록에서 함수 매개변수를 추출하는 것을 역직렬화(deserialize)라고 합니다. 하지만 매개변수만 보낼 수는 없고 함수 X도 보내야 합니다. 이때 함수 X의 코드 자체를 보내는 것은 불가능하며, 그 대신 함수 X를 지칭하는 어떤 정수 값을 보냅니다. 이 정수 값을 메시지 ID라고 합니다.

그렇습니다. 여러분이 선언하는 RMI 함수 각각은 서로 다른 메시지 ID를 가져야 합니다. 이 메시지 ID를 RMI ID라고 칭하겠습니다.

이 코드의 1000, 2000은 RMI ID의 시작 값입니다. 여러분이 선언하는 각각의 RMI 함수는 서로 다른 RMI ID를 가집니다. 선언된 순서대로 1 큰 수를 가집니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.