RPC란

정삼복·2023년 11월 9일
0

기본 개발 개념

목록 보기
3/3

우리가 일반적으로 사용하는 통신 패턴인 HTTP는

  • Client to Server 패턴
    • 서버를 키면
    • 클라이언트는 서버에 데이터 혹은 행동을 요청함
    • 서버는 요청 받은 내용에 대한 응답을 반환함
    • 클라이언트는 응답 값으로 자신의 요청 결과를 알 수 있음

RPC란

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

출러-wikipedia

RPC는 프로세스 간 통신의 형태(IPC)의 한 형태로 떨어져 있거나 분산되어 있는 컴퓨터간의 통신을 위한 기술

프로시저

원격에서 호출될 함수나 메소드

그래서 RPC를 사용하면 클라이언트 애플리케이션은 마치 로컬에 있는 함수를 호출하는 것처럼 원격에 위치한 프로시저를 호출할 수 있음

스텁

Stub이란 프로시저 호출을 추상화하는 작은 코드입니다.

RPC에서 stub은 클라이언트와 서버 사이에 원격 프로시저 호출을 처리하기 위해 사용됩니다.

RPC의 작동 과정

  1. 클라이언트에서 원격 프로시저를 호출하려면, 클라이언트 측에 stub이 필요함, 이 stub은 각각의 원격 프로시저에 대해 별도로 존재함
  2. 클라이언트가 스텁 프로시저를 호출하면, RPC 시스템은 해당 stub을 호출하고 원격 프로시저에 제공된 매개변수를 전달함.
  3. 클라이언트 측 stub은 서버의 포트를 찾아 매개변수를 정리(marshal)한 다음 메세지를 사용해 서버로 정보를 전송합니다.
  4. 서버 측에도 유사한 stub 존재 해서, 이 stub은 메세지를 받아 서버에서 프로시저를 호출함.
  5. 필요한 경우, 반환값은 같은 방법을 사용해 클라이언트로 전달됨

출처: geeks for geeks

RPC의 장점

  1. 각가의 프로세스 개발 집중 가능
  2. 프로세스간 통신 기능을 비교적 쉽게 구현하고 정교한 제어가 가능

RPC의 단점

  1. 네트워크 구간을 통하여 RPC 통신을 하는 경우 반환과 요청 시간이 보장되지 않는다.(네트워크가 끊겼을 때 치명적 문제 발생)
  2. 보안이 보장되지 않음

대표적인 RPC 프레임워크

  • gRPC
  • Apache Thrift
  • Apache Avro: Apache
profile
재밌어 보이는건 다 하고있습니다.

0개의 댓글

관련 채용 정보