Client-Server Model
- 클라이언트가 요청하면 서버가 응답하는 방식으로 작동
- Ex) 사용자가 구글에 검색 → 클라이언트의 요청
- 구글 서버에서 검색 결과를 사용자에게 보냄 → 서버의 응답
- 클라이언트와 서버는 N대 1 구조로 연결
- 한 대의 서버에 다수의 검색자가 서비스를 요청하는 식
- 위와 같은 이유로 서버가 감당할 수 없는 만큼의 요청이 들어올 시, 서버가 다운되는 현상이 발생
구조적 특징
- 클라이언트
- 서비스를 요청하는 시스템, 데스크톱, 노트북, 스마트 폰, 태블릿 등이 이에 해당됨 (사용자가 서버로 요청을 보낼 수 있는 시스템)
- 서버
- 서비스를 제공하는 시스템, DB 서버, 웹 서버, 파일 서버, DNS 서버 등등
- 네트워킹 장치
- 클라이언트와 서버간의 통신을 가능하게 해주는 장치
- 스위치, 라우터, 게이트웨이 등이 이에 해당
작동 방식
- 클라이언트는 네트워킹 장치에 요청을 제출
- 네트워크 서버는 클라이언트의 요청을 수신하고 서버에 전달
- 서버는 클라이언트에 응답을 전달
클라이언트-서버 유형별 구조
- 서버는 클라이언트 요청에 대한 결과를 DB에서 제공하기 때문에 DB가 필요, DB를 관리하는 시스템을 DBMS(Database Management System)라고 함
- 클라이언트 - 서버는 DBMS의 위치에 따라 유형을 나눌 수 있음
2 계층 클라이언트-서버 구조
출처 : https://www.pcmag.com/encyclopedia/term/clientserver
- DBMS가 데이터베이스 서버에 위치, 서버는 클라이언트 요청에 대한 결과를 검색하여 사용자에게 제공할 수 있음
- 이를 통해 필요한 결과만 클라이언트에 응답
3 계층 클라이언트-서버 구조
출처 : https://www.pcmag.com/encyclopedia/term/clientserver
- DBMS가 위치하는 별도의 데이터베이스 서버가 있는 구조
- 앱 서버가 중간에 별도로 존재
클라이언트-서버 구조와 P2P 구조의 차이
- 클라이언트-서버 구조는 중앙화 된 방식을 사용하기 때문에 모든 접근과 데이터를 서버가 관리
- 이와 같은 이유로 보안이 비교적 우수
- 한 번에 너무 많은 요청을 받을 시, 서버가 다운 될 수 있음
- P2P 구조는 탈중앙화 된 방식을 사용하기 때문에 단일 시스템에 의존하지 않고 네트워크를 구축
- 이와 같은 이유로 많은 하드웨어가 들어갈 필요가 없음
- 다른 컴퓨터를 추가하여 네트워크를 확장할 수 있는 것처럼, 확장성이 좋으나 검증되지 않은 사용자와의 통신 과정이 있을 시, 보안에 문제가 발생할 수 있음