서버와 클라이언트

컴퓨터 세계에서 서버와 클라이언트란?

 

컴퓨터가 데이터를 주고받는 목적은 특정한 기능, 즉 서비스를 제공하고 사용하기 위한 것이다.
따라서 이름 그대로 네트워크로 연결된 컴퓨터 중 서비스를 제공하는 쪽을 서버라 부르고,
그 서비스를 요청하고 받는 쪽(사용하는 쪽)을 고객, 즉 클라이언트라 부른다

 

서버 (Server)

서비스를 제공!

 

서버프로그램이 실행되고 있는 하드웨어. 쉽게 말해 네트워크에서 데이터를 주는 컴퓨터를 뜻한다.

서버는 언제 어떤 클라이언트가 요청을 해도 서비스를 제공할 수 있게 준비하고 있어야 하며, 네트워크 전체를 모니터링하고 클라이언트와의 연결을 관리해야 한다.

더보기

서버는 24시간 내내 네트워크를 관리하며 다수의 클라이언트에게 서비스를 제공해야 하는 서버는 큰 용량을 가진 고성능 컴퓨터인 경우가 많다.
✋ 하지만! 서버와 클라이언트는 컴퓨터의 성능과 상관없이 그 역할에 따라 구분되는 것이다.

따라서 나의 컴퓨터도 언제든지 서버가 될 수 있다!!!

클라이언트 (Client)

서비스를 요청!

 

서버에게 서비스를 요구하는 사용자나 컴퓨터. 즉, 데이터를 요청하고 받는 컴퓨터를 뜻한다.

 

서버와 클라이언트 구조

한 대의 서버에 다수의 클라이언트가 접속하여 서비스를 이용할 수 있는 방식을 서버 클라이언트 구조라고 말한다.

 

다수의 사용자들이 공동으로 사용하는 데이터를 서버라는 중앙 컴퓨터에 저장하고 관리하여 수많은 클라이언트의 동시적 요구를 효율적으로 처리 가능하다. 서버 클라이언트 구조는 전 세계의 네트워크가 연결된 인터넷의 기반이 되었고, 이를 활용한 대표적인 서비스가 팀 버너스리가 개발한 웹 서비스(월드와이드웹)다.

 

웹 어플리케이션 서버와 게임 서버

웹 어플리케이션 서버 (웹서버)

 

웹 사이트에서 사용하는 서버. HTTP / HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램으로, 보통 프레임워크라는 강력한 도구를 사용하여 개발한다. ( 스프링 부트(Spring Boot), Django(쟝고), ASP.NET(C#) 등... )

 

웹서버 특징

더보기

1. 요청(Request)과 응답(Response) 형태로 데이터를 주고 받는다.
2. 대부분 클라이언트에서 요청을 보내고 서버에서 요청에 맞는 응답을 전송.
3. Stateless(무상태) 프로토콜을 사용해서 요청과 응답을 주고 받으면 연락이 끊긴다.
4. HTTP 프로토콜을 사용해서 HTTP Server라고도 부른다.
5. HTTP는 양방향 통신이 아닌 단방향 통신 모델.

 

게임 서버

 

게임에서 사용하는 서버. TCP Server, Binary Server, Stateful Server 라고도 불린다.

클라이언트가 패킷을 서버에 전송해도 서버에서 응답을 꼭 보내주지 않아도 되며, 서버에서 클라이언트로 패킷을 전송할 수 있다. 특히나 게임의 특성상 실시간 통신이 중요하다. (한 명의 유저가 움직이거나 행동한 것을 다수의 유저에게 전송해줘야 하기 때문.)

 

웹서버와 게임서버의 공통점과 차이점

 

공통점

  1. 클라이언트로부터의 요청을 받아들이고 처리하여 서비스를 제공한다.
  2. 네트워크를 통해 클라이언트와 상호 작용하며, 특정 프로토콜을 사용하여 통신한다.

차이점

  1. 게임 서버는 웹서버보다 보통 높은 계산 능력과 대역폭이 필요하다.
    MMORPG 게임들의 경우 많은 플레이어와 대규모 게임 세계를 동시에 처리한다. 반면 웹 애플리케이션 서버는 주로 DB 액세스, 사용자 인증, 세션 관리 같은 비교적 간단한 작업을 수행하기에 성능이 크게 요구되지 않는다.
  2. 상태 동기화와 네트워크 대역폭 관리 역시 중요하다. 웹 애플리케이션 서버는 단일 사용자 또는 요청에 의해 독립적으로 작동할 수 있기에 동기화의 필요성은 적다.

 

 

 

 

 

 

참고 링크) https://better-together.tistory.com/60 https://velog.io/@yarogono/%EA%B2%8C%EC%9E%84-%EC%84%9C%EB%B2%84-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-%EA%B2%8C%EC%9E%84-%EC%84%9C%EB%B2%84%EC%9D%98-%EC%B0%A8%EC%9D%B4

'CS' 카테고리의 다른 글

3-way handshake에 대해 알아보자!  (0) 2024.09.26
OSI - 응용 계층  (0) 2024.09.26
OSI 7계층에 대하여  (0) 2024.09.26
OSI 계층 - 전송 계층  (0) 2024.09.12
OSI 계층 - 네트워크 계층  (0) 2024.09.12