Table of contents

    IPC와 RPC 차이

    IPC(Inter-Process Communication)와 RPC(Remote Procedure Call)는 둘 다 다른 프로세스 간 통신을 위한 기술이다.

     

    그러나 이 두 개념은 큰 차이가 있다.

     

    IPC는 동일한 컴퓨터 내에서 실행 중인 프로세스 간에 통신을 수행한다.

     

    예를 들어, 파이프, 메시지 큐, 공유 메모리 및 세마포어 등을 이용하여

    동일한 시스템에서 실행 중인 프로세스 간에 데이터를 전송하고 동기화하는 데 사용된다.

     

    반면에 RPC는 네트워크를 통해 서로 다른 컴퓨터나 시스템에서 실행 중인 프로세스 간에 통신을 수행한다.

     

    RPC는 프로그래머가 마치 로컬 함수를 호출하는 것처럼 원격 시스템에서 실행 중인 함수를 호출할 수 있게 해준다.

     

    RPC를 사용하면 원격 시스템에서 실행 중인 코드를 로컬 코드와 거의 동일하게 호출할 수 있다.

     

     

    요약하면,

    IPC는 동일한 컴퓨터 내에서 실행 중인 프로세스 간에 통신을 수행하는 데 사용되고,

    RPC는 서로 다른 컴퓨터나 시스템에서 실행 중인 프로세스 간에 통신을 수행하는 데 사용된다.

     

    IPC 종류

    • Named Pipe
      • 다수의 프로세스 간 통신에 사용된다.
    • Message Queue
      • 프로세스 간의 통신 및 메시지 전달에 사용된다.
    • Shared Memory
      • 여러 프로세스에서 데이터를 공유하고 동시에 수정할 수 있다.
    • Semaphore
      • 공유 자원에 대한 동기화를 위해 사용된다.
    • Windows RPC
      • Windows 운영체제에서 지원하는 RPC이며, 프로세스 간 통신을 위해 사용된다.
    • Socket
      • 네트워크 프로그래밍에서 자주 사용되며, 다른 프로세스나 컴퓨터와 통신할 수 있다.

     

    RPC 종류

    Window 환경에서 C언어로 구현할 수 있는 RPC 종류는 다음과 같습니다.

     

    • Windows RPC
      • Windows 운영체제에서 지원하는 RPC Microsoft에서 개발했다.
      • COM(Component Object Model)와 같이 사용되어 객체지향 프로그래밍에서 자주 활용된다.
    • ONC RPC
      • Sun Microsystems에서 개발한 RPC
      • UNIX, Linux, Windows와 같은 다양한 운영체제에서 사용할 수 있다.
      • 네트워크 파일 시스템(NFS)에서 활용된다.
    • XML-RPC
      • XML을 이용하여 구현한 RPC.
      • HTTP를 통해 호출되며, 다양한 언어와 플랫폼에서 사용될 수 있다.
    • JSON-RPC
      • JSON을 이용하여 구현한 RPC
      • HTTP나 TCP를 통해 호출되며, 다양한 언어와 플랫폼에서 사용될 수 있다.
    • gRPC
      • Google에서 개발한 RPC다.
      • Protocol Buffers를 사용하여 구현하며, 대용량 및 분산 시스템에서의 통신에 사용된다.
      • Window 환경에서도 사용이 가능하다.

    '소프트웨어 > 개념' 카테고리의 다른 글

    .NET Wrapper란?  (0) 2023.07.11
    .d파일이란?  (0) 2023.07.11
    AES(Advanced Encryption Standard, 고급 암호화 표준) 요약  (0) 2023.04.16