Server

[Server] gRPC๋ž€?

๊ฐœ๋ฐœ๊ฐœ๊ตด๐Ÿธ 2023. 1. 7. 18:57

gRPC(Google Remote Procedure Call)๋ž€?

gRPC๋Š” Google์—์„œ ๋งŒ๋“  RPC๋กœ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— "A high performance, open source universal RPC framework"๋ผ๊ณ  ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง์—ญํ•˜์ž๋ฉด "๊ณ ์„ฑ๋Šฅ ์˜คํ”ˆ ์†Œ์Šค ๋ฒ”์šฉ RPC ํ”„๋ ˆ์ž„์›Œํฌ"์ž…๋‹ˆ๋‹ค.

 

์šฐ์„  gRPC๋“ฑ์žฅ ์ด์ „์˜ RPC์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

RPC(Remote Procedure Call)๋ž€?

์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ(RPC)๋Š” ๋ณ„๋„์˜ ์›๊ฒฉ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์ฝ”๋”ฉ ์—†์ด ๋‹ค๋ฅธ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ํ•จ์ˆ˜๋‚˜ ํ”„๋กœ์‹œ์ €๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, RPC๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋””์„œ๋“  ์›ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

RPC๋Š” *IPC ๊ธฐ๋ฒ• ์ค‘ 1๊ฐœ๋กœ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„๋Š” ์ผ๋ฐ˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์›๊ฒฉ์˜ ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ฐœ๋ฐœ๋  ์ˆ˜ ์žˆ๋Š” *MSA ๊ตฌ์กฐ์˜ ์„œ๋น„์Šค์ฒ˜๋Ÿผ Polyglotํ•œ ๊ตฌ์กฐ์—์„œ๋Š” ํ”„๋กœํ† ์ฝœ์— ๋งž์ถฐ์„œ ํ†ต์‹ ํ•˜๋ ค๋ฉด ๋ณต์žกํ•˜๊ณ  ๋น„์šฉ์ด ๋“ค์ง€๋งŒ, RPC๋ฅผ ํ†ตํ•ด ์–ธ์–ด์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ , ์›๊ฒฉ์— ์žˆ๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Polyglotํ•œ ๊ตฌ์กฐ

 

*IPC(Inter Process Communication) ๊ธฐ๋ฒ•: ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์„ ํ†ต์นญํ•œ ๊ฒƒ ex)์†Œ์ผ“, RPC, REST ๋“ฑ

*MSA(Micro Service Architecture) : ์„œ๋น„์Šค๊ฐ„์˜ ์˜์กด์„ฑ์„ ์—†์• ๊ณ  ๊ธฐ๋Šฅ์„ ์ชผ๊ฐœ๋Š” ๊ฒƒ์„ ์ค‘์ ์ ์œผ๋กœ ์„ค๊ณ„ํ•œ ์•„ํ‚คํ…์ฒ˜


gRPC์˜ ํŠน์ง•๊ณผ ๊ตฌ์กฐ

๊ธฐ์กด์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋˜ REST ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ์—๋Š”, ํ‘œ์ค€์ด ์—†์–ด ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์‘๋‹ต์ด ๋ช…์‹œ์ ์ด์ง€ ์•Š์•˜์„ ๋ฟ ์•„๋‹ˆ๋ผ JSONํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ Serializationํ•˜๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ REST์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ์œผ๋กœ google์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค RPC ํ”„๋ ˆ์ž„์›Œํฌ์ธ gRPC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

gRPC์˜ ํŠน์ง•

  • *protocol buffer์™€ RPC๋ฅผ ์‚ฌ์šฉ
  • ์ตœ์‹  ๋ฒ„์ „์˜ *IDL๋กœ proto3๋ฅผ ์‚ฌ์šฉ
  • SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์— ๊ตํ™˜๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”
  • HTTP 2.0์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ API๋ฅผ ์ง€์›

์ด๋Ÿฌํ•œ ํŠน์ง•๋“ค๋กœ ์ธํ•ด gRPC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Proto File๋งŒ ๋ฐฐํฌํ•˜์—ฌ ํ™˜๊ฒฝ๊ณผ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์„œ๋กœ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

 

*IDL: ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ทœ์น™ (ex. XML, JSON, Protocol Buffer)

*protocol buffer: ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜์—ฌ XML์„ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋œ IDL

 

gPRC์˜ ๊ตฌ์กฐ

gRPC์—์„œ ํด๋ผ์ด์–ธํŠธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„œ๋ฒ„์—์„œ ํ•จ์ˆ˜๋ฅผ ๋ฐ”๋กœ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ์–ด ๋ถ„์‚ฐ MSA๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋ฒ„ ์ธก์—์„œ๋Š” ์„œ๋ฒ„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  gRPC ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ํ˜ธ์ถœ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


[์ฐธ๊ณ ]

https://medium.com/naver-cloud-platform/nbp-%EA%B8%B0%EC%88%A0-%EA%B2%BD%ED%97%98-%EC%8B%9C%EB%8C%80%EC%9D%98-%ED%9D%90%EB%A6%84-grpc-%EA%B9%8A%EA%B2%8C-%ED%8C%8C%EA%B3%A0%EB%93%A4%EA%B8%B0-1-39e97cb3460

 

[NBP ๊ธฐ์ˆ &๊ฒฝํ—˜] ์‹œ๋Œ€์˜ ํ๋ฆ„, gRPC ๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“ค๊ธฐ #1

์•ˆ๋…•ํ•˜์„ธ์š”, ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

medium.com

 

https://chacha95.github.io/2020-06-15-gRPC1/

 

gRPC 1 - gRPC๋ž€?

๋ฐฐ๊ฒฝ์ง€์‹ gRPC๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ RPC(Remote Procedure Call) ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ „์†ก์„ ์œ„ํ•ด TCP/IP ํ”„๋กœํ† ์ฝœ๊ณผ HTTP 2.0 ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ณ  IDL(Interface Definition language)๋กœ protocol buffer๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. gRPC์— ๋Œ€

chacha95.github.io

https://velog.io/@jakeseo_me/RPC%EB%9E%80

 

RPC๋ž€?

๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค๊ฐ€...Client to Server ํŒจํ„ดServer๋ฅผ ์ผฌClient๋Š” Server์— ๋ฐ์ดํ„ฐ ํ˜น์€ ํ–‰๋™์„ ์š”์ฒญServer๋Š” ์š”์ฒญ ๋ฐ›์€ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜Clie

velog.io

https://ssungkang.tistory.com/entry/WEB-google%EC%9D%B4-%EB%A7%8C%EB%93%A0-RPC-gRPC%EB%9E%80

 

[WEB] google์ด ๋งŒ๋“  RPC, gRPC๋ž€

gRPC๋ž€ gRPC๋Š” ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ ์–ด๋””์„œ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ณ ์„ฑ๋Šฅ RPC ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. RPC๋Š” Remote Procedure Call์˜ ์ค„์ž„๋ง๋กœ ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณ„๋„์˜ ์›๊ฒฉ์ œ์–ด๋ฅผ ์œ„

ssungkang.tistory.com