본문 바로가기
Basic Information

서버란?

by (S39) 2025. 8. 1.

서버란 클라이언트의 요청에 요청을 처리하고 응답하는 컴퓨터를 말한다.

 

목차

     


    서버의 사전적 정의

    컴퓨터 망에서 클라이언트라고 불리는 컴퓨터에 [정보를 제공]하는 컴퓨터.

    서버를 사용하는 아키텍쳐를 클라이언트 서버 모델이라고 부른다.

     


    클라이언트 - 서버 모델

    서버를 알기위해서는 클라이언트와 서버의 관계에 대해 알아야 한다.

    클라이언트-서버 모델은 크게 서버와 클라이언트, 공유자원, 서비스, 네트워크 프로토콜 총 5가지로 나누어 볼 수 있다.

    • 서버
      - 서버는 한가지 이상의 서버 프로그램을 실행하고 있어야 한다.
      - 서버는 클라이언트와 자원을 공유한다.
      - 서버는 클라이언트의 요청을 처리하여 [응답(Response)]한다.
      - 하나 혹은 다수의 클라이언트에게 네트워크 프로토콜에 맞추어 서비스를 제공한다.
      - 서버는 제공하는 서비스에 따라 분류된다.(ex. 게임서버, 웹서버, 프린트 서버, 등..)

     

    • 클라이언트
      - 클라이언트는 하나 혹은 다수의 서버와 연결될 수 있다.
      - 클라이언트는 서버에 네트워크 프로토콜에 맞추어 서비스를 [요청(Request)]한다.
      - 클라이언트는 서버에 자원을 공유하지 않지만 [요청]의 일부로 자신의 자원을 공유할 수 있다.
      - 서버에서 돌아오는 응답을 네크워크 프로토콜을 지켜 해석한다.

     

    • 공유자원
      - 공유자원은 서버 컴퓨터가 공유하는 요소이다.
      - 공유자원은 소프트웨어와 하드웨어 2가지 분류로 나뉜다.
      - 소프트웨어: 코드, 영상, 자료, 파일, 이미지, 등...
      - 하드웨어: CPU, Ram, 저장장치(HDD, SSD), 등...

     

    • 서비스
      - 서비스는 컴퓨터의 자원을 추상화 한 것으로 이를 서버가 클라이언트에게 [응답]하는 방식으로 공유된다.
      - 컴퓨터 자원의 추상화: 하드웨어나 소프트웨어를 직접 사용하는 복잡함을 숨기고, 필요기능만 간단히 사용가능하게 제공
      - ex. 웹 서비스웹서버 내부에서 어떤 방식으로 HTML을 생성하는지 몰라도 주소를 입력하면 웹 페이지를 이용할 수 있다.
      - ex. 프린트 서비스 → 프린터의 작동방식을 몰라도 "인쇄"요청을 보내면 인쇄가 가능하다.
      - 이를 통해 클라이언트는 서버의 동작방법을 몰라도 클라이언트가 [요청]하면 서버가 [응답]하여 서비스를 사용할 수 있다.

     

    • 네크워크 프로토콜
      - 클라이언트와 서버가 서로 통신하기 위한 규칙이자 규격이다.
      - 네트워크 프로토콜에는 공통언어와 규칙이 정의되어 있다.
      - HTTP, FTP, SMTP, TCP/IP, UTP 등이 네크워크 프로토콜에 해당한다.
      - 네트워크 프로토콜이 있어서 클라이언트와 서버가 다른 언어를 사용하고 하드웨어가 달라도 통신이 가능하다.

     


     

    클라이언트와 서버와의 관계

    클라이언트와 서버는 요청(Request)-처리(Process)-응답(Response)의 구조로 작동한다.

    →  클라이언트가 서버에 서비스를 요청하면 서버는 요청을 처리한 후 처리 결과를 클라이언트에게 응답한다.

    클라이언트와 서버는 같은 컴퓨터에서 작동할 수 있으며 이때도 네트워크 프로토콜을 사용하여 통신한다.

    클라이언트와 서버는 N:N의 관계로 연결 된다. 즉 하나에 서버에 다수의 클라이언트가 연결 될수 있으며 하나의 클라이언트가 다수의 서버에 연결할 수 있다.

     

     

     


     

    서버의 역할

    서버는 제공하는 서비스에 따라 다양한 역할을 수행한다. 그중 서버에서 대표적으로 하는 일은 아래와 같다.

    • 데이터 저장과 관리: 서비스 사용자의 개인정보 혹은 사용이력, 자료, 등 서비스 사용에 필요한 데이터를 저장하고 관리한다.  
    • 보안관리: 서비스 사용에 필요한 정보와 데이터가 저장되어 있기에 보안의 핵심으로 관리된다.
    • 네트워크 통신: 같은 서비스 사용자간의 통신을 중계한다.

     


     

    게임서버

    정의: 멀티플레이 비디오 게임을 위해 게임 클라이언트에 사용하는 서버

     

    게임서버의 호스팅

    게임서버의 호스팅은 크게 2가지 방법으로 나눌수 있다.

    1. 게임을 서비스하는 회사가 서버를 운영
    2. 플레이어가 자신의 비용으로 운영버란 클라이언트의 요청에 요청을 처리하고 응답하는 컴퓨터를 말한다.

     

    게임서버의 종류

    • 리슨(Listen) 서버
      - 게임 클라이언트와 같은 프로세서로 실행 된다.
      - 별도의 서버 없이 다른 플레이어가 호스팅하는 서버에 접속하여 플레이하거나 혹은 다른 플레이어를 초대하여 플레이
      - 게임을 종료하면 서버도 같이 종료되기 때문에 호스트가 종료할 시 게임이 종료된다.
      - 위 문제점을 해결하기위해 호스트가 게임을 종료하면 같은 서버에 있던 플레이어에게 호스트 권한을 이전한다.
      ※ 일반적인 소규모 게임에서 이용된다.

     

    • 전용(Dedicated) 서버
      - 클라이언트와는 별도의 고성능 네트워크상에 있는 전용 컴퓨터에서 실행된다.
      - 플레이어는 클라이언트를 통해 전용 서버에 접속하여 플레이한다.
      - 게임의 개발한 업체 혹은 업체에 허가를 받은 퍼블리셔가 서버의 실행 및 유지권한을 갖는다.
      - 모든 클라이언트의 통신이 서버를 거쳐야 한다.
      - 게임에 따라 세션의 형태(각 세션마다 서버를 할당)로 운영되기도 한다.
      ※ MMORPG, 배틀로얄 같은 대규모 게임에서 이용된다.

     

    • p2p(peer to peer) 서버
      - 별도의 서버와 클라이언트가 없으며 각각의 피어가 클라이언트이자 서버역할을 한다.
      - 각각의 피어는 각자에게 할당된 연산을 처리하여 모든 플레이어와 통신한다.
      - 리슨 서버의 호스트에게 트래픽이 몰리는 문제점을 각각 분담하여 처리하는 것으로 해결한다.
      - 호스트가 나가도 게임이 유지되며 나간 사람의 연산은 남아있는 피어에게 분배된다.
      - 적은수의 유저가 대량의 연산을 주고 받는데 가장 유리하다.
      ※ 실시간 시뮬레이션 게임이나 격투 액션 게임에서 이용된다.

     

     

     

     

     

     

     

    'Basic Information' 카테고리의 다른 글

    API  (2) 2025.08.08