클라이언트(Client)와 서버(Server)란?

hiio420.official·2025년 5월 20일

정리

목록 보기
1/5

1. 클라이언트(Client)와 서버(Server)란?


개발을 하다보면 여러 가지 용어들을 많이 접하게 됩니다. 비전공자로 시작한 저는 처음에는 정확히 정의 하기 어려운 용어들도 많았습니다.

처음 웹 개발을 시작했을때 클라이언트 와 서버라는 말을 들었을 때는 막연하게만 이해하고 넘어갔습니다. 다시 한번 정의해 볼 겸 그동안 조사했던 정보와 제가아는 정보에 대해 남겨보려고 합니다.

클라이언트와 서버에 대한 용어를 확인해 보기전에 Client-Server Model에 대해 읽어 보면 좋을거 같습니다.


클라이언트(Client)

컴퓨터 네트워크에서 클라이언트(client)는 네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스를 말한다.
출처:위키

Xerox PARC의 연구원들이 발표한 논문 "Separating Data From Function in a Distributed File System"에서 "클라이언트"라는 용어가 처음 사용되었습니다. 이 논문에서는 분산 파일 시스템에서 서비스를 요청하는 프로그램을 "클라이언트"로 정의하였습니다. 출처

클라이언트의 역할은 주로 서버 측에 데이터를 요청해 응답 받아 사용하며, 소프트웨어 또는 장치를 모두 말합니다.

제 경험에서는 주로 클라이언트라는 용어를 사용했을 때는 웹 또는 사용자 로컬 PC를 지칭하는 경우가 많았습니다.

클라이언트가 서버에 데이터를 요청하기위해서 사용하는 방법은 무엇일까요? 흔히들 REST API 나 비동기 요청 등의 용어를 많이 들어 봤을 것 입니다.

보통 요청 방법에 따라 HTTP, RPC, WebSocket, SOAP, REST, graphQL등이 있다고 알고 있습니다. 요즘은 LLM AI를 위해 사용하는 MCP 서버 클라이언트도 관심이 많아지는 것 같습니다.

기회가 된다면 이 방법들에 대한 블로그를 쓰면 좋겠다는 생각도 합니다.


서버(Server)

서버(영어: server, 문화어: 봉사기/奉仕器)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다. 출처:위키

"서버"라는 용어는 대기열 이론(queueing theory)에서 유래하였으며, 1969년에 발표된 RFC 5 문서에서 "서버-호스트(server-host)"라는 표현으로 사용되었습니다. 출처

서버는 클라이언트에서 요청한 정보에 따라 데이터 또는 서비스를 응답하는 프로그램 또는 장치라고 합니다.

제 경험에서는 "서버" 라고만 지칭하면 현재 사용되고 있는 물리적인 서버 장치를 말하는 경우가 많았습니다. 특정 소프트웨어나 서비스를 지칭할 때는 "DB"+"서버", "WAS"+"서버", "WEB"+"서버" 라고 서버 앞에 명칭을 붙여 부르는 경우가 많았습니다. 이런 소프트웨어들이 하나의 물리적인 또는 Cloud 가상 인스턴스에 있을 수도 있고 소프트웨어 별로 여러 서버 장치들을 구성한 인프라를 구축하기도 하는 거 같습니다.

인프라 구축이나 서버 운영적인 부분은 아직도 공부해야할 게 많은거 같습니다.


2. 클라이언트와 서버의 활용

클라이언트와 서버는 어떤 식으로 사용될까요?

일반적으로는 웹/앱 애플리케이션을 볼 수 잇습니다.
웹 브라우저는 앱 애플리케이션이 클라이언트역할을 하고 RESTful API 방식을 통해서 서버와 요청-응답 형식으로 데이터를 사용자에게 보여주는 방식입니다.

또 게임 같은 경우에는 Unity나 Unreal Engine 이 클라이언트 역할을 하고 게임 서버에 대해서는 잘 모르지만 photon이 서버 역할을 하면서 활용됩니다.

0개의 댓글