websocket
[Web] WebRTC를 활용한 화상통화 서비스의 서버 구성
WebRTC를 사용해서 1:1 화상통화 서비스가 포함된 프로젝트를 진행중이다. 이 때 필요한 서버는 1. Signaling Server 2. STUN Server 3. TURN Server 만약 1:1 방식의 화상통화가 아닌 1:N 혹은 N:M 방식이라면 Media Server를 추가하는 것이 좋다. Signaling Server 양쪽의 클라이언트를 연결시켜주는 역할을 하는 서버이다. 각 클라이언트들의 연결을 위해서는 먼저 정보의 전달이 필요한데, 이 정보를 SDP(Session Description Protocol)이라 하고 Siganling Server가 이 정보를 중계해주는 역할을 한다. Spring Boot를 사용한다면 일반적으로 WebSocket을 사용하여 통신하게 된다. 그 순서를 알아보면 1..
[Web] WebSocket API / REST API
배경 진행 중인 프로젝트에서 영상을 실시간으로 스트리밍 하면서 그 영상의 처리를 해주는 API를 원했다. 지금까지는 REST API를 만들어서 요청과 응답으로 구성되어 있는 API에 익숙해져 있었다. 하지만 실시간으로 바로 처리하면서 기능을 수행하기에는 한계가 있었다. 그러면서 WebSocket의 개념이 생각났고, REST API가 사용하는 방법이 아닌 WebSocket 개념을 사용한다면 내가 원하는 API가 될것같았다! 찾아보니 WebSocket API가 존재했고 둘의 차이점을 비교해 보자 REST API REST API는 기본적으로 요청과 응답으로 연결된다. HTTP URI로 엔드포인트를 명시하고, HTTP Method(Post, Get 등)을 통해 요청을 보내게 된다. 그리고 API의 기능이 끝나면..
[Web] Web Socket / Web RTC
Web Socket Web Socket은 클라이언트와 서버의 실시간 통신을 지원해 준다. HTTP 프로토콜과는 달리 한 번의 연결이 이루어지면 지속적인 연결을 도와준다. 또한 한쪽에서의 일방적인 요청에 따른 응답이 아닌, 필요에 따라서 양방향에서 데이터를 주고받을 수 있다. Web RTC Web Real-Time Communication 웹 브라우저 환경에서 비디오, 음성 등의 데이터를 peer 간에 실시간으로 전송되도록 지원하는 오픈소스이다. 연결을 원하는 브라우저에서 Signaling Server를 통해 Offer SDP를 보내고 연결되는 브라우저에서 Answer SDP를 보내주면서 Ice Candidates 과정으로 이루어진다. NAT 환경에 있을 경우 Stun/Turn Server를 구현해 통신할..