클라이언트-서버 네트워크란? P2P와의 차이

클라이언트-서버(Client-Server) 네트워크는 컴퓨터와 컴퓨터가 통신하는 구조입니다. 클라이언트가 요청하면 서버가 응답하는 방식으로 작동합니다. 대부분의 웹 사이트가 클라이언트-서버 구조로 작동합니다. 예를 들어, 사용자가 구글에 검색하는 건 클라이언트 요청이고 구글 서버가 우리에게 검색 결과를 응답하는 건 서버의 응답입니다.

 

클라이언트와 서버는 N 대 1 구조로 연결됩니다. 한 대의 구글 서버에 다수의 검색자가 서비스를 요청하는 식입니다. 이런 이유로 동시에 감당할 수 없는 사용자가 요청을 하면 서버가 감당하지 못하고 뻗어버리기도 합니다.

 

클라이언트-서버 모델은 중앙집중화 방식을 취하고 있습니다. 클라우드를 포함한 데이터센터는 기본적으로 클라이언트-서버 모델로 운영됩니다. 클라우드 사용 비중은 지속적으로 확산되고 있기 때문에 클라이언트-서버 네트워크 방식 역시 앞으로도 꾸준히 사용되지 않을까 싶습니다.

클라이언트-서버 구성 요소

  • 클라이언트

클라이언트는 서비스를 요청하는 시스템입니다. 데스크톱, 노트북, 스마트 폰, 태블릿 등이 있습니다.

  • 서버

서버는 서비스를 제공하는 시스템입니다. 데이터베이스 서버, 웹 애플리케이션 서버, 파일 서버, DNS 등이 있습니다.

  • 네트워킹 장치

네트워킹 장치는 클라이언트와 서버를 연결합니다. 스위치, 라우터, 게이트웨이, 모뎀 등이 있습니다.

클라이언트-서버 모델이 작동하는 방식

1. 클라이언트는 네트워킹 장치에 요청을 제출합니다.

2. 네트워크 서버는 요청을 수신하고 처리합니다.

3. 서버는 클라이언트에 응답을 전달합니다.

 

클라이언트는 서버 연결을 위해 LAN(Local Area Network) 또는 WAN(Wide Area Network)을 이용합니다.

클라이언트-서버 유형별 구조

서비스를 제공하기 위해선 DB가 필요합니다. 서버는 클라이언트 요청에 대한 결과를 DB에서 꺼내와서 제공하기 때문입니다. DB를 관리하는 시스템을 DBMS(데이터베이스 관리 시스템)라고 합니다. 클라이언트-서버는 DBMS의 위치에 따라 유형을 나눌 수 있습니다.

클라이언트-서버가 아닌 구조

클라이언트-서버가 아닌 구조
출처 : https://www.pcmag.com/encyclopedia/term/clientserver

위 예시에서 DBMS는 클라이언트에서 실행되고 있습니다. 파일 서버는 데이터베이스의 원격 저장소 역할을 하고 있긴 하지만 검색을 통해 필요한 데이터를 선별할 수 없습니다. 클라이언트에 모든 레코드를 전송해야 하는 비효율이 발생합니다. 클라이언트-서버 구조라고 평하지 않습니다.

2 계층 클라이언트-서버 구조

2 계층 클라이언트-서버 구조
출처 : https://www.pcmag.com/encyclopedia/term/clientserver

DBMS가 데이터베이스 서버에 위치합니다. 서버는 클라이언트 요청에 대한 결과를 검색할 수 있습니다. 이를 통해 필요한 결과만 클라이언트에 응답합니다.

3 계층 클라이언트-서버 구조

3 계층 클라이언트-서버 구조
출처 : https://www.pcmag.com/encyclopedia/term/clientserver

DBMS가 위치하는 별도의 데이터베이스 서버가 있는 구조입니다. 여기에 애플리케이션 처리를 담당하는 앱 서버가 별도로 존재합니다.

 

클라이언트-서버는 대부분 위에 보이는 2 계층 또는 3 계층 구조로 구성되어 사용됩니다. 

클라이언트-서버 모델 장단점

장점

클라이언트-서버 모델은 사실상 중앙화 된 컴퓨팅 방식을 사용합니다. 서버가 모든 접근과 데이터를 관리하기 때문에 보안상 우수하며 안전합니다. 또한 클라이언트-서버 프로토콜은 플랫폼에 구애받지 않기 때문에 클라이언트와 서버가 같은 운영 체제를 사용하지 않아도 괜찮습니다. 예를 들어, 서버가 리눅스고 클라이언트가 윈도우여도 데이터 교환에 문제가 없습니다.

단점

한 번에 너무 많은 클라이언트가 요청을 하면 서버가 뻗을 수 있습니다. 웹 사이트에 특별한 이벤트가 있을 때 너무 많은 사용자가 몰려서 먹통이 됐던 경험은 한 번쯤 있으실 겁니다. 또 서비스 제공자 관점에서 설치 및 유지 관리 비용이 많이 들어간다고 볼 수 있는데요, 이런 단점의 대안으로도 꼽히는 P2P 네트워크를 설명드리겠습니다.

P2P(Peer to Peer) 네트워크

P2P는 정해진 클라이언트, 서버가 없이 모든 컴퓨터가 서로 데이터를 주고받을 수 있는 네트워크 구조를 의미합니다. 이때 각 컴퓨터를 노드(Node) 또는 피어(Peer)라고 부릅니다. 클라이언트-서버 모델과 비교해 말하자면 모든 컴퓨터가 클라이언트와 서버 역할을 할 수 있는 겁니다.

 

온디스크, 토렌트, 비트코인 거래 등이 대표적인 예시입니다. 온디스크에서는 판매자가 직접 구매자에게 자신이 가지고 있는 영상을 팔죠. 판매자는 자신이 가지고 있는 컴퓨터를 웹 서버로 활용하는 셈입니다. 사이트는 직접 데이터 교환이 가능하도록 하는 프로그램을 제공합니다.

 

‘탈중앙화’를 강조하는 비트코인 역시 P2P 방식으로 코인을 주고받을 수 있습니다. 비슷한 원리로 두 컴퓨터를 연결해주는 프로그램을 사용합니다.

P2P 네트워크 장단점

P2P 네트워크는 말그대로 사용자 간 직접 통신하는 개념이기 때문에 단일 시스템에 의존하지 않고 네트워크를 구축하기 위한 많은 하드웨어가 필요하지 않습니다. 반면 검증되지 않은 사용자와의 통신 과정에서의 안전을 담보하기 어렵습니다. 또 조직적으로 파일을 유지, 관리하는 것도 쉽지 않은 단점이 있습니다.

클라이언트-서버와 P2P 네트워크의 차이

지금까지 설명한 클라이언트-서버 네트워크와 P2P 네트워크의 특징을 보면 두 네트워크 방식의 차이는 명확합니다. P2P 네트워크는 탈중앙화 된 네트워크이고 클라이언트-서버 네트워크는 중앙화 된 네트워크입니다. P2P는 모든 컴퓨터가 요청자이자 응답자이며, 클라이언트-서버는 요청을 하는 역할과 응답을 하는 역할이 구분되어 있습니다.

반응형

댓글

Designed by JB FACTORY