피드백

프로젝트 설명

CI/CD 구축

  • 새로운 기능 업데이트로 인한 배포 시, 서버의 가용성을 높일 수 있는(무중단 배포) CD 프로그램을 도입하였다면 좋았을 것 같다.

분산 서버 관리

  • 분산된 서버에서 공통으로 사용할 수 있는 부분은 따로 관리할 수 있게 만드는게 좋을 것 같다.

이동 동기화 방식

  • 현재 프로젝트의 기능 구현을 위주로 진행하면서 이동 동기화 로직에서 클라이언트 의존도가 높게 구현되었다..!

  • 이 부분은 서버에 TileMap 및 A* 알고리즘을 구현하여 클라이언트의 의존도(=장애물로 인한 물리 계산)를
    낮추는 게 훨씬 서버 지향적인 서비스다!

부하 측정

  • 서버의 최대 수용가능한 부하를 측정하여 서버의 한계를 정해두는 것이 좋다

  • 이를 통해 서버에 최대 접속가능한 시스템을 만들거나 스케일링의 기준이 되는 자료를 구축할 수 있다!

오토 스케일링

  • 웹서버의 경우 무상태의 통신이기 때문에 오토 스케일링이 간단하게 이뤄지지만,
    게임 서버의 경우 스케일링 시 여러 고려 사항이나

현업 Interview

프로젝트 발표회 이후 현업에 종사하시는 선배님들이 오셔서 프로젝트에 대한 피드백과 여러 질문에 답을 해주셔서 간략하게 적어 놓았다!

  • PC 게임 시장이 주류였을 경우 C++을 많이 사용했으나 현재엔 모바일 시장이 주류가 되면서 C# 서버나 웹 서버를 중용하는 경우가 많아졌다.

  • 게임 서버에서 사용하는 언어 중 (C++ / C#) 와 Node.js 비율은 7 : 3 정도인 것 같다. ( 경험상 이라고 말씀하셨습니당 )

  • 게임 서버 신입에게 기대하는 역량

    1. 서버 어플리케이션 완성 경험

    2. 심도있는 CS 지식

    3. 서버에서 클라이언트의 대한 로직을 이해하여 어떻게 활용할지 탐구하려는 마인드

  • 게임 내 클라이언트의 경우엔 상용화 엔진을 주로 쓰지만, 서버의 경우엔 자체적 엔진을 만들어 쓰는 경우가 많다.

  • 서버 개발자는 높은 대기업을 갈 수 있는게 물론 베스트지만, 그것에 매몰되지 않고 경력을 쌓는 것이 더 좋은 경우가 많다.

  • 서버에서 C#(비즈니스 로직) 과 C++(네트워크 Layer) 을 같이 사용해서 구현하는 경우도 있다. ( C++ : 성능 / C# : 생산성 )

  • C++ 은 메모리 부분을 조금 더 낮은 레이어에서 컨트롤가능하기에 진입장벽이 높지만 범용성이 좋다!

한줄 평 + 개선점

  • 프로젝트는 마무리 되었지만, 앞으로의 방향성을 어느정도 잡을 수 있었기에 앞으로도 화이팅 해야겠다!