반응형
루키스님의 '[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버' 강의를 수강하고 정리하는 포스팅입니다.
서버 프로그래머가 기본적으로 알아야 하는 모든 내용에 대해 학습을 하게 된다.
전반적 이해 하면 어떤 프로젝트에 임하더라도 쉽게 프로젝트에 적응할 수 있는 기본기를 쌓게 된다.
반짝 거리는 내용
개요
스레드
- 스레스 생성, 아토미 타입, 락은 무엇인지, 락 구현, 데드락은 왜 일어나는지, 스핀락, 슬립, 이벤트 방식
- TLS, 스택을 만들 때 Lock을 기반으로 만드는 StackQueue 같은 자료구조, LockFree 구조로 Stack과 Queue를 만드는 실습
- Thread관리에 관한 거, DeadLockProfiler 데드락 상황을 디버그 상황에서 감지할 수 있고 문제해결을 위한 방안들을 마련하는 방법
메모리
- New, delete를 이용해서 할당하는 방식이 아니라 Customizing 된 할당자를 붙여서 메모리를 관리하는 기법
- 각종 할당자를 만들어서 StompAllocator를 붙여서 메모리 오염이 일어났을 때 잡아보는 실습
- Memory Pooling 실습
- 다이나믹 캐스트 대신 빠르게 사용할 수 있는 TypeCast에 대한 개념, 실습
네트워크 프로그래밍
- 무엇인지, 소켓 프로그래밍의 기초
- TCP, UDP 개념
- 블로킹 소켓, 논 블로킹 소켓, 각종 네트워크 입출력 모델에 대한 실습
네트워크 라이브러리 제작
- 본격적으로 네트워크 라이브러리 제작 iocp 모델을 이용해 쌓아 올리기 시작함
- 몇천의 유저가 들어와도 전혀 문제 없이 잘 처리 됨
패킷 직렬화
- 어떤 기법이 있는지
- Protobuf
- 자동화 코드
- 지금 실질적으로 코드들이 자동화 되어서 처리 되고 있어
- 실무에서 사용하는 자동화 기법
JobQueue
DB연동 관련 실습
- DB 버전 관리
- 데이터 베이스 버전 관리
- 자동화 된 코드 이용해 관리
- 원하는 구조에 따라 만들어져
- 프로시져도 자동화된 툴 이용해서 편리하게 활용할 수 있는 실습
반응형
'Server programming' 카테고리의 다른 글
| 00_03_OT_환경 설정 (0) | 2023.03.12 |
|---|---|
| 00_02_OT_서버 개론 (0) | 2023.03.12 |
| 02_08_멀티쓰레드 프로그래밍_Sleep (0) | 2022.08.05 |
| 02_07_멀티쓰레드 프로그래밍_SpinLock (0) | 2022.08.05 |
| 02_06_멀티쓰레드 프로그래밍_Lock 구현 이론 (0) | 2022.08.03 |
댓글