Protocel Buffer
수행단계
1. Proto파일 작성
2. Proto Compiler를 통해 각 언어에 맞는 Data Handler Class 생성
3. 생성된 class의 set 함수를 통해 데이터 설정
4. writeTo()함수를 통해 Binary Data로 Serialize
5. serial data 전송
...
6. serial data 수신
7. parseFrom() 함수를 통해 Binary Data를 parsing
8. get 함수를 통해 원하는 데이터 값 조회
장점
사용이 간단하다
20~100배 빠르다
모호하지 않다
프로그램에서 사용가능한 클래스를 생성해준다.(C++/Java/Python 공식 지원)
최대 64MB크기의 message까지 지원한다.(성능보장을 위해)
JSON포맷 전환을 지원한다.
BSD License 정책으로 100% 무료이다
단점
repeat 사용 시 serialize/parse시 성능이 저하될 수 있다
데이터를 눈으로 확인할 수 없다 (Binary Data VS. Text Data)
표준 프로토콜이 아니다
단말기/세톱박스 등 RTOS에서의 지원이 어렵다
공식 지원 언어는 C++/Java/Python이다 (이외 언어는 3rd party에서 지원)
Map/Set를 지원하지 않는다.
Proto파일의 작성
Proto 파일은 구조체와 같이 해당되는 데이터 변수 및 타입을 명시합니다. 각 변수는 아래와 같은 한정자 조건을 갖습니다.
-requied: 1개만 존재 가능
-optional: 0개 혹은 1개 존재 가능
-repeated: 여러 개 존재 가능(0개 포함)
http://skccblog.tistory.com/1001
수행단계
1. Proto파일 작성
2. Proto Compiler를 통해 각 언어에 맞는 Data Handler Class 생성
3. 생성된 class의 set 함수를 통해 데이터 설정
4. writeTo()함수를 통해 Binary Data로 Serialize
5. serial data 전송
...
6. serial data 수신
7. parseFrom() 함수를 통해 Binary Data를 parsing
8. get 함수를 통해 원하는 데이터 값 조회
장점
사용이 간단하다
20~100배 빠르다
모호하지 않다
프로그램에서 사용가능한 클래스를 생성해준다.(C++/Java/Python 공식 지원)
최대 64MB크기의 message까지 지원한다.(성능보장을 위해)
JSON포맷 전환을 지원한다.
BSD License 정책으로 100% 무료이다
단점
repeat 사용 시 serialize/parse시 성능이 저하될 수 있다
데이터를 눈으로 확인할 수 없다 (Binary Data VS. Text Data)
표준 프로토콜이 아니다
단말기/세톱박스 등 RTOS에서의 지원이 어렵다
공식 지원 언어는 C++/Java/Python이다 (이외 언어는 3rd party에서 지원)
Map/Set를 지원하지 않는다.
Proto파일의 작성
Proto 파일은 구조체와 같이 해당되는 데이터 변수 및 타입을 명시합니다. 각 변수는 아래와 같은 한정자 조건을 갖습니다.
-requied: 1개만 존재 가능
-optional: 0개 혹은 1개 존재 가능
-repeated: 여러 개 존재 가능(0개 포함)
http://skccblog.tistory.com/1001
댓글 없음:
댓글 쓰기