Development/Netty & FlatBuffers

    FlatBuffers 빌드 자동 구성

    Flatbuffer 빌드 자동화 https://github.com/davidmoten/flatbuffers 를 사용하자빌드할 때 자동으로 flatbuffer executable 파일을 생성해줌과 동시에 해당 executable을 실행시켜서 메세지를 클래스로 변환을 자동화profile에 따라 OS별 다른 executable을 실행하도록 구성OS는 크게 세가지(Unix, Linux, Windows)로 구분되며 각 실행시킬 수 있는 파일이 다르다.Unix(Mac)의 경우 unix의 CMake로 빌드를 해야 하며Linux의 경우는 Make로 빌드Windows는 release 되는 exe 로 빌드해야 함maven plugins를 이용해서 플랫버퍼 컴파일러를 컴파일지정한 path에 해당 executable 파일을 ..

    Netty 통신 서버 개발 관련 주저리

    Netty? Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. netty는 JAVA 진영의 Transport Layer에서 가장 유명한(?) 프레임워크이다. TCP 뿐만 아니라 HTTP, UDP 등 사실상 byte를 송/수신하는데에 두루두루 쓰이고 있는 상황이다. 수 많은 프레임워크들이 클러스터링 구성을 하거나 할 때 내부 통신(inner-communication)을 하는 프레임워크로 netty를 주로 사용하고 있다. 내부 구현은 JAVA NIO로 되어 있으며, 플랫폼에 따라 Epoll(..

    [Flatbuffers] 플랫버퍼란?

    두괄식으로, 플랫버퍼는 메세지 송/수신에 사용되는 플랫폼 종속성 없이 사용가능한 "직/역직렬화 라이브러리" 이다. 플랫버퍼를 쓰는이유? 데이터 송/수신 시 파싱/언패킹을 안해도 된다. 메모리 효율성이 높고, 빠른 속도를 보장한다 유연성(사용하는 데이터타입에 대한) 적은 량의 코드로 작성 가능(이건 좀 거짓이 있다. 코드가 간단하진 않다) 사용하기 편리하다 크로스 플랫폼, 종속성 없이 사용이 가능 프로토콜 버퍼(Protocol Buffer)라고 기존에 구글이 만들어 놓은 직렬화 라이브러리가 존재했었는데, 이 FlatBuffer는 완전히 "게임"에 초점을 맞춘 라이브러리 라고 할 수 있겠다. 비교 표를 보면 ProtoBuf를 팀킬했다 능가하는 성능을 자랑한다. 사실 이게 꼭 사용 안해도 되는 라이브러리인데,..