Project

General

Profile

강의 계획


커리큘럼

얼리 엑세스 (토요일)

1주차 (녹화)

  • 강의 소개
  • NetDrone Engine 데모 시연
  • Panic Room 예제 설명

2주차

  • Easy Shooter 예제 설명 (예제 제공)
  • 프로토콜 구조 분석
  • 클라이언트와 서버 패킷 처리기
  • 서버, 채널, 룸, 난입

3주차

  • Easy Shooter 예제 설명
  • 게임 모드 추가
  • 무기 종류 추가

4주차

  • AWS EC2 리눅스 서버에 게임서버 올리기
    • OS 세팅 과정은 Hyper-V (Ubuntu, CentOS)
    • EC2는 세팅 되어있는 서버 (CentOS)
  • Easy Shooter 수정빌드 같이 플레이

5주차

  • Easy Shooter Cluster 예제 설명 (예제 제공)
  • 분산처리 시스템 설명
  • 로드벨런싱 구조 설명
  • 서버간 통신 구조 설명
  • DBMS 구조 설명

6주차

  • Easy Shooter Cluster 예제 설명
  • 분산 노드 구성 방법
  • 서버 관리 방법
  • 로그 구조 설명
  • 로그 수집 및 분석

7주차

  • Panic Room .NET / Native 서버 구조 비교
  • NetDroneSDK 예제 설명
  • 유니티 C# 클라이언트와 리눅스 C++ 서버로 개발하는 방법 설명 (WSL2 환경)

8주차

  • WebDrone 설명 (NetDrone PHP 버전, 출시작 소스만 있어서 시연만 가능할 수 있음)
  • 웹 서버 + 데디케이트 서버 (웹 서버만으로는 못하는 이슈 해결 등)

넥스트 레벨 (일요일)

1주차 (녹화)

  • 네트워크 서비스 개론
    • 실시간 게임 시스템 흐름
    • 서버 시스템 구조
    • 데이터베이스 설계 구조
    • 통신 객체 구조
    • 플레이어 객체 구조
    • 시스템 객체 구조
    • IDC 서비스 장비 구조

2주차

  • 자료 구조 일반
    • Array 기반 설계
      • 정적 컨테이너 생성 및 활용
      • 동적 컨테이너 생성 및 활용
    • Collections 기반 설계
  • 게임 정보용 데이터
  • 네트워크 패킷 캡슐화
  • 순차적 패킷 실행
  • 가벼운 데이터 정렬
  • 패스 파인딩
  • 데이터 입출력 연습
    • Array 컨테이너
    • Collections 컨테이너

3주차

  • 자주 사용되는 함수
    • 문자열 다루기
    • 차일 입출력 다루기
    • 기타
  • 데이터 정렬 및 파싱
  • 자주 사용되는 디자인 패턴
    • Singleton
    • Factory
  • 링크드 리스트 활용
    • 아이템 및 인벤토리 적용

4주차

  • TCP/IP 데이터 통신
    • 통신 프로토콜의 이해
    • 방화벽 구조의 이해
    • 소켓 프로그래밍
    • 게임 프로토콜 설계
    • 패킷 중계 방법
    • 스레드 프로그래밍
    • .NET Poll

5주차

  • 데이터베이스
    • MySQL 사용 방법
    • 계정 및 플레이어 테이블 설계 (Workbench)
    • 검색속도 향상을 위한 방법
    • 자주 사용되는 자료형
    • 자주 사용되는 쿼리

6주차

  • 데이터베이스
    • MySQL 사용 방법
    • 뷰, 프로시져
    • ERD
    • 통계 쿼리

7주차

  • 웹 서버
    • HTTP 프로토콜 설명
    • PHP 기본 문법
    • 계정 인증 및 플레이어 데이터 로딩 구현

8주차

  • 웹 서버
  • 게임 프로토콜 개발

9주차, 10주차, 11주차, 12주차

  • QnA, 실습, 포트폴리오 제작, 나머지 공부 등
  • Reliable UDP 구현

교육 자료


언어 및 개발 환경

리눅스

추천 도서


뇌를 자극하는 시리즈는 옛날 SGA 강의할 때 교재로 사용했던 책입니다. 입문용으로는 괜찮았던 기억이 납니다.

C#만 사용하셔도 C++ 계념은 꼭 알아야 합니다. C#도 C++ 처럼 사용하면 정말 강력한 언어가 됩니다.

PHP는 데디케이티드 서버로 개발을 하더라도 외부 연동을 위해 웹서버를 사용하는 경우가 많습니다. 결제 트랜젝션 로그를 위해 Google APIs Client Library for PHP를 사용하는 것도 한가지 예입니다.

러닝 리눅스는 고대 리눅스가 세상에 보급되던 시절 나왔던 책입니다. 저도 이책으로 시작했었죠.

STL은 cplusplus.com 에서 보세요. 가장 좋습니다.