gRPC 적용기 with JPA,Spring

less than 1 minute read

gRPC

RPC기술인데 시리얼라이징 기능은 protocol buffer을 사용하고 gRPC는 strema 서버동작에 집중되어 있다. 아쉬운점은 protocol buffer에서의 아쉬운점 그대로다. protocol buffer에 너무 의존적이 된다. restful/json/bson/xml처럼 프로토콜만 맞추면 뭘 써도 되는 그런 라이브러리와는 다르다.

protocol buffer의존성에서 좀 벗어나서 thrift를 사용할 수 있게 변경하려는 것 같은데 다른것들도 적용이 되려나 모르겠다.

JPA와의 궁합

매핑지옥이 시작된다. API가 실행될 때 마다 리플렉션을 사용하기는 싫고 몇몇 해결방안으로 제시된 것들을 보면

  • jpa를 xml로 생성한다는데… protocol buffer로 생성된 클래스에 xml로 생성된 코드를 오버랩핑한다는건가? 잘 이해가 안가고 솔루션이 제시된것도 아니라서 패쓰
  • .proto 파일이 아닌 어노테이션을 기반으로 protocol buffer의 객체를 사용할 수 있게 해준다는 것 같은데… 괜찮은 솔루션같은데 공식 라이브러리가 아니라 개인프로젝트가 아닌곳에 적용하긴 겁난다 https://github.com/BAData/protobuf-converter

같이 쓰기 썩 좋지는 않다. 매핑노가다나 리플렉션 매핑을 좀 이용해야할 것 같다.

Spring과의 궁합

없다. 그냥 별도라고 봐야할 것 같다. 현재 SpringBoot를 이용하고 있는데 아직 별로 나온게 없어 보인다.

알수없는 오류

컴파일러 플러그인을 다운받는데 백신이 exe파일을 자꾸 지워버린다. exe어쩌고 하면서 실행이 안될때 확인하자

결론은

아직 완전히 적용한것은 아니지만..

쓸만하긴한데 생태계가 완벽하지 않아서 신경쓸게 좀 많다.

MessageQueue를 이용한 비동기 RPC방식보다 나은지 잘 모르겠다. 아직 고민만 해보고 테스트는 못해봐서… 아예 안쓸지도 모르겠다.

Tags: ,

Categories:

Updated: