오늘은 서버 클라이언트에 대해 조사해보고 게임 서버는 어떤 종류가 있는지에 대해 살펴봤다.
게임 서버에 대해 막연하게 어렵게만 생각했는데
간접적으로 접하고나니 더 어렵다는 것을 알게 되었다.
난 이제 죽었다.
잠깐 알게된 내용만 살짝 정리하자면
옛날에는 게임을 즐길 때 P2P방식으로 유저끼리 서로 데이터를 주고받으면서 같은 주소에 접속해서 플레이를 즐기는 방식이었다.
여기서 약간 발전해서 한 유저의 컴퓨터가 같은 게임 내 서버의 데이터를 관리하고 다른 유저는 서비스를 제공받는 사람이 되었다.
이 방식이 호스트 방식이다.
여기서 잠깐,
서버와 클라이언트는 고객이거나 서비스제공자거나 하는 등의 개념을 나누는 와중 탄생한 단어다.
client [고객] < - > service + er (=server) [서비스 제공자]
호스트 방식에서는 단점이 명확했다.
호스트가 컴퓨터가 구리면? 게임이 렉이 심하게 걸려서 플레이가 힘듦
호스트가 방에서 나가면? 게임이 없어지니까 그 방의 플레이어들은 자동적으로 튕김
서비스제공자인 호스트가 갖는 부담이 크고 위험성도 크다는 것.
그러다가 이러한 소규모 게임에도 게임사 또는 클라우드서비스 제공자들이 서버를 대여해주면서 생기게되는 것이
데디케이트 서버이다.
이 데디케이트 서버는 게임 서버이긴 하나 전담서버의 느낌이 강하다.
호스트처럼 '방'을 담당하는 느낌이다.
그런데 서버를 전문적으로 다루는 서버컴퓨터가 따로 있다.
게다가 그 컴퓨터가 '방'을 계속 갖고 있는 것이 아니라 한 판이 끝나면 서버의 역할을 종료하고 또 다른 방의 서버의 역할을 또다시 도맡는다.
장점은 서버 오류가 나더라도 다른 게임에는 영향을 주지 않는다는 것 정도가 있지만 이것도 단점이 호스트처럼 명확했다.
부담이 심하다.
대규모로 운용할 수가 없다.
P2P방식보다는 보안에 유리하나 이것마저도 위험하지 않다고 할 수 없다는 것.
그러면 대규모 데이터를 운용하는 MMORPG같은 게임은 어떻게 서버를 관리할까?
그것이 바로 C/S 서버이다.
서버가 모든 클라이언트의 접속을 받아 클라이언트간의 통신을 중계하고 데이터를 중앙집중식 방식으로 관리한다.
모든 데이터가 서버에 들어와서 송수신이 되는 방식이라 상위에 설명한 방식들보다 보안에 굉장히 유리하고 P2P등의 방식과 비교했을 때 전체 송수신 트래픽량이 적다고 한다.
그러나... 너무 많은 규모를 관리해야 할 수 있기 때문에 비용적으로 부담이 될 수도 있다. (데디케이트 서버 또한 비용적 부담은 있다.)
게임에는 많은 서버 방식이 있다지만 사실 웹에 대한 것은 조사를 많이 하지 않았다.
흥미가 없어서였을지도 모르지만 사실 게임 서버에 대한 개념을 바로잡는데만해도 많은 시간이 들어갔다.
내일 확실하게 개념정리를 마무리하고 OSI 7계층에 대해서도 조사해보려고 한다.
오늘 하루도 수고했다.