Top Banner
MsgPack 넥넥넥 넥넥넥넥넥 넥넥넥넥 넥넥넥
30

MsgPack 정리

Jan 06, 2017

Download

Software

Seokmin No
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MsgPack 정리

MsgPack

넥스트 인스티튜트 게임전공 노석민

Page 2: MsgPack 정리

데이터 시리얼라이즈가 뭘까

Page 3: MsgPack 정리

데이터 시리얼라이즈A 라는 변수가 123 이고B 라는 변수가 4243 인 객체가 있다 .이걸 전송하고 싶다 .어떻게 할까 ?

Page 4: MsgPack 정리

데이터 시리얼라이즈전송하면 전송받은 상대도그걸 받아보면 A 가 123 이고 B 가 4243 인 객체구나 라는걸 알 수 있는 형태여야 좋겠다 .

Page 5: MsgPack 정리

데이터 시리얼라이즈바이트스트림으로 예를 들면첫 4 바이트는 변수명 길이 그 이후 첫 4바이트에서 제시한 길이만큼은 변수명그후 4 바이트는 내용길이그후 내용길이에서 지시한 길이만큼은 변수값이런 식으로 커스텀 포맷의 스트림 데이터를 만들어서 전송하는 방법이 있을것이다 .

Page 6: MsgPack 정리

데이터 시리얼라이즈하지만 가장 대중적으로 쓰는건{“A”:123, “B”:4243}Json 으로 만들어서 보낸다 .

이게 시리얼라이즈 !

Page 7: MsgPack 정리

그러면 MsgPack 이 뭘까

( 미원봉지 아님ㅎ )

Page 8: MsgPack 정리

그러면 MsgPack 이 뭘까그냥 여러 가지 데이터 시리얼라이즈 라이브러리중의 하나 .

오픈소스 .

Page 9: MsgPack 정리

그러면 MsgPack 이 뭘까

Json 보다 콤팩트하다고 한다 .Json 보다 빠르다고 한다 .

Page 10: MsgPack 정리

어떻게 쓸까http://msgpack.org/

C++ 버전은 다운로드해서 헤더만 include하면 된다 .C 버전은 빌드해야 함 .

Page 11: MsgPack 정리

어떻게 쓸까http://msgpack.org/

C++ 버전은 다운로드해서 헤더만 include하면 된다 .C 버전은 빌드해야 함 .

Page 12: MsgPack 정리

해보자

시리얼라이즈 할 데이터를 만든다 .

Page 13: MsgPack 정리

해보자

팩 ( 시리얼라이즈 ) 하고 , 언팩한다 .언팩시 언팩된 데이터에 대한 핸들을 얻을 수 있다 .

Page 14: MsgPack 정리

해보자

출력

Page 15: MsgPack 정리

해보자

출력

Page 16: MsgPack 정리

해보자

출력

Page 17: MsgPack 정리

그런데

이걸로 모자라다 .어디에 쓰라는거야 .

Page 18: MsgPack 정리

해보자 2

Page 19: MsgPack 정리

해보자 2

Page 20: MsgPack 정리

해보자 2

Page 21: MsgPack 정리

해보자 2

이번에는 Array 나 Map(Dictionary) 형태로 패킹해볼 것이다 .

Page 22: MsgPack 정리

해보자 2

Page 23: MsgPack 정리

해보자 2

Page 24: MsgPack 정리

해보자 3

하지만 User-defined Class 가 등장하면 어떨까 ?

Page 25: MsgPack 정리

해보자 3

쨔쟌

Page 26: MsgPack 정리

해보자 3

unitList 를 이렇게 패킹할 수도 있고

Page 27: MsgPack 정리

해보자 3

요로코롬 객체에서 바로 할 수도 있다 .

Page 28: MsgPack 정리

해보자 3

언팩을 해보면 결과가 제대로 나올 것이다 .

Page 29: MsgPack 정리

해보자 3

요러케

Page 30: MsgPack 정리

끝네트워크 프로그램 만들 때 쓸 것 같다 .내가 마치 객체 단위 패킷을 주고 받는것처럼 느껴지기에 매우 편리할 듯 .지금 만드는 게임에 네트워크를 붙일 때 사용해 볼 계획