RPC (Remote Procedure Call)
ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)์ ์ํ ํ๋กํ ์ฝ
๋ก์ปฌ ํ๊ฒฝ์์ ํจ์ ํธ์ถ์ ํ๋ฏ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ค๋ฅธ ์ปดํจํฐ๋ ์๋ฒ์ Procedure(ํจ์)๋ฅผ ํธ์ถํ๋ ๊ฐ๋
- ํต์ฌ ๊ฐ๋ : ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ํจ์๋ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ค.
- ์๋ ๋ฐฉ์:
- ํด๋ผ์ด์ธํธ๋ ํธ์ถํ๋ ค๋ ํจ์์ ์ธํฐํ์ด์ค๋ฅผ ์์ง๋ง, ํจ์๊ฐ ์ค์ ๋ก ์คํ๋๋ ์๋ฒ์ ์์น๋ ์ถ์ํ๋์ด ์๋ค.
- ์์ฒญ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ฌ๋๊ณ , ๊ฒฐ๊ณผ๋ ๋ฐํ๋๋ค.
- ๊ตฌํ ๋ฐฉ์:
- XML-RPC
- JSON-RPC
- SOAP ๋ฑ …
- ์ฅ์ :
- ๋ก์ปฌ ํธ์ถ์ฒ๋ผ ๋ณด์ด๋๋ก ์ถ์ํํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋จ์ :
- ๋คํธ์ํฌ ์ฑ๋ฅ์ ์์กด
- ๋ฐ์ดํฐ ์ง๋ ฌํ/์ญ์ง๋ ฌํ์ ์ถ๊ฐ ๋น์ฉ ๋ฐ์
- ์ํธ ์ด์ฉ์ฑ ์ ํ(๋ค๋ฅธ ์ธ์ด๋ ์์คํ ๊ฐ ์ฐ๊ฒฐ์ด ๋ณต์กํ ์ ์๋ค)
gRPC
RPC์ ํ๋์ ์ธ ๊ตฌํ์ผ๋ก, Google์์ ๋ง๋ ์คํ ์์ค ํ๋ ์์ํฌ
HTTP/2๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ Protocol Buffers(Protobuf)๋ผ๋ ์ง๋ ฌํ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
- ํต์ฌ ๊ฐ๋ : ํ๋์ ์ธ ๊ณ ์ฑ๋ฅ RPC ํ๋ ์์ํฌ, ํจ์จ์ ์ธ ์ง๋ ฌํ์ ๋ค์ค ์ธ์ด์ ์ง์ํ๋ค.
- ์๋ ๋ฐฉ์:
- Protobuf๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ์ ์๋ฅผ ์์ฑ
- gRPC ํ๋ ์์ํฌ๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฝ๋๋ฅผ ์๋ ์์ฑ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉฐ HTTP/2๋ฅผ ํตํด ๋ฐ์ดํฐ ๊ตํ
- ํน์ง:
- HTTP/2 ๊ธฐ๋ฐ: ๋ค์คํ, ํค๋ ์์ถ, ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ ์ก ์ง์
- Protobuf: ๋ฐ์ดํฐ ์ง๋ ฌํ๋ฅผ ์ต์ ํํ์ฌ ๋์ ์ฑ๋ฅ ์ ๊ณต
- ๋ค์ํ ํธ์ถ ๋ฐฉ์:
- Unary (์ผ๋ฐ์ ์ธ ์์ฒญ-์๋ต)
- Server Streaming (์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์คํธ๋ฆผ)
- Client Streaming (ํด๋ผ๋ฆฌ์ธํธ์์ ์๋ฒ๋ก ์คํธ๋ฆผ)
- Bidirectional Streaming (์๋ฐฉํฅ ์คํธ๋ฆผ)
- ์ฅ์ :
- ๋์ ์ฑ๋ฅ, ํจ์จ์ ์ธ ์ง๋ ฌํ ๋ฐ ๋คํธ์ํฌ ์ฌ์ฉ
- ๋ค์ํ ์ธ์ด ์ง์
- ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก
- ์คํ ์์ค ์ํ๊ณ์ ํ๋ถํ ๋๊ตฌ ์ ๊ณต
- ๋จ์ :
- ์ด๊ธฐ ํ์ต ๊ณก์ ์ด ์๋ค
- Protobuf ์์กด์ฑ์ผ๋ก ์ธํด JSON๋ณด๋ค ์ธ๊ฐ์ด ์ฝ๊ธฐ ์ด๋ ค์ด ํฌ๋งท ์ฌ์ฉ
์ ๋ฆฌ
- RPC:
- ๊ฐ๋จํ ์์คํ ๊ฐ ํธ์ถ์ด ํ์ํ ๊ฒฝ์ฐ
- ์ด๊ธฐ ์ค์ ์ด ๊ฐ๋จํ ๊ฒ์ด ์ค์ํ ๊ฒฝ์ฐ
- gRPC:
- ๊ณ ์ฑ๋ฅ, ์ค์๊ฐ ํต์
- ๋ค์ค ์ธ์ด ํ๊ฒฝ์์์ ํตํฉ์ด ์ค์ํ ๊ฒฝ์ฐ
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ(ex: ๋น๋์ค, ๋ก๊ทธ, ์ค์๊ฐ ์ผ์ ๋ฐ์ดํฐ) ์๊ตฌ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ
'๐ฉ๐ปโ๐ป > network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Celery] ์ ์ ํ concurrency ๊ฐ ์ค์ ํ๊ธฐ (0) | 2025.02.19 |
---|---|
[Proxy] ๋ฆฌ๋ฒ์ค ํ๋ก์ Reverse Proxy ์ ๋ฆฌ (0) | 2025.01.24 |
ํน์ port์ ์๋น์ค์๋ง HTTPS 443 SSL ์ ์ฉํ๊ธฐ (0) | 2025.01.22 |
์ธํฐ๋ท ์๋ 2๊ฐ์ PC ํต์ ํ๋ ๋ฐฉ๋ฒ (1) | 2024.11.28 |
[gRPC] gRPC๊ณผ websocket ๋น๊ต ์ ๋ฆฌ (1) | 2024.11.25 |