# grpc gateway - 성현
### 사용 기술
- Go 1.17.6
- libprotoc 3.19.4
- .proto 파일 컴파일링
- gRPC
### 기능
- 이 서버는 proto 파일을 읽고 리버스 프록시를 생성합니다. 이 리버스 프록시를 통해 grpc-gateway 서버는 RESTful HTTP API를 gRPC로 변환해주는 역할을 하게됩니다.

[이미지 참조](https://musma.github.io/2020/12/31/grpc-gateway-start.html)
### 기술 선택 이유
gRPC는 Proto buffer를 사용하고 이로인해 Rest API와 비교하여 많은 장점을 가지고 있습니다. 하지만 web과의 직접적인 통신을 지원하지 않습니다. 하지만 이 gRPC-gateway를 거치면 HTTP1.1을 사용하는 Rest API 방식의 통신을 HTTP2.0을 사용하는 gRPC 통신으로 변경하여 사용을 지원해 줍니다.
### 반성할 점
gRPC의 게이트웨이 단계에서 미들웨어 역할을 하는 Interceptor를 사용해 로깅을 시도해 보려 하였습니다. 하지만 이를 시도해보지 못해 아쉬움이 남습니다.