뱅크샐러드 공식 블로그 | 메인 · 2020. 02. 27.
프로덕션 환경에서 사용하는 golang과 gRPC
AI 엔지니어링 브리핑
뱅크샐러드는 Go와 gRPC를 이용해 서비스 간 통신을 빠르게 하고 API 명세를 실제 코드와 일치시키면서, 기존 REST 시스템과도 함께 운영할 수 있는 방법을 정리했습니다.
문제 & 배경
문제 & 배경: 기존 REST·JSON API 문서가 코드 변경을 따라가지 못해 신뢰를 잃었고, 다양한 언어로 운영되는 서비스 사이의 호환성·호출·테스트·운영 로그를 함께 해결해야 했습니다.
기술 & 해결책
기술 & 해결책: protobuf를 모든 API의 기준으로 삼아 한 저장소에서 관리하고 언어별 코드를 생성했으며, grpc-gateway로 gRPC를 JSON REST와 연결하고 서비스별 클라이언트와 interceptor로 호출·로깅·메트릭을 표준화했습니다.
교훈 & 주의점
교훈 & 주의점: 프로덕션에서는 단순히 gRPC 서버를 실행하는 것만으로 부족하므로 protoc 버전과 생성물을 통일하고, 실제 HTTP 테스트와 구조화된 로그·stacktrace·요청 메트릭을 갖추되 오류를 여러 번 감싸 stacktrace가 사라지지 않도록 주의해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.