๊ธ ์์ฑ์: ๋ฅํด๋ฒ .
์์ ๊ฐ์ด ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๊ตฌ์ฑ๋์ด์๊ณ child.proto์์ ์์ ์ ์์ ํด๋์ ์์นํ parent.proto๋ฅผ import ํ๊ณ ์ถ์ ๋๊ฐ ์๋ค.
๋ฌธ์ ๋๋ ๊ฒฝ์ฐ
parent.proto
| syntax = "proto3"; |
| |
| package parent; |
| |
| message Attribute { |
| |
| } |
child.proto
| syntax = "proto3"; |
| |
| package child; |
| |
| import "../parent.proto"; |
| |
| message Child { |
| parent.Attribute attribute = 1; |
| } |
| (ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ ์์น๊ฐ parent.proto๊ฐ ์๋ ํด๋๋ผ ๊ฐ์ ํ ๋) |
| protoc -I=.\ .\parent.proto |
| protoc -I=.\sub .\sub\child.proto |
์์์ ์ผ๋ก import๋ฅผ ํ ๋ ์๋ ๊ฒฝ๋ก๋ฅผ ์จ์ฃผ๋ฏ์ด "../parent.proto"๋ฅผ ์จ์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง ํ๋กํ ์ฝ ๋ฒํผ์์๋ ์ง์ํ์ง ์๋ ๋ฌธ๋ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ์, child.proto์์ parent.proto๊ฐ ์ด๋์ ์์นํด์๋์ง ๋ชจ๋ฅธ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
parent.proto
| syntax = "proto3"; |
| |
| package parent; |
| |
| message Attribute { |
| |
| } |
child.proto
| syntax = "proto3"; |
| |
| package child; |
| |
| import "parent.proto"; |
| |
| message Child { |
| parent.Attribute attribute = 1; |
| } |
| (ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ ์์น๊ฐ parent.proto๊ฐ ์๋ ํด๋๋ผ ๊ฐ์ ํ ๋) |
| protoc -I=.\ .\parent.proto |
| protoc -I=.\sub -I=.\ .\sub\child.proto |
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. child.proto์์ import๋ ๊ฒฝ๋ก์ ์๊ด์์ด ํ์ผ ์ด๋ฆ๋ง ์จ์ฃผ๊ณ ํ๋กํ ํ์ผ์ ์ ๋๋ ์ดํธ ํ๋ ๋ช
๋ น์ด์์ -I ์ต์
์ ์ฌ๋ฌ ๋ฒ ์ฃผ๋ฉด ๋๋ค. ๋จ, ์์์ ์ฃผ์ํ ํ์๊ฐ ์๋ค.
-I=์์ ์ ํด๋(child.proto) |
-I=import์ํฌ ํ์ผ์ด ์๋ ํด๋(parent.proto) |
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.