더북(TheBook)

4.8 서버 구동 환경

 

 

서버도 결국 컴퓨터입니다. 그리고 운영체제가 설치되고 그 위에 프로그램이 실행됩니다. 기본적으로 클라이언트 컴퓨터와 크게 다르지 않지만, 운영체제와 하드웨어가 조금 차이가 있습니다.

우선 서버를 구동하는 운영체제가 다릅니다. 1990년대 중반에는 Solaris 같은 것이 사용되다가 1990년대 후반부터 그 자리를 윈도 서버(Windows Server)가 차지하기 시작했습니다. 윈도 서버를 게임 서버 개발에 많이 이용했던 이유는 최소 수백 개 이상의 네트워크 클라이언트와의 매우 빠른 처리 속도를 만족시켜 주었기 때문입니다. 윈도 서버는 1995년에 이미 I/O Completion Port 기능을 제공했는데, 이것으로 수백에서 수천 개에 달하는 네트워크 연결을 매우 빠르게 처리할 수 있었습니다. 또 윈도 서버용 게임 서버를 개발할 때는 일반 윈도를 그대로 사용해서 서버와 클라이언트를 한 자리에 구동할 수 있었습니다. 그리고 서버와 클라이언트가 같은 개발 환경이기 때문에 서버와 클라이언트가 같은 소스 코드를 직접 공유해서 빌드될 수 있습니다(게임 서버에서 짬짬이 스타 한 판을 할 수 있었던 것은 비밀로 합시다).

그런데 2000년 이후부터 I/O Completion Port에 준하는 기능8을 리눅스와 FreeBSD 같은 유닉스 계열 운영체제에서 제공하면서, 무료 서버 운영체제로 리눅스와 윈도 서버가 골고루 쓰이기 시작했습니다. 지금도 게임 서버를 개발할 때 윈도 서버와 리눅스의 호불호 논쟁은 흥미로운 주제입니다.

 

8 리눅스는 epoll 기능을 제공하고, FreeBSD는 kqueue 기능을 제공합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.