클라이언트가 로그인을 하면 서버로부터 유저 정보를 얻어오고싶었습니다.
위의 스키마가 제 유저 정보 리스트입니다.
물론 서버가 클라한테 비밀번호까지 넘겨주진 않지만, flatbuffer 테스트한다고 생각하고 그냥 다 보내는거니
이 부분은 태클 안거셨으면 ㅎㅎ
갓글이 제공한 flatbuffer 라이브러리에서 스키마를 헤더파일로 만들어주는 프로그램을 생성한 후
위 스키마를 (그대로는 아니고 좀 수정하고, 궁금하면 flatbuffer사이트 읽어보고)돌리면 헤더파일이 나옵니다.
해당 헤더파일을 테스트 프로젝트에 include합니다
보내는 쪽 코드입니다. 코드 윗부분이 좀 짤렸지만 그려려니 합시다.
CreateUser, CreateUnit CreateParty 위 함수들은 아까 저 스키마만 넣었을 뿐인데 헤더에서 자동으로 만들어준 고마운 함수들입니다.
해당 함수로 unit을 만들고, 이를 flatbuffer전용 vector로 만들어서 user의 unit vector에 넣고, party역시 party vector를 만들어서 user정보에 넣습니다.
받는쪽 코드입니다.
보시다시피 user의 정보, user의 unit들에 대한 정보, party에 대한 정보가 보내기 전 생성한 결과와 일치하는 모습을 볼 수 있습니다.
그리고 해당 정보를 몽땅 보내는데의 패킷 사이즈는 260밖에 안하네여 혜자 아닙니까?
json보다 빠르고 편한 flatbuffer, 꼭 써보세여!
본문에 링크를 넣으면 광고로 짤릴까봐 구글 플랫버퍼 링크는 댓글로 :
https://google.github.io/flatbuffers/
깃허브 링크 :
https://github.com/google/flatbuffers
auto 남발 극혐
저거 자료형 직접 쓰려면 너무 길어짐; 그리고 구글에서 auto 권장함
auto를 왜 싫어하냐 무슨 변태임? 마조히스트?
아직 익숙하지 않아서 그런지.. .. 좀 낫서네요... 코딩량은 그리 적어보이진 않네요... helper template등이 더 많으면 좋을듯 ...