---
# System prepended metadata

title: Store Server - 성현

---

# Store Server - 성현

### 사용 기술
- Go
- gRPC
- protoc


### 기능
- 사용자의 요청(게임 정보, 리뷰, 찜 목록, 정렬, 검색)에 대한 응답.

### 아키텍처
![](https://i.imgur.com/t1u9q8Y.png)

### 통신 과정
1. 유저는 API 게이트를 향해 RestFul 한 요청을 보냅니다.
2. API Gateway는 토큰의 유효성을 인가하여 gRPC Gateway에 요청을 넘깁니다.
3. gRPC Gateway는 HTTP1.1버전의 RestFul한 요청을 gRPC가 사용하는 HTTP2.0 으로 변경하여 상품 서버와 gRPC 통신을 합니다.
4. 상품 서버는 요청에 대한 응답을 gRPC Gateway와 unary한 RPC 통신을 통해 넘겨 줍니다.
5. gRPC Gateway는 응답받은 값을 사용자에게 넘겨 줍니다.

### 기술 선택 이유
1. `Rest API` vs `gRPC`
   - 상점서버를 제작하며 어떤 목표를 이룰 수 있을지 많은 고민을 하였습니다. Rest API를 사용하며 Rest API를 더 이해하는 상태가 될 수도 있지만 제가 캠프에서 이루고자 하는 목표에 전혀 사용해 본적 없는 기술이면서 트렌디한 기술인 gRPC를 사용하는 것이 더 부합하다고 생각하였습니다.


