면접에서 웹소켓을 물어보면? 간단하게 알아보기


안녕하세요.
고코더 입니다.


 1. 웹소켓이란 단어를 많이 들어봤지만 설명하라고 하면 입이 떨어지지 않는 주제입니다.
우선 소켓은 네트워크에 가장 기초적인 개념입니다. 통신을 위해 두 지점을 말합니다. 통신의 통로입니다. 여기서 Web이란 단어를 합성해서 "웹소켓"으로 불립니다. 기본 적으로 웹소켓은 Stateful Protocol 방식입니다. 한번 연결된 네트워크 라인 통신을 통해 데이터를 양측에 주고 받을 수 있습니다.  즉 기본 request, response 방법이 아닌 연결을 유지한채 정보를 주고 받는 방법입니다.
HTML5에서는 이런 웹소켓 방식을 2009년 부터 공식 지원하고 있습니다. 

1
websocket = new WebSocket(URL);
cs



 2. 웹소켓 장점
1. 80혹은 443 포트를 이용한 데이터를 교류 합니다. 그렇기 때문에 금융권에서는 이런 방화벽 오픈에 대해 민감하기 때문에 쉽게 사용할 수 있습니다. 
2. 정보를 서버와 실시간 교류 할 수 있기에 즉각적인 변화를 감지해야 하는 서비스에 좋습니다.(채팅, 주식,코인 거래소 등등)

 3. 웹소켓 단점 
1. 개발이 복잡하니다. 레퍼런스가 ajax 비해 많이 부족합니다. 완성도 높게 개발하지 않으면 유지보수가 어렵습니다.
2. 트래픽이 많이 발생합니다. 그래서 특별한 경우가 아닌 경우에는 서버 부하와 관리 때문에 도입에 대한 의견을 나누다 제외 되는 경우가 많습니다.
3. 최신 브라우저가 아니면 작동 되지 앖습니다. 2009년 부터 지원하고 있기에 ie8 같은 오래된 익스플로러에서는 작동되지 않습니다. (저희 부모님은 아직도 xp ie8을 사용중이시죠)

íµì ì ëí ì´ë¯¸ì§ ê²ìê²°ê³¼

 4. 최근 동향은 Ajax로 필요할때마다 시간마다 불러오는 Polling 방식에서 WebSocket으로 서비스를 고도화 하고 있습니다. 그래서 많은 취업 공고에 websocket에 개발자를 구하고 있으니 먼저 공부하고 간단하게 면접자에게 설명할 수 있도록 이론을 쌓아보시길 바랍니다.


마무리


최적 실시간 환경이 아닌 서비스에서는 웹소켓 보다 기존 ajax 방식이 아직 더 좋습니다.








댓글을 달아 주세요