-
Ducktopia_C# - <2> TOP NEW
C#으로 서버 열기 강의를 통해 받아온 소스 코드는 콘솔 앱 프로젝트를 사용하여 메인 스레드를 블로킹하는 단점이 있었다. 대신 .NET CORE 8 기술을 사용하는 작업자 서비스 및 멀티스레드 관리를 확실히 배우고 응용하고 싶어졌다! 그렇게 스터디에서 여러 의견을 종합한 결과 4/21 까지 따로 더 공부 하여 시작하도록 결정됬다! 참고 자료 현재 학습 방법에 대해 각자 따로 공부를 하는 것이 아닌, 공통된 자료들을 공부하여 프로젝트 진행에 차질이 없도록 하기로 하였다! 게임 서버 개발자를 위한 레포지토리 C# 게임 서버 개발 재생목록 추가로 현재 TCP/IP를 이용... Read More
-
Ducktopia_C# - <1> TOP NEW
C#으로 서버 열기 기존 Node.js 로 구성한 서버와 구조적 차이가 엄청 나는 것 같다.. 일부 강의에 있는 파일들과 클라이언트의 C# 파일들을 분석해서 패킷을 해석 및 처리하는 로직까지 구현하였다. 파일 구조가 너무 꼬여있어서 도식화를 통해 이해하기 쉽도록 정리할 예정이다. 핸들러 맵퍼 서버마다 핸들러를 매핑해주는 매니저가 있었으면해서 베이스를 미리 만들었다. public abstract class HandlerManagerBase<TPacketType, TGamePacket> where TPacketType : Enum ... Read More
-
C# - <3> TOP NEW
C# [4주차] 인터페이스 (Interface) 인터페이스란 클래스가 구현해야 하는 메서드/속성/이벤트의 계약을 정의한걸 의미한다! ( Class가 어떤 유형인지 정해주는 느낌인거 같은데.. ) 인터페이스의 이점 코드의 재사용성 인터페이스를 사용하면 다른 Class에서 해당 인터페이스를 구현하여 동일한 기능을 공유할 수 있다! 다중 상속 제공 C#에서는 Class는 단일 상속만을 지원하지만, 인터페이스는 다중 상속을 지원한다. -> Class가 여러 인터페이스를 구현(다중 상속)함으로써 여러 개의 기능을 조합할 수 있다! 유연한 설계 인터... Read More
-
Ducktopia - <27> TOP NEW
개요 저번에 받은 피드백을 토대로 부하 테스트를 실행하기 위해 여러 준비를 하였다! PM2 일단 EC2 인스턴스(Lobby, Game) 서버의 실시간 데이터를 확인하기 위해 pm2 link 를 사용해 pm2 웹 Monit을 사용하였다 https://pm2.io/ 버킷을 만든다 아래와 같이 pm2 link를 이용해 인스턴스와 연결해준다 pm2 startup으로 세팅을 마무리한 EC2를 이용해 AMI 생성해준다 ( 나중에 증설하기 편하게 < 근데 이거 새로 link 연결할 때 이름을 따로 설정해줘야 한다.. ) 부하 테스트 기록하기 전... Read More
-
C# - <2> TOP NEW
C# [3주차] 이번 회차에서는 C#의 클래스와 객체에 대해 설명하고 있다. 저번과 같이 중복되어 알고 있었던 부분보다 새롭게 알게되거나 개념이 달라진 부분 위주로 작성할 계획이다! 생성자(Constructor)와 소멸자(Destructor) 객체가 생성될 때 호출되는 특별한 메서드로 Node.js의 Constructor와 같은 개념이다! 조금 다른게 있다면, 오버로딩이나 초기화 시 메서드 이름을 클래스 이름으로 해줘야된다는 것 정도..? class Person { private string name; private int age; // 매개변수... Read More
-
C# - <1> TOP NEW
-
새로운 여정 TOP NEW
개요 캠프를 마치고 앞으로의 취업준비 과정에서 현업에서 사용하는 언어와 이에 따라 배워야할 지식들을 쌓을 계획이다! 초기에는 C++를 배우며 C#을 간접적으로 배우는 방식으로 공부를 시작하려 했지만.. 현업에서 주로 사용되는 C#을 먼저 배우고, 이를 이용해서 서버를 구축해보는게 더 시간 대비 많은 경험을 할 수 있을 것 같아 계획을 변경했다! 스터디 결성 현재 같이 캠프를 수료한 몇몇 분들과 함께 전에 만든 프로젝트를 C# 서버로 재구축해보면서 멀티스레드나 언어의 특징들을 경험해보려한다! 그렇게 6~8인으로 구성된 스터디 그룹에서 주어진 강의나 취업준비를 어느정도 마치고, 제대로 프로젝트를 시작하는걸로 회의... Read More
-
Ducktopia - <26> TOP NEW
피드백 프로젝트 설명 브로셔 CI/CD 구축 새로운 기능 업데이트로 인한 배포 시, 서버의 가용성을 높일 수 있는(무중단 배포) CD 프로그램을 도입하였다면 좋았을 것 같다. 분산 서버 관리 분산된 서버에서 공통으로 사용할 수 있는 부분은 따로 관리할 수 있게 만드는게 좋을 것 같다. 이동 동기화 방식 현재 프로젝트의 기능 구현을 위주로 진행하면서 이동 동기화 로직에서 클라이언트 의존도가 높게 구현되었다..! 이 부분은 서버에 TileMap 및 A* 알고리즘을 구현하여 클라이언트의 의존도(=장애물로 인한 물리 계산)를 낮추는 게 훨씬 서버 지향적인... Read More