tech/network 2

gRPC 프로토콜

현재 회사에서 구축한 서버의 네트워크 프로토콜로 gRPC 를 사용하고 있다. 오늘은 gRPC와 관련된 기술의 여러측면을 정리해보려 한다. 서버 통신프로토콜로 gRPC를 채택한 이유우선 회사에서 gRPC를 통신프로토콜로 채택한 이유는 대표적으로 아래와 같다.1. 어떤 클라이언트 언어를 사용하더라도 protoc 로 간단하게 요청/응답/API호출메소드 등을 코드로 생성할 수 있다. 이렇게 되면 서버와 통신하는 모든 코드를 type safety 한 방식으로 작성할 수 있기 때문에(당연히 모든 객체, 필드들 자동완성까지 함께) 개발 생산성이 올라간다.2. protobuf 파일만 공개하면 어떤 클라이언트에서도 해당서버와 자유롭게 연결할 수 있다.3. 요청/응답의 단방향 통신에 더하여 클라이언트 스트리밍, 서버 스트..

tech/network 2024.10.24

websocket 내부 동작 정리 & signalr

websocket 연결 과정 1. websocket handshake TCP 소켓 리스닝을하며, HTTP 프로토콜의 GET request 에 응답한다 클라이언트는 websocket handshake process를 거친다. HTTP request가 시작이며 아래와 같은 HTTP header 를 보낸다 GET /chat HTTP/1.1 Host: example.com:8000 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13 이과정에서 어떤 header라도 부정확한 값을 갖거나 서버가 해석하지 못하는경우 서버는 400(bad request)를 응답하게 된다. we..

tech/network 2023.10.26