게임회사 생활 중간 점검 - 1

Kim Ju Young·2022년 9월 9일
0

회고록

목록 보기
8/13
post-thumbnail

시작하며

게임회사 생활을 한지 1개월 반이 지났다. 생활했던 걸 기억하기 위해 Notion 뿐만 아니라 블로그로도 좀 자주 작성하려고 한다.

무엇을 배웠나?

지금 생각해보면 가장 크게 접할 수 있었던 건 다음과 같다.

  • 배치를 통한 자동화
  • Web3
  • Elastic Search
  • C# 게임서버

기본적으로 모든 기술을 적용시킬 때 C#을 사용하게 되었다. 그리고 Blazor 는 내가 주로 다루고 있는 주업무기 때문에 빼놓았다.

실무에서 다양한 문제를 해결하다보니 강제로 지식이 주입되었다(...) 일을 좀 분산시키고 싶은 시니어분과 열정 넘치는 내 이해관계가 잘 맞아 떨어진 것 같다.

배치를 통한 자동화

배치 파일을 사용하면 윈도우의 많은 것들을 자동화할 수 있다. 웹 RDB를 생각해보면 우리는 처음 셋팅으로 자동적으로 테이블을 만들지 못한다. 직접 하나하나 DB로 찾아들어가 SQL문을 써줘야만 쓸 수 있다.

예를 들어, 내가 요즘 쓰는게 MSSQL이니 MSSQL로 예를 들겠다.
SQL문이 써있는 폴더가 있고 자동으로 그 SQL문이 DB로 들어가 실행된다면 얼마나 편할까?

물론 이건 batch 만으로 되는 건 아니고 C# 콘솔 프로그램이 도와줘야한다.

이건 블로그 글로 어떻게 진행했는지 차근차근 작성하겠다.

Web3

Web3는 블록체인 지갑 주소와 주소끼리 컨트랙트를 하기 위한 C#의 라이브러리 중 하나이다. 이 Web3를 쓰면 컨트랙트를 아주 쉽게할 수 있다.

이 라이브러리를 사용하면 다음과 같은 내용을 진행할 수 있다.

  • 운영 계좌가 코인이 부족
  • 다른 충분한 코인 계좌에서 코인 자동으로 송금

나는 실제로 이 프로젝트를 진행했고 성공적으로 코드를 짤 수 있었다.

Elastic Search 는 게임 로그나 운영툴 로그 남기는 용으로 사용하고 있다. Elastic Search는 기존에 사용하던 RDB와 매우 다르다. NoSQL 형태도 띄고 있으며 Index나 Mapping 등 사용하는 용어가 서로 다르다. 사용자는 Elastic Search와 HTTP 형태로 통신하게 된다. 이것도 차근차근 글을 쓰려고 한다.

C# GameServer

이건 진짜 동접자 수 500~1000명을 돌려본 것은 아니다. 그저 C# 서버와 C++ 서버를 TCP 연결하기 위해 썼을 뿐이다. 소 잡는 칼로 닭을 잡은 것 같지만 다음과 같은 개선사항을 진행하면서 실력이 늘 수 있었다.

  • C# 기존 서버는 C++ 서버와 접속이 끊겼을 경우 재접속이 되지 않았다.

세션을 초기화하고 다시 붙여주는 과정을 거쳐 해결할 수 있었다.

마치며

위에 있는 4개 주제를 배경으로 글을 작성할 예정이다. 될 수 있으면 사이드 프로젝트까지 작성하는 것을 목표로 잡으려고 한다.

profile
호호선생

0개의 댓글