RPC vs 리플리케이션

원격 프로시저 호출(RPC)

리플리케이션  

위키백과 문서

언리얼 문서 

http://api.unrealengine.com/KOR/Gameplay/Networking/Actors/RPCs/

위키백과 문서

언리얼 예제

http://api.unrealengine.com/KOR/Gameplay/Networking/Example/

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

객체 지향의 원칙을 사용하는 소프트웨어의 경우 원격 프로시저 호출을 원격 호출(remote invocation) 또는 원격 메소드 호출(remote method invocation)이라고 일컫는다.

가끔 ONC RPC와 DCE/RPC와 같은 비호환 대상을 수행하기 위해 쓰이는 다른 수많은 기술이 있다.

레플리케이션(Replication)은 데이터 저장과 백업하는 방법과 관련이 있는 데이터를 호스트 컴퓨터에서 다른 컴퓨터로 복사하는 것인데 이때 다른 컴퓨터가 반드시 떨어진 지역에 있어야 하는 것은 아니다. 컴퓨터 네트워크 상태에서는 데이터 저장을 할 수 있게 하는데 로컬 데이터 물리적 기억 장치와는 완전하게 구분된다. 레플리케이션은 유명한 데이터베이스 관리 시스템 (RDBMS, Relational DataBase Management Systems)에서 추가적으로 제공하거나 여러 대의 데이터베이스 서버의 부하를 맞추어 줄 용도로 제공한다.

레플리케이션은 남아 있는 리소스와 관련이 있는데 소프트웨어 요소나 하드웨어 부품이 말해 주며, 이는 신뢰성, 허용 오차, 그리고 성능을 개선한다. 전형적으로 '레플리케이션 인 스페이스'(replication in space)와 관련이 있는데 이것은 동일한 데이터를 다수의 저장 장치에 저장하거나 동일한 계산 업무를 다수 장치에서 수행하는 것이다. 또한 '레플리케이션 인 타임'(replication in time)는 컴퓨터 계산 수행이 반복적으로 한 개의 장치에서 일어나는 것이다.

    간단히 말하면, 클라이언트가 어떤 작업을 요청했을 때 (ex: 이동)
    • 서버에서 데이터의 유효성을
      검사해서 완전한 값을 확인한다.
    • 서버에서 결론을 내려 해당
      내용을 클라에게 전송해 준다(위치)
    • 클라이언트는 이 결과를
      기반으로 프로세스를 계속 진행한다
  • 클라이언트가 서버에게 어떤 "값"을 받는다. (ex: 이동 시 현재 위치)
    • 이것을 토대로 클라이언트에서 바로 유효성 검사를 하여 서버 기준으로 맞춘다거나 하는 작업을 진행한다.
  • 서버에 부하를 주거나, 작업 속도가 느리다.
  • 같은 값을 조금씩 다르게 유지할 수 있고 이를 맞춰주는 과정이 필요할 수 있다.


+ Recent posts