Today I Learned 29일차
- Web Socket vs Socket.io
- 암호화
- 느낀점
1. Web Socket vs Socket.io
Socket 이란,
- 네트워크상에서 동작하는 프로그램 간 통신의 종착점 (Endpoint)
Endpoint (최종 목적지): IP 주소와 Port 번호의 조합, 사용자의 디바이스 또는 서버가 될 수 있다.
- 프로그램이 네트워크에서 데이터를 통신할 수 있도록 연결해주는 일종의 연결부
- 각 클라이언트와 서버는 통신을 위해 소켓이 생성되어있어야한다.
- 특정 포트를 가진 서버는 클라이언트 소켓의 연결 요청이 있을 때까지 대기 (listening)
- 클라이언트는 특정 포트 번호를 가진 서버에게 연결 요청을 하고 서버 소켓이 허락 시 연결이 이뤄짐
(클라이언트는 서버의 허락이 떨어질때까지 계속 서버에게 요청을 한다.)
- 만약 서버가 listening 상태가 아니거나 port 번호가 틀리다면 소켓 연결이 안됨으로 통신이 이뤄지지 않는다.
Web Socket 이란,
- HTTP5 표준 기술로 사용자의 브라우저와 서버사이의 동적인 양방향 연결 채널 구성
(현재 전 세계에서 사용되는 브라우저의 5%를 제외한 모든 브라우저를 지원)
- Web Socket API를 통해 서버로 메세지를 보내고 서버의 요청 없이도 응답을 받을 수 있다.
- 별도의 포트없이 HTTP와 동일한 80 포트를 사용하므로 클라이언트인 웹 브라우저 뿐만 아니라
웹 서버도 기능을 지원한다.
Socket.io 란,
- Web Socket를 간편하게 쓸 수 있게 해주는 라이브러리
- Socket.io는 Web Socekt를 포함한 개념일 뿐 항상 Web Socket를 사용하지 않고 Web Socket 방식을
지원하지 않는 브라우저도 사용할 수 있도록 구현되어있다. (so, 소켓io 와 웹소켓은 달라!)
- Socket.io를 통하면 express 서버와 http 서버를 합쳐서 사용할 수 있다.
2. 암호화
암호화란,
문장을 알수없는 규칙으로 변환하는 것
단방향
- 신원 증명 시 사용하는 인증 방법
- 권한 인증만 가능하며 다시 암호문을 풀 수는 없다.
- 암호화 과정에서 역변환이 가능하다.
양방향
대칭키 암호화
- 암호화에 사용된 대칭키를 수신자도 전달 받아 암호화를 해독할 때 사용
- 속도가 빠르지만 암/복호화 시 대칭키를 전달해야하는 문제 발생
비대칭키 암호화 (두가지 키를 사용)
- 공개키 -> 암호화
- 개인키 -> 복호화
- 속도가 느림
- 공개키와 개인키의 위치가 바뀌는 것이 전자서명..
출처 ㅣ https://since2018.tistory.com/35
3. 느낀점
이번주 목요일까지 제출해야하는 주특기 심화 과제를 시작하였다.
아직 이해가 안가는 부분들도 많지만 이번에 과제를 진행하면서 복습과 실습을 같이 하려한다.
오늘은 평소와 다르게 집중이 잘되었는데, 내일도 오늘만큼 잘되면 좋겠다.