안녕하세요 재미있게 이야기해야 이해하는 개발자 남기호 입니다.~~
Websocket 이라고 말하면 저는 처음이야기를 들었을때 잉? 그게 뭐지? 위키백과 문서를 보면 눈부터 무거워지고 맥북이랑 키스를 합니다.
그래서 저는 모든지 재미있게 현실과 비례해서 이해를 합니다. 뭐 문서만 보고 책을 보고 바로 이해하는 머리 좋은 사람들도 많지만 저는 책을 계속봐도 이해가 안가서 저만에 방식으로 개념을 재미있게 리펙토링 하고 이해를 합니다. 이제부터 저의 방식으로 말하겠습니다.
더재미있게 설명하실수있으면 언제든지 환영해요~
Websocket은 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. 웹소켓 프로토콜은 2011년 IETF에 의해 RFC 6455로 표준화되었으며 웹 IDL의 웹소켓 API는 W3C에 의해 표준화되고 있다.
??????????????????????????????????????????
어우졸려...
일단 HTTP 가 뭐냐 ?? 약속입니다 모든 코딩에 시초는 한국이 아닌 외국입니다.
약속이 영어로 뭐냐면 프로토콜 입니다~
HTTP 통신으로 문서를 주고 받고 할수있는거지요~
근데 HTTP 통신은 야구로 생각하면 공을 던져야지만 저한테 다시 공이 돌아올수가있지요?? 똑같아요 다른사람한테 공을 던져야 나한테 공이 오는 방식입니다
HTTP 통신 다음으로 나온게 나의 사랑 구글에서 만든 Ajax 에요 왜 이걸갑자기 말하는거냐
HTTP은 문제가있어요 회원가입할때 중복검사는 보셨죠? 그걸 HTTP 는 새로운 페이지가 열리면서
맞는 이메일이 아닙니다 라고 새로운!! 페이지가 나오는거고 Ajax 는 그페이지 그대로 요즘화면처럼 유효하지않는 이메일 입니다 라고 나오는거에요~~ 신기하죠? 뭐 이론적으로는 더 깊게 공부하면 좋아요~~
그리고 Ajax 는 프로토콜이 아니에요~~ 편리하게 사용할려고 하는 기술입니다~~ 한번 찾아보세요
혹시몰라서 헷갈릴수도 있어서 말
HTTP 와 AJAX 차이
1.HTTP는 웹브라우저가 서버에 요청합니다x.
2.AJAX는 XMLHttpRequest 객체가 서버에 요청합니다.
3.HTTP는 항상 페이지를 이동합니다.
4.AJAX는 조그마한 변경이 필요할 때, 해당 페이지 내에서 변경이 가능합니다.
이제 WebSocket이란
OSI 제텍스트7계층에 위치해 있으며 제4계층의 TCP에 의존합니다 7계층은 제가 따로 다뤄 보겠습니다 이렇게만 알고 게세요 4계층은 전송계층 입니다 전송전송계층!! 양방향으로 데이터를 연결해준다고 생각하세요 하나에 통로를 열어만 주고 거기서 물품들을 주기도 하고 받기도합니다 좀 쉽게 생각하자고요
저는 Node.js 를 사용하므로 Socket.io 를 소개 할게요
웹소켓 자체는 HTML5 방식의 기술입니다 메모메모!! 오래된 버전의 웹 브라우저는 웹소켓을 지원하지 않습니다. 예를 들어서 옜날 html5 아래 버전인 웹에서는 지원조차도 안된다는 이야기!! 그래서!!! 나온게 바로바로 socket.io 짜잔~~
Socket.io는 node.js 기반으로 만들어진 기술로 거의 모든 웹 브라우저와 모바일 장치를 지원하는 실시간 웹 애플리케이션 지원 라이브러리입니다
이것은 100% 자바스크립트로 구현되어 있으며 현존하는 대부분의 실시간 웹 기술들을 추상화해 놓았습니다
다시 말해지만 Socket.io는 자바스크립트를 이용하여 브라우저 종류에 상관없이 실시간 웹을 구현할 수 있도록 한 기술입니다.
Socket.io는 웹 브라우저와 웹 서버의 종류와 버전을 파악하여 가장 적합한 기술을 선택하여 사용합니다
만약 브라우저에 FlashSocket이라는 기술을 지원하는 플러그인이 설치되어 있으면 그것을 사용하고 플러그인이 없으면 AJAX Long Polling 방식을 사용하도록 합니다
그림으로 설명하는걸 좋아해서 이거면 딱 되겠네요!
실시간 양방향 데이터 통신이 필요한 경우.
많은 수의 동시 접속자를 수용해야 하는 경우.
브라우저에서 TCP 기반의 통신으로 확장해야 하는 경우.
개발자에게 사용하기 쉬운 API가 필요할 경우.
클라우드 환경이나 웹을 넘어 SOA(Service Oriented Architecture) 로 확장해야 하는 경우
여기에서 이걸 보고 알아봐야할거는 응용계층과 TCP 는 뭐고 기본개념을 알면은 다 거기서 파생되는거라 기본이 제일중요합니다 기본개념을 재미있게 해봐용 다음에 만나요~