나만의 작은 도서관
[TIL] 240717 캠프 94일차: protoBuf에서의 상속 본문
오늘 배운 내용
protoBuf에서의 상속
우선 기본적으로 protoBuf에서는 상속을 지원하지 않는다. 하지만 여러가지 방법을 통해 상속처럼 구현되도록 할 수 있다.
방법 1
message Animal {
string name = 1;
}
message Bird {
Animal animal = 1;
bool can_fly = 2;
}
message Dog {
Animal animal = 1;
string breed = 2;
}
Animal 메시지가 공통 필드인 name을 가지는 예제입니다. Bird, Dog 메시지가 Animal 메시지를 포함(Composition)하면서, 두 가지를 합친 새로운 메시지가 됩니다. 그래서 Bird와 Dog메시지도 name이라는 필드를 가지게 됩니다.
방법 2
message Animal {
string name = 1;
oneof animal_type {
Bird bird = 2;
Dog dog = 3;
}
}
message Bird {
bool can_fly = 1;
}
message Dog {
string breed = 1;
}
Protobuf의 oneof 기능을 사용한 예제입니다. oneof를 사용하면, 메세지는 oneof 영역 안에 있는 객체 중 하나를 가져야 합니다. oneof 내의 여러 가지 필드를 setting하게 되면 마지막에 설정한 필드만 남습니다. 여기서는 Animal 메세지가 Bird나 Dog 메세지 중 하나를 갖게 됩니다.
참고 링크
오늘 한 일
'Today I Learn' 카테고리의 다른 글
[TIL] 240719 캠프 96일차: 유니티 2D 플랫포머 게임 제작 준비 (0) | 2024.07.19 |
---|---|
[TIL] 240718 캠프 95일차: Insomnia없이 JS에서 http Method를 요청 (0) | 2024.07.19 |
[TIL] 240716 캠프 93일차: protoBuf oneof (0) | 2024.07.17 |
[TIL] 240715 캠프 92일차: Socket.io: socket.id, socket.handshake (0) | 2024.07.15 |
[TIL] 240712 캠프 89일차: 웹소켓에서 서버 주도 방식에서의 통신 (0) | 2024.07.12 |