server 2

[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 코어 계층(서버, 세션)

개요코어 계층에 속하는 서버의 진입점이 되는 main과 실제 서버 로직을 진행하는 server, 클라이언트 관리를 위한 session에 대한 로직을 작성하였다.하기에 코어 로직의 주요 기능에 대한 소스 파일을 설명하고자 한다.  main// main.cpp// 프로그램 진입점 및 서버 실행 파일#include "core/server.h"#include #include #include #include #include #include #include // 시그널 핸들러용 전역 서버 변수std::unique_ptr server;// 시그널 핸들러 함수void signal_handler(int signal){ spdlog::info("시그널 받음 {}, 서버 종료...", signal); if (se..

[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 계층형 아키텍쳐 구현

개요빌드 환경을 구현하였으니 본격적인 서버 구현에 앞서 구현하고자 하는 아키텍쳐를 구상해봤다.내가 개발해야할 서버에선 클라이언트 세션을 관리하고 클라이언트 요청에 따라 인증, 매칭등의 서비스 로직을 구현해야 한다. 이를 데이터베이스와 통신하여 트랜잭션 처리를 통해 검증 및 상태 업데이트를 진행해 주어야 한다. 따라서 controller를 통해 클라이언트 요청을 구분하여 각 기능에 맞는 API를 호출할 수 있도록 서비스를 핸들해 주기로 했다. 예를 들어 인증 관련은 auth, 매칭 관련은 room, 게임 생명 주기 관리는 game의 컨트롤러 타입을 지정하고, 컨트롤러 핸들러를 통해 각 API가 호출될 수 있도록 나누어줬다. 처음엔 패킷을 주고 받을 때 최대한 적은 리소스를 사용하고자했지만 게임 내 이벤트에..

728x90