30
MsgPack 넥넥넥 넥넥넥넥넥 넥넥넥넥 넥넥넥

MsgPack 정리

Embed Size (px)

Citation preview

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 정리

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