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 |