본 문서는 저장소의 다양한 학습 자료를 분석하고, 카테고리별로 정리한 내용입니다. 각 자료의 유용성(★~★★★★)을 표기하여 학습자가 효율적으로 자료를 선택할 수 있도록 돕습니다.
- ★★★★: 필수 자료
- ★★★: 매우 유용한 자료
- ★★: 유용한 자료
- ★: 선택적 학습 자료
본 분석은 각 학습 자료의 내용, 접근성, 최신성, 그리고 게임 API 서버 개발이라는 목적에 얼마나 부합하는지를 기준으로 평가되었습니다. 학습자의 배경지식과 경험에 따라 자료의 유용성은 달라질 수 있습니다.
- 언어: C#
- 프레임워크: ASP.NET Core
- 데이터베이스: MySQL, Redis
- DB 연결: SQLKata, Kata Execution (EF Core 사용하지 않음) , Cloud Structures (Redis 라이브러리)
- 로거: ZLogger
- 게임 서버 OS: Linux
- 기타 기술: Docker, nGrinder, 프로메테우스 & 그라파나
- 클라이언트 테스트: C# Blazor (후순위)
- 초급 학습자 추천 경로
- C# 프로그래밍
- ASP.NET Core 기초
- ASP.NET Core 고급
- 데이터베이스 연동 (MySQL)
- Redis 활용
- 로깅 및 모니터링
- 환경 설정 및 배포
- 참고 프로젝트
- 기타 학습 자료
- LinqPad 관련자료
ASP.NET Core로 게임 API 서버를 개발하기 위한 학습 경로를 다음과 같이 추천합니다.
직접 실습해야 할 부분은, 실습을 해보면서 프로젝트를 진행해 나가야 합니다.
-
게임 서버 기초
- 모바일 게임 개발 개요 (★★★) - 모바일 게임 개발 개요
- Web서비스의 서버구성과목적 (★★★★) - 전반적인 서버 구조 이해
- 전체적인 서버 개발 기초 자료(기존 서버 캠퍼스 인턴 자료) (★★★★) - 개인공부/Web API 게임 서버 공부 부분. 전체적인 서버 개발 기초 자료.
한 번 흩어보고 앞으로 배울 내용들에 대해 감을 잡는 것도 좋고, 정독하는 것도 좋다.
-
C# 프로그래밍 기초
- (인프런 무료 영상) C# 처음부터 배우기 (★★★★) - C# 기초 학습
- C# 자료구조 (★★★)
- coding_rule.md (★★★) - 코딩 규칙 및 가이드라인
-
ASP.NET Core 기본
- (YOUTUBE) 1~6단계로 ASP.NET Core 기본 실습 (★★★★) - ASP.NET Core의 기본 개념과 실습. 예제 코드는
codes
디렉토리의basic2
디렉토리 안에 있다. - VSCode 게임 웹서버 환경설정 (★★★★) - VSCode에서 ASP.NET Core의 환경 설정 및 디버깅 방법
- ASP.NET Core Web 시작 (★★★★) - 기본 시작 방법 (Visual Studio 기반)
- 컨트롤러와 route 규칙 Request 처리 Response 처리
- DAO, DTO, VO 란? 간단한 개념 정리 (★★★) - 데이터 전송 방식 이해
- ASP.NET Core 입문 – 미들웨어와 파이프라인 해설 (★★★★) - 미들웨어 개념 이해
- 의존성 주입 방법의 라이프 사이클 - AddTransient, AddScoped, AddSingleton (★★★★) - DI 생명주기
- API 서버의 디렉토리 구성 (★★★★) - ASP.NET Core API 서버 디렉토리 구성 예
- API 서버 간 통신 때 HttpClientFactory 사용하기 (★★★★) - HttpClientFactory 사용법
- MS Docs: ASP.NET Core에서 IHttpClientFactory를 사용하여 HTTP 요청 만들기 (★★★★) - HttpClientFactory 사용법
- (YOUTUBE) 1~6단계로 ASP.NET Core 기본 실습 (★★★★) - ASP.NET Core의 기본 개념과 실습. 예제 코드는
-
데이터베이스
- MySqlConnector 간단 정리 (★★★) - MySQL 연결 방법
- DB 프로그래밍 라이브러리 SqlKata 소개 (★★★★) - 쿼리 빌더 라이브러리
- 예제 프로그램: github_sqlkata_demo.zip (★★★) - SQLKata 예제
-
Redis 학습
- (영상) Redis 야무지게 사용하기 (★★★★) - NHN Redis 강의
- Redis 기능 학습하기 (★★★) - 잘 구조화된 Redis 학습 자료. 해당 링크의 글은 읽고, 해당 사이트 다른 글은 필요할 때 찾아보는 것을 추천
- Redis의 기본 데이터 유형 및 명령 (★★★★) - Redis 자료형. 익숙한 자료구조들이 있어서, 필요한 데이터 유형을 찾아보는 것을 추천한다.
-
Redis 라이브러리 CloudStructure 학습
- CloudStructures를 이용한 C# Redis 프로그래밍 (★★★) - CloudStructures를 이용한 redis 다루기 입문
- CloudStructures 라이브러리 사용 설명서 (★★★★) - C#에서 Redis 사용
-
로깅 (ZLogger, SeriLog 중 택 1)
- ZLogger 사용하기 (★★★★) - 로그 라이브러리 ZLogger 사용 방법
- SeriLog 사용하기 (★★★★) - ZLogger 대체 로깅 라이브러리
- C# 비동기 프로그래밍 정리 (★★★) - 비동기 프로그래밍 필수 자료
- (인프런 무료 영상) C# 초보 강좌 예제로 배우는 C# (★★) - 예제 중심 C# 학습
- 문법 (★★) - C# 기본 문법 학습
- (YOUTUBE) VisualAcademy (★★) - 다양한 C# 강의 모음
- 6.0 버전 이후의 새 기능 (★)
- C# 멀티스레딩 (★)
- (인프런 무료 영상) C# 프로그래밍 - 커리큘럼 총 63 개 (★★) - Advanced한 C# 강의
- YOUTUBE 닷넷데브 (★) - C#개발 관련으로 정말 다양한 자료
- ASP.Net Core - DI 시스템 사용하기 (★★★) - 의존성 주입
- C#(.NET) 이미 빌드 된 API 서버의 엔드 포인트 url을 변경하는 방법 (★★★) - appsettings 설정 자료
- .NET 6에서 Kestrel 포트를 설정하는 몇 가지(너무 많은?) 방법 (★★★) - appsettings 설정 자료
- Visual Studio - launchSettings.json을 이용한 HTTP/HTTPS 포트 바인딩 (★★★) - appsettings 설정 자료
- ASP.NET Core 앱에서 URL을 설정하는 5가지 방법 (★★★) - appsettings 설정 자료
- 닷넷 빌드와 실행 (★★) - 닷넷 빌드와 실행 시 일어나는 일에 대한 상세 설명
- ASP.NET Core (★★) - 공식 사이트로 방대한 정보 포함
- ASP.NET Core 애플리케이션 최소 구현 치트 시트 (★★) - 최소 구현을 위한 환경 설정
- Microsoft Docs MCP Server (★★) MS Docs에 있는 ASP.NET Core 관련 기술 문서를 LLM으로 물어볼 때 도움이 된다.
- ASP.Net Core - DI에서 Dbcontext 사용하기 (★★) - Dbcontext를 사용하는 자료
- ASP.NET Core - DI로 추가한 클래스의 초기화 방법 (★★) - 간단한 예제
- ASP.NET Core 서버 시작까지 흐름 추적 (★) - 조금 예전 버전 자료
- ASP.NET Core에서 호스팅되는 서비스를 사용하는 백그라운드 작업 (★★★) - 백그라운드 작업
- ASP.NET Core 출력 캐싱 미들웨어 (★★★) - 성능 최적화
- ASP.NET Core의 속도 제한 미들웨어 (★★) - DDoS 방지
- 요청 본문을 Stream 또는 PipeReader로 바인딩 (해당 링크 중간 부분) (★★) - 대용량 파일 처리
- .NET Core9.0에서 CORS 설정하기 (★★) - CORS 설정
- ASP.NET Core에서 API 별 버전 관리 (★★) - API 버전 관리
- IHostedService 및 BackgroundService 클래스를 사용하여 마이크로 서비스에서 백그라운드 작업 구현 (★) - ASP.Net Core 백그라운드 작업 고급
- Client IP safelist for ASP.NET Core (★★) - 화이트리스트 기반 접근제어 미들웨어
- Custom ASP.NET Core Middleware Example (영어 자료)(★) - 미들웨어 example
- Exploring a minimal WebAPI with ASP.NET Core (★★) - minimal WebAPI 영어자료
- ASP.NET Core WebAPI에서 Custom Formatter를 이용하여 CSV 및 JSON 출력을 전환하는 샘플 (★★)
- ASP.NET Core - 우선순위에 따른 HTTP/HTTPS 호스트:포트 바인딩 방법 (★★)
- ASP.NET Core gRPC 앱에서 gRPC JSON 코드 변환 (★★)
- gRPC JSON 코드 변환에 대한 HTTP 및 JSON 구성 (★★)
- .NET 앱에 대한 Protobuf 메시지 만들기 (★★)
- .NET용 gRPC 구성 (★★)
- .NET의 gRPC에서 로깅 및 진단 (★★)
- gRPC와 프로세스 간 통신 (★)
- 샘플코드 Transcoder (★)
- ASP.NET Core gRPC 앱에서 gRPC JSON 코드 변환 프로젝트 만들기 (★)
- 코드에서 DB 트랜잭션 하기 (★★★★) - 트랜잭션 처리
- 데이터 설계 (★★★) - 게임 DB 설계자료
- CloudStructures - Redis 라이브러리 소개 (★★) - C# Redis 라이브러리
- Cache-Aside_pattern.md (★★★) - 캐싱 패턴 이해
- ASP.NET Core 프레임워크 내부의 로그 수준 설정하기 (★★★) - 로그 레벨 설정
- fluentd 디렉토리 (★★) - 로그 수집 시스템
- prometheus_grafana 디렉토리 (★★) - 모니터링 시스템
- Microsoft.Extensions.Configuration 및 Microsoft.Extensions.Options 사용 시작 (★★★★) - 설정 읽는 방법
- ASP.NET Core에서 여러 환경 사용 (★★★) - 환경별 설정
- Microsoft.Extensions.Configuration.Json에서 읽은 설정 값에 Prefix 부여 (★★) - 설정 관련 팁
- C#(.NET) 이미 빌드 된 API 서버의 엔드 포인트 url을 변경하는 방법 (★★) - 배포 후 설정
- .NET 6에서 Kestrel 포트를 설정하는 몇 가지 방법 (★★) - 포트 설정
- ASP.NET Core 앱에서 URL을 설정하는 5가지 방법 (★★★) - URL 설정
- "Docker Desktop for Windows" - ASP.NET Core 응용 프로그램의 소켓 주소 바인딩 (★) - Docker 설정
- docker 디렉토리 (★) - Docker 관련 예제 및 설명
- Visual Studio - .NET 8 프로젝트부터 dockerfile에 추가된 "USER app" 설정 (★) - 사용자 모드 같은 것에 대한 설정
- 미니 게임 천국 (★★★★) - 가장 추천되는 참고 프로젝트
- api_server_training_dungeon_farming (★★★★) - 완성된 API 서버 프로젝트
- 지니 팜 (★★★) - 인턴 프로젝트
- 수집형 RPG API 서버 (★★)
- 2024년 API 서버로 만든 오목 게임 서버 (★★)
- 두 개의 프로젝트가 있다. 둘다 만드는 게임은 같지만 각각 개발자는 달라서 구현도 조금씩 다르다
- API 서버로 실시간 게임 콘텐츠를 구현하는 방법을 볼 수 있다. 롱 폴링 방식 사용
codes/practice_omok_game-1
, 'codes/practice_omok_game-2`
- 2025년 신입 사원 교육 프로젝트 (★★)
- 하스스톤 모작
codes/HearthStone
디렉토리에 있다.
code
디렉토리의GameAPIServer_Template
디렉토리에 있는 코드를 참고해서 만들기 바란다.GameAPIServer_Template_Doc
에 코드에 대한 설명 문서가 있으니 꼭 보기 바란다
- 프로젝트는 새로 만들고 구조나 코드 등을 참고한다.
GameAPIServer_Template
에 있는 코드 보다 더 좋은 코드를 만드는 것을 목표로 한다.
- 해당 프로그램은
codes
디렉토리 안에 있다. - 기획데이터(마스터 데이터)가 json으로 된 것을 로딩
- 미들웨어로 라우팅을 커스텀마이징
- 미들웨어로 클라이언트 보낸 요청 데이터의 암호를 풀어서 핸들러에 전달하도록 한다
- 필터로 클라이언트에 보내는 응답의 포맷을 변환하거나 암호화 하도록 한다
이 저장소의 내용을 DeepWiki로 만들었습니다. 2025년 5월 9일 제작한 위키는 영어로 작성되어 있습니다.
- 학습자료_2022년_인턴 폴더 (★★★) - 인턴 학습 자료
- 코드 디렉토리 (★★★) - 다양한 예제 프로젝트 모음
- 인턴 서버 개발 기초 (★★★) - 게임 서버 개발자 기초
- 인턴 서버 개발 기초2 (★★★) - 게임 서버 개발자 기초 자료
- 인턴 서버 개발 기초3 (★★★) - 컴팩트한 서버 개발 기초자료
- 인턴 .NET 개발 기초 (★★★) - .NET 서버 개발 기초
- 워리할수있다 (tistory.com)(★★)
- Intro - WebAPI Server (gitbook.io) (★★)
- ASP (notion.site) (★★)
- https://velog.io/@oak_cassia/%EC%84%9C%EB%B2%84%EC%BA%A0%ED%8D%BC%EC%8A%A4-1%EA%B8%B0-ASP.NET-Core (★★)
- https://beathe.at/2023-04/ASP.NET-Core-GameServer (링크 끊김)
- 학습자료_2024_서버캠퍼스2기 (★★★) - 2024 서버캠퍼스 수료생 자료
- ASP.NET Core 다양한 샘플 코드 (★★★) - 다양한 예제 코드 모음)
- 게임 엔진 아웃라인 (☆)
- 네트워크 기초 (★★) - 네트워크 기초
- LinqPad 소개 (★★★) - LinqPad 기본 사용법
- LinqPad 무료 버전에서 nuget 사용하기 (★★★) - NuGet 패키지 관리