목록Today I Learn (82)
나만의 작은 도서관
이번 주 한 마디: http와 웹소켓을 했으니 이제 본격적으로 TCP 통신을 통한 서버 구축을 하게 되었다.이번 주 배운 내용 net으로 간단한 TCP 서버 만들기자바스크립트 Buffer커링 (Currying)프로토콜 버퍼로드 밸런싱대칭 키 암호화 방식과 공개 키 암호화 방식TCP HandshakeTCP와 UDP빅 엔디안, 리틀 엔디안protoBuf와 직렬화/역직렬화이번 주 한 일 Node.js 게임서버개발 주특기 플러스 100% -완-로드 밸런싱, 대칭 키 암호화 방식과 공개 키 암호화 방식, 삼각함수/역삼각함수 글 포스팅TCP Handshake 글 포스팅 TCP와 UDP 글 포스팅빅 엔디안/ 리틀 엔디안 글..

오늘 배운 내용 빅 엔디안, 리틀 엔디안빅 엔디안은 이름에서 알 수 있듯 큰 놈을 기준으로 저장하는 방식인데, 여기서 큰 놈은 상위 바이트를 의미한다. 따라서, 전달받은 패킷에서 최상위 바이트 -> 최하위 바이트 순으로 메모리(buffer)에 저장하게 된다. 빅엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 일치하기 때문에, 그리고 평소 사람이 읽기 편하기 때문에 이해가 용이하다는 장점이 있다. 리틀 엔디안은 빅 엔디안과 반대로, 전달받은 패킷에서 최하위 바이트 -> 최상위 바이트 순으로 메모리(buffer)에 저장하게 된다. 리틀 엔디안은 패킷에 담긴 데이터 순서와 메모리에 저장되는 순서가 달라, 읽기가 불편하지만 자리 올림 ..
오늘 배운 내용 TCP HandshakeTCP handshake는 TCP 연결을 설정하고 종료하기 위한 일련의 과정입니다. 이는 TCP 프로토콜이 신뢰성 있는 통신을 보장하기 위해 사용하는 중요한 절차입니다 TCP 헤더에는 6비트로 구성된 플래그 코드 비트가 있습니다.이 코드 비트는 3-way handshake, 4-way handshake, 비정상 종료 등등 tcp 연결 확립과정과 연결 종료 과정에서 중요한 역할을 하게됩니다. TCP handshake에 대한 자세한 내용은 아래 글에 정리해두었다.https://pledge24.tistory.com/284 [1분 간단 질문] TCP Handshake란 무엇인가요?TCP handshake는 ..
오늘 배운 내용 로드 밸런싱로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시키는 기술로, 서버 간의 부하를 균등하게 나누어 시스템의 효율성을 극대화하고 성능을 향상시키기 위해 사용됩니다. 간단히 말해서, 서버가 받는 부하를 의미하는 "로드"를 균형있게 분배해준다고 할 수 있습니다. 이러한 로드 밸런싱은 로드 밸런서(Load Balaner)라고 부르는 모듈(장치)을 통해 수행하게 됩니다. 자세한 내용을 아래 링크에 따로 정리해두었다.https://pledge24.tistory.com/280 로드 밸런싱(Load Balancing)로드 밸런싱로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시키는 기술로, 서버 간의 부하를 균등하게 나누어 시스..
오늘 배운 내용 커링 (Currying) ‘커링’은 여러 인수를 받는 함수를 인수가 하나인 함수들의 연속으로 변환하는 기법이다. 만약 onConnection() 함수가 socket이라는 매개변수를 받고, 안에 onData()함수에 data를 넣어 호출했다면, onData에서 socket, data 매개변수를 전부 사용할 수 있게 하는 기능이다. 사용법은 아래와 같다.// socket은 onData를 호출함 onConnection()함수의 매개변수이다.export const onData = (socket) => (data) => { console.log(data);}; 프로토콜 버퍼프로토콜 버퍼는 구글에서 오픈소스로 공개한 언어로, 구조..

오늘 배운 내용 net으로 간단한 TCP 서버 만들기Node.js에서는 기본적으로 TCP 서버 구축을 위해 net을 제공한다. 그렇기 때문에 Node.js에 설치되어 있다면 추가 설치 없이 net을 사용할 수 있다. net은 net.createServer()를 통해 TCP서버를 만드며, 아래와 같이 사용한다. server.jsimport net from 'net';const PORT = 5555;// net을 이용해 TCP서버를 만들고, socket이 연결 요청을 했을 때 해당 socket에 대한// 이벤트 3개(data, end, error)를 서버 측에 추가한다.const server = net.createServer((socket) =..