hueypark / wiki

Personal wiki
https://marsettler.com
0 stars 0 forks source link

game-server-architecture/ #2

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

게임 서버 아키텍처

https://marsettler.com/game-server-architecture/

GameForPeople commented 3 years ago

먼저, 스테이트리스 서버와 스테이트풀 서버를 분리하여, 서버를 구성한다는 방법이 제 수준에서는 정말로 인상적인 내용이였습니다!

해당 부분 관련해서 질의드릴 내용이 있습니다.

먼저, 스테이트리스 서버 변경사항에 대한 스테이트풀 서버로의 갱신을, 서버간 통신이 아닌, 클라이언트에 의존하게 되면 보안 혹은 성능 등에 의한 문제가 발생할 것으로 보이는데, 이에 대한 보완은 어떻게 이루어지는 지 궁금합니다.

예를 들어, 스테이트 서버 A, 스테이트레스 서버 B, 클라이언트 C일때, C <-> B : 아이템 결제 - 구매 C --> A : 구매한 아이템 장착 등 인벤토리 갱신 요청이 이루어질 때, A에서의 처리 여부가 궁금합니다.

위의 로직의 경우에서는 A의 메모리에는 C의 유저의 인벤토리에서, 구매한 아이템 key값이 존재하지 않는 상태일텐데, 이 때는 Item DB에 대하여 한 번 더 해당 Key값으로 검색하거나 인벤토리 전체를 DB값으로 갱신한 후 장착하는 방식으로 구현을 설계하면 되는지에 대하여 질의드립니다.

감사합니다!

hueypark commented 3 years ago

@GameForPeople 아직 미완성인 글에 관심가져주셔서 감사합니다. 언제 나머지를 적게 될 지 모르겠네요.

위의 로직의 경우에서는 A의 메모리에는 C의 유저의 인벤토리에서, 구매한 아이템 key값이 존재하지 않는 상태일텐데, 이 때는 Item DB에 대하여 한 번 더 해당 Key값으로 검색하거나 인벤토리 전체를 DB값으로 갱신한 후 장착하는 방식으로 구현을 설계하면 되는지에 대하여 질의드립니다.

위 경우는 말씀하신 것처럼 데이터베이스에 의존하게 될 것 같습니다.