728x90

책/게임 서버 프로그래밍 교과서 6

게임 서버 프로그래밍 교과서 7장. 데이터베이스 기초

7장. 데이터베이스 기초 7.1 플레이어의 정보 저장 온라인 게임에서는 플레이어 정보를 클라이언트가 아닌 서버에만 저장한다. 클라이언트는 로그인한 후 플레이어 정보를 서버에서 받아 사용한다. 플레이어 정보를 서버에 저장하는 방법은 크게 두 가지가 있다. 파일 데이터베이스 단순파일 DB 비고 소프트웨어 비용 없다. 없거나 높다 오픈 소스 제품은 제한적으로 무료다 저장 및 로딩속도 빠르다 느리다 DB도 결국 파일 시스템을 사용한다. 데이터 관리, 분석 속도 느리다 빠르다 DB는 빠른 검색을 위한 인덱스 기능이 있다 데이터 백업 및 복원 기능 없다 있다. - 원자성 불가능하다 가능하다 DB의 트랜잭션 기능이다 일관성 (잘못된 상태의 데이터를 원천 봉쇄한다.) 없다 있다 DB의 제약(Constraints) 기능..

게임 서버 프로그래밍 교과서 5장. 게임 네트워킹

5장. 게임 네트워킹 5.1 UML 프로그램 구조 명세를 표현하는 대표적 수단이다. UML 시퀀스 다이어그램 UML 시퀀스 다이어그램에서는 객체와 메시지를 사용한다. 객체는 상호 작용의 주체(예 : 클라이언트, 서버)에 해당한다. 메시지는 상호작용의 내용(예 : 메시지 전달, 함수 실행, 이벤트 수신)으로 화살표이다. 화살표 방향을 보고 보내는 쪽과 받는 쪽을 구분할 수 있다. 시퀀스도의 주요용도는 객체 간 메시징 흐름을 일목요연하게 표현하는 것이다. 시퀀스도는 객체 사이에 메시지를 주고 받는 것을 한눈에 알아보기 쉽게 표현할 수 있다. 시퀀스도는 주고 받는 메시지를 어떻게 처리하는지 자세하게 표현하는 데는 한계가 있는데, 플로 차트를 함께 사용하면, 보다 자세하게 프로그램의 실행방식을 그림으로 묘사할 ..

게임 서버 프로그래밍 교과서 4장. 게임 서버와 클라이언트

4장. 게임 서버와 클라이언트 4.1 패키지 게임에서 게임서버 데디케이티드(decidated server) 렌더링과 사용자 입력 처리를 전혀 받지 않고, 순전히 클라이언트의 연결을 받는 세션을 처리만 하는 프로그램이 따로 들어있는 경우 4.2 서버의 역할 싱글 플레이 게임의 게임루프(game loop) 입력받기 → 게임 로직 처리하기 → 렌더링 4.3 게임 클라이언트와 서버의 상호작용 게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 한다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 한다. 이렇게 메시지가 오가는 과정을 상호작용(interaction)이라고 한다. 게임 클라이언트와 서버의..

게임 서버 프로그래밍 교과서 3장. 소켓 프로그래밍

3장 소켓 프로그래밍 온라인 게임 프로그래밍에서 소켓은 파일 핸들 방식과는 약간 다르다. 게임 서버에서는 다루어야 하는 소켓 개수가 많다. TCP를 이용해서 통신하는 경우 클라이언트 개수만큼 소켓이 있어야 한다. 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 한다. 디스크를 읽거나 쓸 때 사용하는 read(), write() 함수는 호출 후 실행이 완료될 때 까지 리턴하지 않는다. 소켓을 이용해서 읽기/쓰기를 하는 함수를 호출 했는데 즉시, 리턴하지 않는다면 이들을 호출한 메인 스레드는 사용자 입장에서 일시정지 하는 것 처럼 보인다. 이러한 이유 때문에 네트워크 프로그래밍에서 소켓은 보통 비동기 입출력(Asynchronous I/O) 상태로 다룬다. 소켓을 비동기 입출력으로 다루는 방식에는 크게는..

게임 서버 프로그래밍 2장. 컴퓨터 네트워크

2장. 컴퓨터 네트워크 2.1 OSI 모델 계층 1 : 물리 계층 계층 2 : 데이터 링크 계층 계층 3 : 네트워크 계층 계층 4 : 전송 계층 계층 5 : 세션 계층, 6 : 표현 계층, 7 : 응용 계층 데이터 링크 계층 각 단말기는 고유한 주소를 갖는다. 단말기는 데이터를 프레임이라는 단위로 주고 받는다. 네트워크 계층 라우터는 서로 다른 LAN 사이에 컴퓨터 통신을 할 수 있게 하는 장비이다. 3계층에서 흔히 접하는 것은인터넷 프로토콜(Internet Protocol)혹은 IP라고 하는 것이다. 인터넷 프로토콜에서는 주소 형식 8비트 숫자 4개로 구성되어 있다. 우리가 흔히 IP 주소라고 칭하는 것이 이것이다. 데이터는 IP에 의해 IP 패킷 형태로 포장된다. 2.2 인터넷 서로 다른 종류의 많..

게임 서버 프로그래밍 1장. 멀티스레딩

1장. 멀티스레딩 1.1 프로그램과 프로세스 프로그램은 크게 코드(code)와 데이터(data)로 구성되어 있다. 프로그램은 실행하면 이를 프로세스라고 한다. 이런 프로세스가 여러개 실행되고 있는것을 멀티 프로세싱 이라고 한다. 1.2 스레드 각 프로세스는 독립된 메모리 공간이 있고, 기본적으로 서로 다른 프로세스는 상대방의 메모리 공간에 쓸 수 없다. 일반적으로 많이 쓰는 운영체제는 대부분 스레드(thread)라는 기능을 제공한다. 스레드 역시 프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위이다. 스레드와 프로세스의 차이 스레드는 한 프로세스 안에 여러 개가 있다. 한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다. 스레드마다 스택을 가진다. 이는 각 스레드에서 ..

728x90