CS/서버

클라이언트와 서버

tae-woong 2025. 10. 16. 19:16
관계

네트워크 통신을 한 문장으로 요약하면 ' 요청(Request)과 제공(Response) '입니다.

  • 클라이언트 (Client) : 서비스를 요청하는 쪽 
  • 서버 (Server) : 클라이언트의 요청에 응답하여 서비스를 제공하는 쪽

 

클라이언트(Client)

클라이언트는 서버가 제공하는 서비스를 받아 사용하는 모든 장치 또는 프로그램을 의미합니다.

  • 클라이언트 장치 : 우리가 일상적으로 사용하는 데스크톱, 노트북, 스마트폰, 태블릿처럼 네트워크에 접속하는 물리적인 기기 자체를 말합니다.
  • 클라이언트 프로그램 : 사용자가 서버에 특정 서비스를 요청할 수 있도록 해주는 소프트웨어입니다. 대표적으로 웹 브라우저(크롬, 사파리)나 PC/모바일에 설치된 온라인 게임 클라이언트(실행 파일)가 있습니다.

 

서버(Server)

서버는 클라이언트의 요청을 받아, 그에 맞는 서비스(데이터, 기능 등)를 제공하는 시스템입니다. 서버는 24시간 내내 작동하며 클라이언트들의 요청을 기다리고, 요청이 들어오면 그에 맞는 응답을 보내주는 역할을 합니다.

웹 브라우저에서 www.google.co.kr을 입력하는 과정을 예로 들어보겠습니다.

  1. 요청 : 내 컴퓨터의 웹 브라우저(클라이언트)가 구글 서버에게 "구글 홈페이지 화면을 보여줘!" 라는 요청을 보냅니다.
  2. 처리 : 요청을 받은 구글 서버는 해당 웹페이지에 필요한 데이터(HTML, 이미지 등)를 찾습니다.
  3. 응답 : 서버는 찾아낸 데이터를 웹 브라우저(클라이언트)에게 전송합니다. 이 데이터를 받은 클라이언트(브라우저)는 우리가 볼 수 있는 화면으로 예쁘게 그려줍니다.

온라인 게임도 마찬가지입니다. 내 캐릭터가 몬스터를 공격하는 순간, "A 캐릭터가 B 몬스터를 공격했다"는 요청이 게임 서버로 전송됩니다. 서버는 이 요청을 받아 데미지 계산 등의 처리를 한 후, "B 몬스터의 체력이 10 감소했다"는 결과를 나를 포함한 주변의 모든 플레이어(클라이언트)에게 응답으로 보내주는 것입니다.

 

왜 모든 데이터를 클라이언트에 저장하지 않고 굳이 서버를 사용하는가?

가장 큰 이유는 보안과 데이터의 신뢰성 때문입니다. 만약 유저의 레벨이나 재화 같은 중요한 데이터를 클라이언트에만 저장한다면, 사용자가 임의로 데이터를 조작(치팅)하기 매우 쉬워집니다.  서버는 이러한 핵심 데이터를 안전하게 관리하고 모든 클라이언트가 동일한 데이터를 공유하도록 보장하는 중앙 권위(Authoritative) 역할을 수행합니다.

'CS > 서버' 카테고리의 다른 글

액터 모델  (0) 2025.10.23
서버 구현/구조 방식  (0) 2025.10.16
TCP / UDP  (0) 2025.10.16