728x90
Client-Server, Client-Server model
클라이언트-서버 모델은 리소스 또는 서비스 공급자인 서버와 서비스 요청자인 클라이언트 간 서비스 자원의 작업을 분리해 주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다.
- 종종 클라이언트와 서버는 별도의 하드웨어에서 컴퓨터 네트워크를 통해 통신하지만, 클라이언트와 서버는 모두 같은 시스템에 상주할 수 있다.
- 클라이언트-서버 모델을 사용하는 컴퓨터 응용 프로그램의 예로는 이메일, 네트워크 인쇄 및 월드 와이드 웹이 있습니다.
클라이언트 (Client)
네트워크를 이용하여 서버(Server)측에 서비스 요청을 의뢰하는 측
ex) 웹 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버 등
- 클라이언트는 보통 자원을 공유하지 않지만, 서버에서 콘텐츠나 서비스를 요청한다.
- 클라이언트는 들어오는 요청을 기다리는 서버와 통신 세션을 시작한다.
서버 (Server)
네트워크 상에 구현된 하드웨어 또는 소프트웨어로써 네트워크를 이용하여 클라이언트(Client)측으로부터 서비스의 요청을 받는 측
ex) 웹서버, 네임서버, 메일서버, 인증서버 등
- 서버 호스트는 클라이언트와 리소스를 공유하는 하나 이상의 서버 프로그램을 실행한다.
특징
- 요청-응답의 형태
- 이 모델에서의 통신은 항상 요청-응답의 형태를 취함
- 즉, 클라이언트에 의해서만 시작되고 서버에 의해서는 결코 시작되지 않음
- 통상, 한 가지 작업을 전담한다.
- 프린트 서버, 고속의 그래픽 서버, 데이타베이스 서버, 파일 서버, 네임 서버, 웹 서버 등
- 동시 요구 처리 필요함
- 서버란 많은 다른 클라이언트 들의 동시적인 요구를 처리할 수 있도록 설계된 프로세스이다.
- 클라이언트/서버 환경
- 최종 사용자에게는 많은 장점을 제공하는 반면에, 망 운영자에게는 복잡하고 어려운 문제를 끊임없이 제기하게 됨
- 구성 요소 셋
- Client, Server, Network
- 소프트웨어의 위치
- 변화가 적은 소프트웨어는 클라이언트
- 변화가 잦은 소프트웨어는 서버 측
- 분산처리
- 클라이언트/서버모델은 분산협동처리(distributed cooperative processing)의 특별한 예라고 할 수 있음
- 지능형 동배 간 처리에서 한 서버는 여유 있는 서버에게 계산 부담을 분배함으로써 서버와 네트워크 특성을 기반으로 하는 분산을 최적화할 수 있음
- 서버 이중화
- 통상, 안정성을 위해 서버 이중화가 요구됨
참고
TCP Echo 서버와 클라이언트: Socket 통신 이해하기
728x90
'Computer Science' 카테고리의 다른 글
Glue logic (0) | 2024.08.22 |
---|---|
JSON (0) | 2024.08.16 |
Echo Server (0) | 2024.08.15 |
패킷 통신, TCP (0) | 2024.08.14 |
SQL, Database (0) | 2024.08.12 |