New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. ๊ธ์ ์ ์น๊ตฌ์๊ฒ ๋น๋ ธ๋๋ฐ ์ค๋์ด ๋์ ์ฃผ๊ธฐ๋ก ํ๋ .. ๊ทธ๋ฐ๋ฐ ์นด๋๊ฐ์ ๋ด์ผํ๋ ๋ ๋ ์ค๋์ธ๋ฐ... ์ด๊ฑธ ์ด์ฉ๋...
4. ์ฐ๋ฆฌ ํ์ฌ๋ ์ค์ํ ์์ฌ ๊ฒฐ์ ์ ํ ๋?
5. ์ด์ฌํ ์ผํ ๋๋ฅผ ์ํ ์ ๋ฌผ์ ์ฃผ๊ณ ์ถ๋ค. ์ด๋ค๊ฒ ์ข์๊น?
6. ์ํ์์ ํฌ์์ํ์ ์ถ์ฒ๋ฐ์๋ค. ์ด๋ค๊ฑธ ๊ฐ์ ํ์ง?
7. ํ์ฌ์์์ ๋๋?
8. ๊ฟ์์ ๊นจ์ด๋๋ 20๋ ์ ์ผ๋ก ๋์๊ฐ๋ค. ๋น์ ์ด ์ ์ผ ๋จผ์ ํ๋์ผ์?
9. ๋ด๊ฐ ์ธ์ฌ ๋ด๋น์๋ผ๋ฉด ์ ๊ท ์ ์ฌ์ ์ฑ์ฉ ์ ์ ์ผ ์ค์ํ๊ฒ ๋ณด๋๊ฒ์?
10. ํ์ฌ์ ์ ๋ง ์ซ์ดํ๋ ๋๋ฃ๊ฐ ์๋ค๋ฉด?
11. ๊ฐ๋ํ ์ง์ ๊ฐ์ฅ์ด ๋์๋ค.. ์๋ ์ ์์ผ ๋ ์ ๋ฌผ์?
12. ํ์ ํ์ฌ ์ถ๊ทผ ์คํ์ผ์?
13.ํ์ฌ ์ฒด์ก๋ํ ํ๋ ๋ ์ด๋ค. ์ค๋ ๋ญํ์ง?
14. ๋์ ์ ๋ฌด ์คํ์ผ์?
gRPC์ ์ต์ํ์ง ์์ผ์ ๊ฐ์? ๋จผ์ gRPC ์๊ฐ๋ฅผ ์ฝ์ด ๋ณด์ญ์์ค. ์ธ์ด๋ณ ์ธ๋ถ ์ ๋ณด๋ ์ ํํ ์ธ์ด์ ๋ํ ๋น ๋ฅธ ์์, ์์ต์ ๋ฐ ์ฐธ์กฐ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Overview
Service definition
๋ง์ RPC ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก gRPC๋ ๋งค๊ฐ ๋ณ์ ๋ฐ ๋ฐํ ํ์์ ์ฌ์ฉํ์ฌ ์๊ฒฉ์ผ๋ก ํธ์ถํ ์ ์๋ ๋ฉ์๋๋ฅผ ์ง์ ํ์ฌ ์๋น์ค๋ฅผ ์ ์ํ๋ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก gRPC๋ ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์๋น์ค ์ธํฐํ์ด์ค์ ํ์ด๋ก๋ ๋ฉ์์ง์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ ์ค๋ช ํ๊ธฐ ์ํ IDL(์ธํฐํ์ด์ค ์ ์ ์ธ์ด)๋ก ์ฌ์ฉํฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
service HelloService {
rpc SayHello (HelloRequest) returns (HelloResponse);
}
message HelloRequest {
string greeting = 1;
}
message HelloResponse {
string reply = 1;
}
gRPC๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค ๊ฐ์ง ์ข ๋ฅ์ ์๋น์ค ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋จ์ผ ์์ฒญ์ ๋ณด๋ด๊ณ ์ผ๋ฐ ํจ์ ํธ์ถ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ์ผ ์๋ต์ ๋ค์ ๋ฐ๋ ๋จํญ RPC์ ๋๋ค.
rpc SayHello(HelloRequest) returns (HelloResponse);
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ๋ฉ์์ง ์ํ์ค๋ฅผ ๋ค์ ์ฝ๊ธฐ ์ํด ์คํธ๋ฆผ์ ๊ฐ์ ธ์ค๋ ์๋ฒ ์คํธ๋ฆฌ๋ฐ RPC์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๋ ์ด์ ๋ฉ์์ง๊ฐ ์์ ๋๊น์ง ๋ฐํ๋ ์คํธ๋ฆผ์์ ์ฝ์ต๋๋ค. gRPC๋ ๊ฐ๋ณ RPC ํธ์ถ ๋ด์์ ๋ฉ์์ง ์์๋ฅผ ๋ณด์ฅํฉ๋๋ค.
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);
- ํด๋ผ์ด์ธํธ๊ฐ ์ผ๋ จ์ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ ์ ๊ณต๋ ์คํธ๋ฆผ์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ก ๋ณด๋ด๋ ํด๋ผ์ด์ธํธ ์คํธ๋ฆฌ๋ฐ RPC์ ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ฉ์์ง ์ฐ๊ธฐ๋ฅผ ๋ง์น๋ฉด ์๋ฒ๊ฐ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ์๋ต์ ๋ฐํํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ค์ gRPC๋ ๊ฐ๋ณ RPC ํธ์ถ ๋ด์์ ๋ฉ์์ง ์์๋ฅผ ๋ณด์ฅํฉ๋๋ค.
rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse);
- ์๋ฐฉํฅ ์คํธ๋ฆฌ๋ฐ RPC๋ ์์ชฝ์ด ์ฝ๊ธฐ-์ฐ๊ธฐ ์คํธ๋ฆผ์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ์ํ์ค๋ฅผ ๋ณด๋ ๋๋ค. ๋ ์คํธ๋ฆผ์ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฏ๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์ํ๋ ์์๋ก ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ฒ๋ ์๋ต์ ์์ฑํ๊ธฐ ์ ์ ๋ชจ๋ ํด๋ผ์ด์ธํธ ๋ฉ์์ง๋ฅผ ์์ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋, ๋ฉ์์ง๋ฅผ ์ฝ์ ๋ค์ ๋ฉ์์ง๋ฅผ ์ฐ๊ฑฐ๋, ์ฝ๊ธฐ์ ์ฐ๊ธฐ์ ๋ค๋ฅธ ์กฐํฉ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ ์คํธ๋ฆผ์ ๋ฉ์์ง ์์๋ ์ ์ง๋ฉ๋๋ค.
rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
์๋์ RPC ์๋ช ์ฃผ๊ธฐ ์น์ ์์ ๋ค์ํ ์ ํ์ RPC์ ๋ํด ์์ธํ ์์๋ด ๋๋ค.
Using the API
.proto ํ์ผ์ ์๋น์ค ์ ์์์ ์์ํ์ฌ gRPC๋ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ชฝ ์ฝ๋๋ฅผ ์์ฑํ๋ ํ๋กํ ์ฝ ๋ฒํผ ์ปดํ์ผ๋ฌ ํ๋ฌ๊ทธ ์ธ์ ์ ๊ณตํฉ๋๋ค. gRPC ์ฌ์ฉ์๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ชฝ์์ ์ด๋ฌํ API๋ฅผ ํธ์ถํ๊ณ ์๋ฒ ์ชฝ์์ ํด๋น API๋ฅผ ๊ตฌํํฉ๋๋ค.
- ์๋ฒ ์ชฝ์์ ์๋ฒ๋ ์๋น์ค์์ ์ ์ธํ ๋ฉ์๋๋ฅผ ๊ตฌํํ๊ณ gRPC ์๋ฒ๋ฅผ ์คํํ์ฌ ํด๋ผ์ด์ธํธ ํธ์ถ์ ์ฒ๋ฆฌํฉ๋๋ค. gRPC ์ธํ๋ผ๋ ๋ค์ด์ค๋ ์์ฒญ์ ๋์ฝ๋ฉํ๊ณ , ์๋น์ค ๋ฉ์๋๋ฅผ ์คํํ๊ณ , ์๋น์ค ์๋ต์ ์ธ์ฝ๋ฉํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์ธก์์ ํด๋ผ์ด์ธํธ์๋ ์๋น์ค์ ๋์ผํ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ stub(์ผ๋ถ ์ธ์ด์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ฉ์ด๋ ํด๋ผ์ด์ธํธ)์ด๋ผ๋ ๋ก์ปฌ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ๋ ๋ก์ปฌ ๊ฐ์ฒด์์ ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ผ๋ฉฐ ๋ฉ์๋๋ ํธ์ถ์ ๋ํ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ์ ํ ํ๋กํ ์ฝ ๋ฒํผ ๋ฉ์์ง ์ ํ์ผ๋ก ๋ํํ๊ณ ์์ฒญ์ ์๋ฒ๋ก ๋ณด๋ธ ๋ค์ ์๋ฒ์ ํ๋กํ ์ฝ ๋ฒํผ ์๋ต์ ๋ฐํํฉ๋๋ค.
Synchronous vs. asynchronous
์๋ฒ์์ ์๋ต์ด ๋์ฐฉํ ๋๊น์ง ์ฐจ๋จ๋๋ ๋๊ธฐ RPC ํธ์ถ์ RPC๊ฐ ์ํ๋ ํ๋ก์์ ํธ์ถ์ ์ถ์ํ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ทผ์ฌ์น์ ๋๋ค. ๋ฐ๋ฉด์ ๋คํธ์ํฌ๋ ๋ณธ์ง์ ์ผ๋ก ๋น๋๊ธฐ์์ด๋ฉฐ ๋ง์ ์๋๋ฆฌ์ค์์ ํ์ฌ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๊ณ RPC๋ฅผ ์์ํ ์ ์์ผ๋ฉด ์ ์ฉํฉ๋๋ค.
๋๋ถ๋ถ์ ์ธ์ด์์ gRPC ํ๋ก๊ทธ๋๋ฐ API๋ ๋๊ธฐ ๋ฐ ๋น๋๊ธฐ ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ๊ฐ ์ธ์ด์ ์์ต์ ๋ฐ ์ฐธ์กฐ ์ค๋ช ์์์ ์์ธํ ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค(์ ์ฒด ์ฐธ์กฐ ๋ฌธ์๋ ๊ณง ์ ๊ณต๋ ์์ ์ ๋๋ค).
RPC life cycle
์ด ์น์ ์์๋ gRPC ํด๋ผ์ด์ธํธ๊ฐ gRPC ์๋ฒ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋ฐ์ํ๋ ์ํฉ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ ์ฒด ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ ์ธ์ด๋ณ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Unary RPC
๋จผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋จ์ผ ์์ฒญ์ ๋ณด๋ด๊ณ ๋จ์ผ ์๋ต์ ๋ฐํํ๋ ๊ฐ์ฅ ๊ฐ๋จํ RPC ์ ํ์ ๊ณ ๋ คํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์คํ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์๋ฒ๋ RPC๊ฐ ์ด ํธ์ถ์ ๋ํ ํด๋ผ์ด์ธํธ์ ๋ฉํ๋ฐ์ดํฐ, ๋ฉ์๋ ์ด๋ฆ ๋ฐ ์ง์ ๋ ์ต์ข ๊ธฐํ(ํด๋นํ๋ ๊ฒฝ์ฐ)๊ณผ ํจ๊ป ํธ์ถ๋์์์ ์๋ฆฝ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์๋ฒ๋ ์์ฒด ์ด๊ธฐ ๋ฉํ ๋ฐ์ดํฐ (์๋ต ์ ์ ์ ์กํด์ผ ํจ)๋ฅผ ์ฆ์ ๋ค์ ๋ณด๋ด๊ฑฐ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฉ์์ง๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ๋จผ์ ๋ฐ์ํ๋ ๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฉ์์ง๊ฐ ์์ผ๋ฉด ์๋ต์ ๋ง๋ค๊ณ ์ฑ์ฐ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์์ ์ ์ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ต์ ์ํ ์ธ๋ถ ์ ๋ณด(์ํ ์ฝ๋ ๋ฐ ์ ํ์ ์ํ ๋ฉ์์ง) ๋ฐ ์ ํ์ ํํ ๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป ํด๋ผ์ด์ธํธ์ ๋ฐํ๋ฉ๋๋ค(์ฑ๊ณตํ ๊ฒฝ์ฐ).
- ์๋ต ์ํ๊ฐ OK์ด๋ฉด ํด๋ผ์ด์ธํธ๋ ์๋ต์ ๋ฐ์ ํด๋ผ์ด์ธํธ ์ธก์์ ํธ์ถ์ ์๋ฃํฉ๋๋ค.
Server streaming RPC
์๋ฒ ์คํธ๋ฆฌ๋ฐ RPC๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ๋ฉ์์ง ์คํธ๋ฆผ์ ๋ฐํํ๋ค๋ ์ ์ ์ ์ธํ๋ฉด ๋จํญ RPC์ ๋น์ทํฉ๋๋ค. ๋ชจ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ ํ ์๋ฒ์ ์ํ ์ธ๋ถ ์ ๋ณด(์ํ ์ฝ๋ ๋ฐ ์ ํ์ ์ํ ๋ฉ์์ง) ๋ฐ ์ ํ์ ํํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ ์ธก์์ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๋ชจ๋ ๋ฉ์์ง๊ฐ ์์ผ๋ฉด ์๋ฃ๋ฉ๋๋ค.
Client streaming RPC
ํด๋ผ์ด์ธํธ ์คํธ๋ฆฌ๋ฐ RPC๋ ํด๋ผ์ด์ธํธ๊ฐ ๋จ์ผ ๋ฉ์์ง ๋์ ์๋ฒ์ ๋ฉ์์ง ์คํธ๋ฆผ์ ๋ณด๋ธ๋ค๋ ์ ์ ์ ์ธํ๋ฉด ๋จํญ RPC์ ๋น์ทํฉ๋๋ค. ์๋ฒ๋ ๋จ์ผ ๋ฉ์์ง(์ํ ์ธ๋ถ ์ ๋ณด ๋ฐ ์ ํ์ ํํ ๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป)๋ก ์๋ตํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ ํ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
Bidirectional streaming RPC
์๋ฐฉํฅ ์คํธ๋ฆฌ๋ฐ RPC์์ ํธ์ถ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ํด๋ผ์ด์ธํธ์ ํด๋ผ์ด์ธํธ ๋ฉํ๋ฐ์ดํฐ, ๋ฉ์๋ ์ด๋ฆ ๋ฐ ์ต์ข ๊ธฐํ์ ์์ ํ๋ ์๋ฒ์ ์ํด ์์๋ฉ๋๋ค. ์๋ฒ๋ ์ด๊ธฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ณด๋ด๊ฑฐ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฉ์์ง ์คํธ๋ฆฌ๋ฐ์ ์์ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ชฝ ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋ ์คํธ๋ฆผ์ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์์์ ๊ด๊ณ์์ด ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ฒ๋ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆด ์ ์์ผ๋ฉฐ, ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ "ํํ"์ ํ ์ ์์ต๋๋ค – ์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ์ ๋ค์ ์๋ต์ ๋ค์ ๋ณด๋ธ ๋ค์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก ๋ค๋ฅธ ์์ฒญ์ ๋ณด๋ด๋ ์์ ๋๋ค.
Deadlines/Timeouts
gRPC๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ RPC๊ฐ DEADLINE_EXCEEDED ์ค๋ฅ๋ก ์ข ๋ฃ๋๊ธฐ ์ ์ RPC๊ฐ ์๋ฃ๋ ๋๊น์ง ๋๊ธฐํ ์๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฒ ์ชฝ์์ ์๋ฒ๋ ํน์ RPC๊ฐ ์๊ฐ ์ด๊ณผ๋์๋์ง ๋๋ RPC๋ฅผ ์๋ฃํ๋ ๋ฐ ๋จ์ ์๊ฐ์ ํ์ธํ๊ธฐ ์ํด ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์ต์ข ๊ธฐํ ๋๋ ์๊ฐ ์ ํ์ ์ง์ ํ๋ ๊ฒ์ ์ธ์ด๋ณ๋ก ๋ค๋ฅด๋ฉฐ, ์ผ๋ถ ์ธ์ด API๋ ์๊ฐ ์ ํ(๊ธฐ๊ฐ)์ ๊ธฐ์ค์ผ๋ก ์๋ํ๊ณ ์ผ๋ถ ์ธ์ด API๋ ์ต์ข ๊ธฐํ(๊ณ ์ ์์ )์ ๊ธฐ์ค์ผ๋ก ์๋ํ๋ฉฐ ๊ธฐ๋ณธ ์ต์ข ๊ธฐํ์ด ์์ ์๋ ์๊ณ ์์ ์๋ ์์ต๋๋ค.
RPC termination
gRPC์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋ ํธ์ถ ์ฑ๊ณต์ ๋ํ ๋ ๋ฆฝ์ ์ธ ๋ก์ปฌ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ฉฐ ๊ฒฐ๋ก ์ด ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค. ์ฆ, ์๋ฅผ ๋ค์ด ์๋ฒ ์ธก์์๋ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์ง๋ง("๋ชจ๋ ์๋ต์ ๋ณด๋์ต๋๋ค!") ํด๋ผ์ด์ธํธ ์ธก์์๋ ์คํจํ๋ RPC๊ฐ ์์ ์ ์์ต๋๋ค("์๋ต์ด ๋ง๊ฐ์ผ ์ดํ์ ๋์ฐฉํ์ต๋๋ค!"). ํด๋ผ์ด์ธํธ๊ฐ ๋ชจ๋ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ์ ์๋ฒ๊ฐ ์๋ฃํ๊ธฐ๋ก ๊ฒฐ์ ํ ์๋ ์์ต๋๋ค.
Cancelling an RPC
ํด๋ผ์ด์ธํธ ๋๋ ์๋ฒ๋ ์ธ์ ๋ ์ง RPC๋ฅผ ์ทจ์ํ ์ ์์ต๋๋ค. ์ทจ์ํ๋ฉด RPC๊ฐ ์ฆ์ ์ข ๋ฃ๋๋ฏ๋ก ์ถ๊ฐ ์์ ์ด ์ํ๋์ง ์์ต๋๋ค.
Warning
์ทจ์ ์ ์ ๋ณ๊ฒฝํ ๋ด์ฉ์ ๋กค๋ฐฑ๋์ง ์์ต๋๋ค.Metadata
๋ฉํ๋ฐ์ดํฐ๋ ํค-๊ฐ ์ ๋ชฉ๋ก ํ์์ ํน์ RPC ํธ์ถ(์: ์ธ์ฆ ์ธ๋ถ ์ ๋ณด)์ ๋ํ ์ ๋ณด๋ก, ํค๋ ๋ฌธ์์ด์ด๊ณ ๊ฐ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด์ด์ง๋ง ์ด์ง ๋ฐ์ดํฐ์ผ ์ ์์ต๋๋ค.
ํค๋ ๋/์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฉฐ ASCII ๋ฌธ์, ์ซ์ ๋ฐ ํน์ ๋ฌธ์ -, _, ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. grpc-(gRPC ์์ฒด์ฉ์ผ๋ก ์์ฝ๋จ)๋ก ์์ํด์๋ ์ ๋ฉ๋๋ค. ์ด์ง ๊ฐ ํค๋ -bin์ผ๋ก ๋๋์ง๋ง ASCII ๊ฐ ํค๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์ฌ์ฉ์ ์ ์ ๋ฉํ๋ฐ์ดํฐ๋ gRPC์์ ์ฌ์ฉ๋์ง ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๊ณตํ ์ ์์ผ๋ฉฐ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๋ฉํ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ ์ธ์ด์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
Channels
gRPC ์ฑ๋์ ์ง์ ๋ ํธ์คํธ ๋ฐ ํฌํธ์ gRPC ์๋ฒ์ ๋ํ ์ฐ๊ฒฐ์ ์ ๊ณตํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์คํ ์ ๋ง๋ค ๋ ์ฌ์ฉ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฑ๋ ์ธ์๋ฅผ ์ง์ ํ์ฌ gRPC์ ๊ธฐ๋ณธ ๋์(์: ๋ฉ์์ง ์์ถ ์ผ๊ธฐ ๋๋ ๋๊ธฐ)์ ์์ ํ ์ ์์ต๋๋ค. ์ฑ๋์๋ ์ฐ๊ฒฐ๋จ ๋ฐ ์ ํด ์ํ๋ฅผ ํฌํจํ ์ํ๊ฐ ์์ต๋๋ค.
gRPC๊ฐ ์ฑ๋ ๋ซ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ธ์ด์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ผ๋ถ ์ธ์ด์์๋ ์ฑ๋ ์ํ ์ฟผ๋ฆฌ๋ ํ์ฉํฉ๋๋ค.