Define Schema
์คํค๋ง ์ ์ํ๊ธฐ
WRP๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํด๋ผ์ด์ธํธ๋ค์ด ์ ๋ฌํ ๋ฉ์ธ์ง์ ์ฌ์ฉํ ์๋น์ค๊ฐ ์ ์๋์ด ์๋ Protocol Buffers ์คํค๋ง ํ์ผ์ด ํ์ํฉ๋๋ค. ์์ ์์ ์ฌ์ฉํ ๊ฐ๋จํ ์คํค๋ง๋ฅผ ์ค๋นํ์ต๋๋ค.
proto/Example.proto
๊ฐ์ ๊ณณ์ ์ ์ฅํด์ฃผ์ธ์.
syntax = "proto3";
package pbkit.wrp.example;
service WrpExampleService {
rpc GetTextValue(GetTextValueRequest) returns (GetTextValueResponse);
}
message GetTextValueRequest {}
message GetTextValueResponse {
string text = 1;
}
์คํค๋ง์๋ 2๊ฐ์ ๋ฉ์ธ์ง์ 1๊ฐ์ rpc๊ฐ ๊ตฌํ๋์ด ์๋ ์๋น์ค(WrpExampleService)๊ฐ ์ ์ธ๋์ด ์์ต๋๋ค.
- GetTextValue: ์๋ฒ(ํธ์คํธ)๋ก๋ถํฐ ํ๋์ text ๊ฐ์ ๋ฐ๋ rpc์ ๋๋ค.
์ด์ ๋ถํฐ ๋ง๋ค ์์ ๋ WrpExampleService์ GetTextValue๋ฅผ ํธ์ถํด ๊ฐ์ ๋ฐ์์ค๋ ํด๋ผ์ด์ธํธ(๊ฒ์คํธ)์ ๊ฒ์คํธ์ ์์ฒญ์ ๋ฐ๋ผ ๊ฐ์ ์ ๋ฌํด์ฃผ๋ ์๋ฒ(ํธ์คํธ)๋ฅผ ๊ตฌํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฝ๋ ์์ฑํ๊ธฐ
์ผ๋จ, ์ ์ํ ์คํค๋ง๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ค๋๋ค.
์๋์ pb gen ts
์ปค๋งจ๋๋ Protocol Buffers ํ์ผ์ ์ฝ์ด TypeScript ์ฝ๋๋ฅผ ์์ฑํด์ค๋๋ค.
pb gen ts --entry-path=proto --ext-in-import="" --out-dir=generated
entry-path
๋ ์คํค๋ง๋ฅผ ์ ์ฅํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ก ์ง์ ํด์ฃผ์ธ์.out-dir
๋ ์์ฑ๋ ์ฝ๋๊ฐ ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ก ์ง์ ํด์ฃผ์ธ์. ์์ ์์๋ generated
๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
generated
์ messages, runtime, services ํด๋๊ฐ ์๊ฒผ๋ค๋ฉด ์ฑ๊ณต์
๋๋ค.
๋ค์์ผ๋ก๋ ์์ฑ๋ ์ฝ๋๋ฅผ ์ด์ฉํด ํด๋ผ์ด์ธํธ(๊ฒ์คํธ)๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.