

시작하기
- 필요한 것
- .proto 파일 작성
- proto 컴파일러 [ Github release 페이지 ]로 proto 파일을 Java 클래스로 변환
- protobuf runtime [ Maven Repository ] (해당 버전과 proto 컴파일러 버전 맞추기!)
- Java클래스에서 사용되는 라이브러리들을 갖고 있는 의존성
protoc --java_out=java resources/jake.proto
protoc —java_out=<Java class를 만들 경로> <proto 파일 경로>
Java class를 만들 경로
+ java_package
(proto 파일) = 클래스 최종 생성 경로- .proto 파일
.proto
파일에서는snake_case
로 작성했던 것들이 자바 컨벤션에 따라camelCase
로 변환됨repeated
: 몇번이고 반복되어 들어갈 수 있다 (List 를 의미)
- 위와 같은 에러 발생하는 건
MappingJackson2HttpMessageConverter
가 사용되어서 발생하는 에러임. Accept 헤더를 application/x-protobuf 로 추가해서 요청하면ProtobufMessageConverter
를 사용하게 되어 에러 발생하지 않음
Rest로 Protobuf 사용하기
[ Blog ] Protobuf를 사용하여 BE, FE 구현
[ Github ] Protoman — postman 처럼 구현해놓은 protobuf http api 테스트 툴
- produces에 MediaType.APPLICATION_PROTOBUF_VALUE를 추가하면 response가 ProtobufHttpMessageConverter를 거쳐서 protobuf message가 serialize되어 나간다