통신 기술, 기법들

대표적인 통신규격과 통신기법들을 간단히 정리해보겠다.


TCP 통신
TCP는 기반이 되는 통신 규격, 기술 중 하나다.
안전하고 송수신 등이 보장되지만, 좀 느리고 무거운 편이다.

불필요한 레거시가 많이 쌓여가지고...



UDP 통신
UDP도 기반 통신기술 중 하나다.

제대로 체크를 안해서 그냥 쏘거나 받고 만다.
쐈는데 제대로 안 갈수도 있고, 제대로 못받을 수가 있다.

그래서 직접 그 처리를 해줘야하는 반면에 가볍고 빠른 편이다. 커스텀도 쉽고.



HTTP 통신
TCP 기반의 웹 통신규격이다.(버전3까지)
3부터는 UDP 기반으로 재구축됐다.

현재 존재하는 모든 웹사이트가 이 규격을 통해 서버에 요청을 날리고, 데이터를 응답으로 받아 페이지에 띄운다.

모든 데이터 형식을 문자열로 다루는 게 특징이다.



MQTT 통신
TCP 기반으로 구축된 통신용 프로토콜이다.

중간에 브로커라는 중개 서버를 두고 메시지를 주고받을 수 있다.

알림같은거 구현하기 무난하다.



폴링(Polling) 기법
말은 어려운데 별거없다.
그냥 주기적으로 값을 요청해서 능동적으로 값을 가져오는걸 폴링이라고 한다.

나한테 온 알림이 있는지를 체크하는데 폴링을 쓴다면, 그냥 대충 1초 간격?으로 계속 서버에 요청을 쏘는 식으로 구현이 될 것이다.

너무 요청을 자주 쏘면 서버에 부담이 크고, 덜 쏘면 반응성이 떨어지는 애매한 단점이 있다.



**롱 폴링 기법 **
폴링의 단점을 조금 보완한 기법이다.

요청을 쏴서 받아오고 마는게 아니라, 요청한 상태에서 연결을 유지한다!
서버와 연결을 물고 실시간으로 변경사항을 잠시 받아오는 것이다.

대신 계속 서버에서 연결을 유지해야해서, 연결이 많아진다면 부하가 많이 걸릴 수도 있다는 것이 단점이다.

인원이 많지 않은 실시간 채팅서버를 구현할때 주로 사용된다.