RPC(Remote Procedure Call) 통신이란?

RPC란?

RPC(Remote Procedure Call, 원격 프로시저 호출)는 다른 네트워크에 위치한 컴퓨터에서 실행되는 프로시저나 함수를 로컬 컴퓨터에서 실행하는 것처럼 사용할 수 있게 하는 통신 방식입니다. 쉽게 설명하면, 컴퓨터 A에서 ‘주문하기’라는 기능을 실행하려는데 이 기능은 컴퓨터 B에 구현되어 있습니다. 이때 컴퓨터 A는 RPC를 통해 컴퓨터 B에 있는 ‘주문 하기’ 기능을 실행하라고 요청하고, 컴퓨터 B는 ‘주문 하기’ 기능을 실행한 결과를 컴퓨터 A에 보내주는 방식이라고 할 수 있습니다.

 

이처럼 RPC를 이용하면 멀리 떨어진 다른 컴퓨터에 있는 기능을 마치 내 컴퓨터에서 실행하는 것처럼 사용할 수 있습니다. 원래 네트워크 통신을 위해서는 IP 주소, 포트 번호, 프로토콜, 데이터 형식, 오류 처리 등 많은 세부 사항을 고려해야 합니다. 그러나 이런 세부 사항들을 RPC 시스템이 대신 처리해줌으로써 개발자는 원격으로 호출하려는 함수의 이름과 파라미터만 알면 기능을 사용할 수 있는 것입니다.

 

RCP
출처=educative.io

 

RPC 통신 사용 이유

1. RPC를 통해 클라이언트가 네트워크 통신의 복잡성을 배제하고 원격 서버에서 함수나 메서드를 호출할 수 있습니다.

 

2. 중복 코드를 작성하는 대신 한 시스템에서 정의된 함수나 메서드를 다른 시스템에서 재사용할 수 있습니다.

 

3. 다양한 언어를 지원하는 RPC 프레임워크를 사용하면 클라이언트와 서버가 서로 다른 프로그래밍 언어로 개발되어 있어도 통신할 수 있습니다.

 

4. 시스템 간의 결합도를 낮출 수 있습니다. 각 시스템이 독립적으로 확장될 수 있습니다.

 

이런 이유로 RPC는 분산 시스템, 클라우드 컴퓨팅, 마이크로서비스 아키텍처 등에서 널리 사용되고 있습니다.

 

RPC 통신 예시

예를 들어, 마이크로서비스 아키텍처에서 각 서비스는 독립된 모듈로 취급됩니다. 이런 서비스들은 RPC 방식으로 통신할 수 있습니다. 한 서비스가 다른 서비스의 기능을 사용할 때 해당 기능을 구현한 함수를 원격으로 호출합니다.

 

분산 파일 시스템인 NFS(Network File System)도 RPC를 기반으로 합니다. 클라이언트는 네트워크를 통해 원격 서버에 위치한 파일에 접근할 수 있습니다. 이때 클라이언트는 서버의 파일 시스템 관련 함수인 파일 열기, 읽기, 쓰기 등을 원격으로 호출합니다.

반응형

댓글

Designed by JB FACTORY