Python

Protobuf 를 쉽게 사용해보자 (1/2)

팁택토 2025. 3. 8. 14:26

일단 protocol buffer 가 뭔지 쳇지피티에게 물어보자. 

쳇지피티야, protocol buffer 가 뭐지?

 

흠. Protocol Buffer 는 구글에서 만든 serialization 포맷 및 데이터 교환 프로토콜로서 언어 독립적이라고 한다. 

그리고 구조화된 데이터를 정의해서 코드를 자동으로 생성해준다고 하는데... 이렇게 보면 잘 모르겠다. 

그냥 한번 직접 사용해보자. 

 

일단 Protobuf 를 사용하려면 크게 2가지가 필요하다. Protobuf Compiler와 Protobuf Library 이다. Protobuf Compiler는 .proto 파일을 읽어서 코드를 만들어주는 역할을 하고, Protobuf Library는 실제 프로그램에서 protobuf 를 사용할 수 있게 해준다. 

 

그럼 Protobuf Compiler 부터 설치해보자. 아, 아니다. Protobuf Library부터 설치해보자. 그 이유는 뒤에 적겠다. 

 

파이썬 개발환경에서 protobuf library 설치여부부터 확인해보자.

아래 명령어로 protobuf library 설치여부를 확인할 수 있다. 

>> pip show protobuf

음. 이 환경에는 protobuf 가 없단다.

위의 명령으로 보면 현재 환경에는 protobuf library가 설치되어 있지 않은 것을 알 수 있다. 

그러면 설치를 하자. 

>> pip install protobuf

protobuf 를 설치했다. 명심해라. 지금 설치한 것은 protobuf library이다.

 

이제 protobuf library를 설치하였다. 

 

아까 protobuf compiler를 먼저 하려다가 취소하고 protobuf library를 먼저 설치했다.

그 이유는 protobuf library 버전을 먼저 알고, 그 버전에 맞는 compiler를 설치하기 위해서였다. 

Protobuf compiler와 library 버전이 맞지 않으면 protobuf 자체에서 에러를 발생시킨다. 그러므로 library 와 compiler 버전이 맞아야 제대로 사용할 수 있다. 그래서 library를 먼저 설치한 후 그 버전에 맞는 compiler를 설치하기 위해서 library를 먼저 설치한 것이다. 

 

일단 우리가 설치한 protobuf library 버전은 6.30.0 이다. 여기서 중요한 것은 6이 아니라 30.0 이다.

일단 30.0을 기억해두자. 

 

Protobuf Compiler는 아래 링크에서 다운 받을 수 있다. 

https://github.com/protocolbuffers/protobuf/releases

 

Releases · protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format - protocolbuffers/protobuf

github.com

저 링크에 들어가면 대충 아래와 같은 화면이 나온다. 

protobuf compiler 다운로드 페이지

 

해당 화면을 아래로 스크롤 하다보면 버전별로 설명이 있다. 

Protocol Buffers v30.0 이다. 3일전에 나왔군.

 

아까 설치한 protobuf library의 버전이 30.0 이었다. 이 버전의 compiler를 다운 받으면 된다. v30.0 화면을 보면 Assets 라고 보인다. 거기서 자신의 OS에 맞는 버전을 다운받자. 여기서는 쉽게 하기 위해 window 버전을 다운 받자. 참고로 protobuf compiler 를 protoc 라고 한다. 그러므로 protoc-30.0 을 다운 받으면 된다. 

protoc-30.0을 다운 받으려는데.. window 버전이 없는듯??

엇? 윈도우 버전이 안보인다. 

자세히보니... 'Show all 14 assets' 가 보인다.

눌러보자. 

이제 protoc-30.0-win64.zip이 보인다. 다운받자.

이제 윈도우 버전이 보인다. 다운받자. 

 

앞에서 말했지만 설치한 protobuf library랑 동일한 버전을 다운 받아야 한다.

예를 들어서 만약 작업환경이 python 3.7 이라면 protobuf library가 다른 버전이 설치된다. 

python3.7 버전에서는 기본적으로 protobuf library 4.24.4 버전이 설치된다.

 

만약 환경이 python 3.7 이라면 기본적으로 protobuf library 4.24.4 버전이 설치된다. 이때는 protobuf compiler도 24.4 버전으로 맞춰서 다운받아야 한다. 

protoc-24.4 버전. 한참 뒷 페이지에 있었다.

 

오케. protobuf compiler도 다운받았다. 압축파일을 풀면 아래와 같이 폴더가 있고 bin 폴더 밑에 protoc.exe 실행파일이 있는데, 이것이 protobuf compiler 이다. 

다운받은 protobuf compiler 압축을 풀어보자.

자, 이제 개발환경은 모두 마무리 되었다. 

실제 protobuf 를 사용해보자. 

 

실제 사용은 2부에서...