RPC

최승혁·2022년 6월 23일
0
post-custom-banner

Remote Procedure Call (원격 프로시저 호출)

정의

원격 프로시저 호출(영어: remote procedure call, 리모트 프로시저 콜, RPC)은 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술이다. 다시 말해, 원격 프로시저 호출을 이용하면 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 동일한 코드를 이용할 수 있다.

From wikipedia

RPC란 프로세스 간 통신을 위해 사용하는 IPC(Inter Process Communication) 방법의 한 종류이다. 원격지의 프로세스에 접근하여 프로시저 또는 함수를 호출하여 사용한다. 말 그대로 원격지의 프로시저를 호출하는 것이다. 일반적으로는 프로세스는 자신의 주소 공간 안에 존재하는 함수만 호출하여 실행 가능하다. 하지만, RPC를 이용하면 다른 주소 공간에서 동작하는 프로세스의 함수를 실행할 수 있게 된다.

탄생 배경

분산 컴퓨팅 환경에서 프로세스 간 상호 통신 및 컴퓨팅 자원의 효율적인 사용을 위해서 발전된 기술이다. RPC는 분산 컴퓨팅과 client-server를 베이스로 한 앱을 위한 강력한 기술이다.

현재 유행하는 MSA 구조로 서비스를 만들다보면, 다양한 언어와 프레임워크로 개발되는 경우가 잦다. 이런 구조에서는 프로토콜을 맞춰서 통신해야 하는 비용이 발생한다. 하지만 RPC를 이용하게 되면, 언어에 구애받지 않고 원격에 있는 프로시저를 호출하여 고유 프로세스 개발에 집중할 수 있게 된다.

RPC는 일반적인 로컬 프로시저 호출을 확장하는 것을 기반으로 한다. 그래서 호출된 프로시저가 호출하는 프로시저와 같은 주소 공간에 존재하지 않는다. 두 프로세스들이 같은 시스템에 있거나 다른 시스템에 존재하며 네트워크가 그들을 연결하는 형태로 존재한다.

RPC 동작 방식

RPC의 장단점

  • 고유 프로세스 개발에 집중이 가능하다.
  • 프로세스간 통신 기능을 비교적 쉽게 구현하고 정교한 제어가 가능하다.
  • 호출 실행과 반환 시간이 보장되지 않는다. (네트워크에 의존)
  • 보안이 보장되지 않는다.

참고자료: jakeseo-javascript.js

profile
그냥 기록하는 블로그
post-custom-banner

0개의 댓글