전체 글

    [Spring Websocket] In Memory Broker vs External Broker

    🔍 Message Broker란? Publisher로부터 전달받은 메세지를 Subscriber로 전달해줄 때 중간에서 메세지를 주고 받게 해주는 중간 역할 🔍 In Memory Broker란? Spring websocket에서 STOMP 프로토콜을 사용해서 웹소켓 기능을 구현할 때 STOMP는 Message Broker가 필요하다. 이 때 아무 설정 없이 Spring 환경에서 STOMP 프로토콜을 사용한다면 메세지 브로커로 In Memory Broker를 사용하게 된다. 그렇다면 하나의 서비스를 만들 때 In Memory Broker를 메세지 브로커로 사용해도 상관 없을까? 상관있다... 아래를 보면, In Memory 브로커의 단점들이 존재한다. 세션을 수용할 수 있는 크기가 제한되어 있다. 장애 발생..

    [Spring Websocket] STOMP - convertAndSendToUser 사용법

    STOMP란? 문자 기반의 송수신을 위한 문자 기반 메세징 프로토콜 convertAndSendToUser() 채널에 구독하고 있는 사용자들 중 모두에게가 아닌 특정한 사용자에게 메세지를 보낼 수 있도록 해주는 메소드 convertAndSendToUser(String user, String destination, Object payload) 이때 convertAndSend와 같이 두 번째와 세 번째 파라미터에는 채널과 보낼 데이터를 넣어야 하는 것을 알 수 있다. 그러나 처음에 convertAndSendToUser를 사용하면서 첫 번째 파라미터인 user에는 무엇이 들어가야 할지를 알 수 없었다. 파라미터 처음에는 username을 입력해주면 되지 않을까 싶었다. 그러나 다시 생각해보니 username은 ..

    미팅에서 만난 사이

    🤓 미팅에서 만난 사이란? 개요 코로나로 인해 발생한 코로나 블루 현상을 타파하기 위한 어플리케이션 소셜미팅어플리케이션 시장의 혁신으로 불리울 다대다 소셜미팅어플리케이션 어려웠던 점 1. 계속되는 요구와 그로 인한 DB, API 변경 보통 API서버를 구현할 때 DB를 설계하고 미리 API를 작성한다. 그리고 이렇게 정한 DB는 지금까지 해온 보통의 프로젝트에서는 쉽게 변경되지 않았다... 그러나 정식 출시와 기업과 연계한 이 프로젝트는 달랐다.... 우선 제작하는 개발자의 입장에 마음대로 하는 것이 아닌 사용자의 니즈를 파악한 기업 대표님의 요구를 바탕으로 제작했다. 그로 인해 대표님의 생각이 달라지거나 더 필요한게 있다면 바로 바로 DB를 수정하고 API 명세된 내용도 변화시켜야 했다. DB,,,,A..

    [Netty] 차근차근 시그널링 서버 ( Signaling Server ) 만들기 ( feat. WebRTC ) - (1) 설계

    💡 개요 WebRTC를 사용하기 위해서는 사용자의 연결 정보를 전달해주기 위한 시그널링 서버가 필요하다. 네티를 이용해 시그널링 서버를 개발해보자 시그널링 서버를 만들기 전에 우선 WebRTC가 시그널링 서버를 필요로 하는 이유를 알아보자 withseungryu.tistory.com/130 [WebRTC] Signaling Server ( 시그널링 서버 ) WebRTC에 대해서 이야기를 해봤는데 WebRTC를 유기적으로 잘 사용하기 위해서는 아래와 같은 서버가 필요하다. Signaling - Always needed NAT Traversal - need for production Media - depends on the app 이번.. withseungryu.tistory.com 🔍 설계 WebRTC를 ..

    [Netty] 블로킹 소켓과 논블로킹 소켓

    소켓이란? 네트워크 상에서 동작하는 프로그램 간 통신의 종착점 ( wiki ) 데이터를 통신할 수 있도록 해주는 연결부이기 때문에 통신할 서버와 클라이언트 모두에 소켓이 필요 블로킹이란? 요청한 작업이 성공하거나 에러가 발생하기 전까지는 응답을 돌려주지 않는 것 즉 자신의 수행결과가 끝날 때까지 제어권을 갖고 있는 것 논블로킹이란? 요청한 작업의 성공 여부와 상관없이 바로 결과를 돌려주는 것 이때 요청의 응답값에 의해서 에러나 성공 여부를 판단한다. 즉 자신이 호출되었을 때 제어권을 바로 자신을 호출한 쪽으로 넘기고, 자신을 호출한 쪽에서 다른 일을 할 수 있도록 하는 것

    [Netty] 동기와 비동기 통신

    👉 동기 통신이란? 정의 주기적인 운동을 하는 개체들이 서로 영향을 주고 받거나 받게 됨으로써, 동일한 주기를 갖게 되는 것, 그러한 현상을 동기현상이란 한다. 동기란 단어대로 동시에 일어난다는 뜻이다. 즉 요청을 하고 난 후 요청에 대한 응답이 돌아올 때까지 기다리는 방식의 통신 방식이다 장점 설계가 매우 간단하고 직관적이다. 단점 결과가 주어질 때까지 아무것도 못하고 대기해야 한다. 👉 비동기 통신이란? 정의 송수신 간에 신호를 주고 받으며 작업을 수행하는 방식. 비동기식은 시작/정지 방식과 단계적 시작/정지 방식이 있다. 동기 통신과 달리 동시에 일어나지 않는다는 듯이다. 즉 요청을 하고 요청에 대한 응답이 돌아올 때까지 기다리는 것이 아닌 바로 다음 일을 시작하는 통신 방식이다. 장점 결과가 주어..