목록공부한거/게임서버 프로그래밍 (4)
눈팅하는 게임개발자 블로그
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 서버의 품질을 측정할 때 하나의 요소로서 확장성이란 것이 있다. 수직 확장 스케일 업(scale-up)이라고도 하며, 서버의 역할을 하는 컴퓨터의 하드웨어(프로세서 같은 부품들)을 더 좋은 것으로 교체하여 서버의 처리량을 늘리는 것. 수평 확장 스케일 아웃(scale-out)이라고도 하며, 서버의 역할을 하는 컴퓨터의 갯수를 늘려 서버의 처리량을 늘리는 것이다. 오류 가능성, 서버 소프트웨어 설계 비용, 단위 처리 속도의 세 가지 측면에서 보자면 수직 확장이 더 좋고. 확장 비용, 처리 가능 총량의 두 가지 ..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 소켓 버퍼는 송신 버퍼와 수신 버퍼를 하나씩 가지고 있다. 먼저 송신 버퍼는 일련의 바이트 배열과도 같다. 크기는 고정되어 있으나 마음대로 크기를 변경할 수도 있다. 송신 버퍼(Send Buffer) 송신 버퍼는 큐와 마찬가지로 FIFO(First in First Out, 선입선출)형태로 작동하는데, send함수에 data를 인자로 실행하면 data는 일단 송신 버퍼에 채워진다. 이후 송신 버퍼에 채워진 data는 잠시 후 통신 선로를 통해 점차적으로 빠져나간다. 따라서 송신 버퍼는 뭔가가 채워지더라도 곧 빈..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. OSI 모델의 계층 1~3에서는 패킷 유실이 발생할 수 있다. UDP의 경우 UDP에서는 패킷 유실이 발생하면 데이터그램 자체가 유실된다. 게다가 UDP 데이터그램의 크기가 클수록 유실될 확률도 높다. IP 패킷은 보통 1300바이트인데, 1만 바이트의 데이터그램을 UDP로 전송하면 운영체제는 이를 대략 1300바이트 정도 크기로 나누어서 보낸다.(IP 패킷 헤더 등이 있으므로 실제로는 조금의 차이가 있다.) 이 경우 대략 8개 정도의 패킷으로 나뉘어져 IP 패킷 8개가 수신측으로 전송된다. 이 중 하나라도 ..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 게임에서 주로 사용하는 메시지 형식. 게임의 메시지(데이터)는 크게 텍스트 또는 바이너리 형식으로 정의된다. 텍스트 형식의 메시지는 사람이 읽을 수 있으며 다음과 같다. BuyItem Sword 1 텍스트 형식은 메시지를 받는 쪽에서 특정 글자가 나올 때까지(메타 데이터와 같은) 글자를 검색하거나 구문 분석기(parser)를 동원하는 것이 일반적이다. 과거에는 텍스트 형식을 게임 개발자가 자체 정의하는 경우가 많았지만 요즘은 HTTP나 JSON같은 표준화된 형식을 쓰는 것이 일반적이다. 반면 이진, 즉 바이너..