MsgPack 정리

  • View
    1.944

  • Download
    1

  • Category

    Software

Preview:

Citation preview

MsgPack

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

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

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

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

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

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

이게 시리얼라이즈 !

그러면 MsgPack 이 뭘까

( 미원봉지 아님ㅎ )

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

오픈소스 .

그러면 MsgPack 이 뭘까

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

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

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

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

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

해보자

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

해보자

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

해보자

출력

해보자

출력

해보자

출력

그런데

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

해보자 2

해보자 2

해보자 2

해보자 2

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

해보자 2

해보자 2

해보자 3

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

해보자 3

쨔쟌

해보자 3

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

해보자 3

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

해보자 3

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

해보자 3

요러케

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