클라이언트와 서버

클라이언트

일반 명사

(전문가의 서비스를 받는) 의뢰인[고객]

고유 명사

[정보·통신 ] 서버 시스템과 연결하여 주된 작업이나 정보를 서버에게 요청하고 그 결과를 돌려받는 컴퓨터 시스템.
클라이언트의 경우 일반 명사로는 의뢰인, 고객 이라는 뜻을 가지고 있습니다.
의뢰인 고객이 주로 하는 행동이 무엇일까요?
음식점을 생각해 보면 이해가 쉽습니다.
여러분이 음식점에 들어 갔다고 한다면 어떠한 행동을 하시나요?
먼저 자리에 앉고, 메뉴판을 본다음 주문을 할 것입니다.
또한 서버가 기본찬 또는 물을 제공해 주지 않았다면 요청할 겁니다.
그리고 음식이 나오면 식사를 하고 마친 뒤, 서버에게 음식 값을 계산 요청하게 될 것입니다.
이때 만약에 여러분이 직접 카운터에 앉아서 계산을 하거나
주방에 들어가서 요리를 하거나 하는 행동은
여러분의 역할에 맞지 않는 행동입니다.
이처럼 컴퓨팅 관계에서도 클라이언트는 자신에 역할에 맞는 행동만 할 수 있으며,
주된 행동은 바로 요청 하는 것 입니다.

서버

일반 명사

(테니스 등에서) 서브하는 사람
<음식을 덜 때 쓰는 기구>

고유 명사

주된 정보의 제공이나 작업을 수행하는 컴퓨터 시스템. 서버는 클라이언트 시스템이 요청한 작업이나 정보의 수행 결과를 돌려준다.
이에 반에 서버는 음식점에서 종업원과 주방장 등 가게의 직원에 가깝습니다.
고객이 요청한 것에 대해서 파악하고 해당 요청에 대해서 최대한 응답 하려고 하죠.
예를들어 클라이언트가 주문을 하면 해당 주문을 받고 음식을 서빙 해 줍니다.
수저나 물을 요구하면 해당 응답에 맞는 결과인 수저, 물을 서빙 합니다.
다만 클라이언트가 올바른 요청이 아닌 올바르지 못한 요청을 한다면 어떻게 대응할까요?
예를들어 편의점에 가서 아이폰을 달라고 하는 터무니 없는 요구 처럼요.
이에 서버는 요청을 거절할 수도 있습니다.
여기에서 중요하게 생각을 하면 좋은 점은 거절 또한 하나의 응답 이라는 것 입니다.

클라이언트 - 서버 관계

클라이언트-서버 관계 (이하 C/S 관계)는 가장 일반적으로 사용되는 구조 중 하나입니다.
클라이언트는 인터넷을 통해 서버에게 요청을 하고,
서버는 해당 요청을 최대한 수용하며, 그에 맞는 응답을 클라이언트에게 보냅니다.

요청-응답 방식

C/S 관계는 요청-응답 방식을 사용합니다. 클라이언트가 먼저 요청하지 않을 경우 서버는 그 어떤 행동도 해주지 않습니다.
마치 여러분이 주문하지 않으면 종업원이 메뉴를 먼저 골라주지 않는 것과 마찬가지 입니다.

1: N 관계

위에서 서버는 음식점의 종업원의 관계와 비슷하다고 이야기 했습니다.
일반적인 식당에서는 효과적으로 운영 하기 위해서 종업원 1명이 다수의 고객을 담당하는 경우가 많습니다.
이는 컴퓨터 관계에서도 마찬가지 입니다.
서버는 자신이 수행할수 있는 만큼의 클라이언트의 요청을 받고 처리를 진행합니다.
이에 서버 1 : 클라이언트 N 의 관계가 성립이 됩니다.

확장성

C/S 관계는 확장성이 매우 뛰어납니다. 새로운 클라이언트를 추가 하거나 서버를 늘리는 것이 상대적으로 쉽습니다. 음식점에서 고객이 부족하면 더많은 홍보와 새로운 고객 유치 수단을 만들면 되고 고객이 많이 늘어나 종업원이 모든 고객을 담당할수 없다면 종업원을 추가로 고용하면 됩니다.
이는 컴퓨터 세계에서도 마찬가지입니다. 클라이언트는 비교적 쉽게 서버로 접근할 수 있으며, 서버의 처리 능력이 부족하게 될 경우 서버 성능을 향상 시키거나, 서버를 새롭게 추가하면 됩니다.