작년에 프로젝트를 하다가 Google의 ProtoBuf라는 것이 있다는 것을 알게 되었는데 이 때는 그냥 넘어가버렸다. 근데 최근 리버싱을 할 때 마다 보이는 것 같아서 이 참에 정리해보게 되었다. ProtoBuf 란? 전송하기 위한 저장하려고 하는 데이터 구조를 유연하고 효율적으로 작성하고 파싱할 수 있도록 지원하는 자동화된 솔루션이다. Json이나 XML을 생각하면 이해가 쉬워지는데, 이것들과는 조금 다르다. ProtoBuf는 데이터 구조를 .proto라는 파일로 작성하면, 이를 컴파일해서 C++/C#/Python 등의 언어 코드 형태로 변환이 가능하고, 변환된 언어 형태로 모듈까지 지원해서 데이터 구조를 전송하고 받아 읽을 수 있게 Serialize / Deserialize도 해준다. C언어로 예를..
환경 : Ubuntu 18.04 server 64bit 선행 설치bazel : https://docs.bazel.build/versions/master/install-ubuntu.html, JDK 8을 설치한 후에 APT repository로 설치 빌드1234$ git clone https://github.com/google/gitiles$ cd gitiles$ bazel build //:gitiles$ bazel test //...cs 사용 방법 gitiles가 설치된 디렉토리의 tools/run_dev.sh만 실행하면 된다. 실행되었을 때의 경로는 현재 디렉토리를 기준으로 하며, git을 사용할 때 마다 생기는 .git 디렉토리가 반드시 있어야 한다.gitiles로 작업할 디렉토리로 이동.git이 포..