뱅크샐러드의 Go & gRPC 프로덕션 환경 구축 비법 공개!

by DD
6년 전
조회수 13

뱅크샐러드는 REST API에서 gRPC로 전환하여 통신 속도 향상을 달성함

ProtobufSource of Truth로 활용, API 명세 관리 효율성을 높임

LogrusStatsd를 활용, 옵저버빌리티 확보 및 서비스 안정성을 강화

Protobuf 기반 API 명세 관리

뱅크샐러드는 ProtobufSource of Truth로 삼아 API 명세의 단일 진실성을 확보했다. IDL 리포지토리를 통해 protobuf 파일을 관리하고, protoc를 사용하여 다양한 언어의 코드를 생성한다. 따라서, API 명세의 일관성을 유지하고, API 문서 노후화 문제를 해결했다.

gRPC-Gateway를 활용한 JSON 호환

기존 REST API를 사용하는 서비스와의 호환성을 위해 gRPC-Gateway를 도입했다. gRPC endpoint를 HTTP layer로 연결하여 JSON 통신을 지원한다. Protobuf를 기반으로 API를 정의하고, JSON 마샬링을 통해 기존 서비스와의 통합을 용이하게 했다. 따라서, 마이크로서비스 아키텍처에서 유연성을 확보했다.

옵저버빌리티 확보를 위한 로깅 및 메트릭

뱅크샐러드는 Logrus를 사용하여 구조화된 로깅을 구현하고, gRPC Interceptor를 통해 로깅 정보를 풍부하게 했다. Stacktrace를 로깅하여 에러 발생 원인을 추적하고, Statsd를 통해 메트릭을 수집한다. 결과적으로, 서비스 안정성을 높이고, 문제 해결 시간을 단축했다.

프로덕션 환경에서 사용하는 golang과 gRPC