본문 바로가기
Computer Science

Client Server 모델

by songmoro 2024. 8. 16.
728x90

Client-Server, Client-Server model

클라이언트-서버 모델은 리소스 또는 서비스 공급자인 서버와 서비스 요청자인 클라이언트 간 서비스 자원의 작업을 분리해 주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다.

  • 종종 클라이언트와 서버는 별도의 하드웨어에서 컴퓨터 네트워크를 통해 통신하지만, 클라이언트와 서버는 모두 같은 시스템에 상주할 수 있다.
  • 클라이언트-서버 모델을 사용하는 컴퓨터 응용 프로그램의 예로는 이메일, 네트워크 인쇄 및 월드 와이드 웹이 있습니다.

 

클라이언트 (Client)

네트워크를 이용하여 서버(Server)측에 서비스 요청을 의뢰하는 측

ex) 웹 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버 등

  • 클라이언트는 보통 자원을 공유하지 않지만, 서버에서 콘텐츠나 서비스를 요청한다.
  • 클라이언트는 들어오는 요청을 기다리는 서버와 통신 세션을 시작한다.

 

서버 (Server)

네트워크 상에 구현된 하드웨어 또는 소프트웨어로써 네트워크를 이용하여 클라이언트(Client)측으로부터 서비스의 요청을 받는 측

ex) 웹서버, 네임서버, 메일서버, 인증서버 등

  • 서버 호스트는 클라이언트와 리소스를 공유하는 하나 이상의 서버 프로그램을 실행한다.

 

특징

  • 요청-응답의 형태
    • 이 모델에서의 통신은 항상 요청-응답의 형태를 취함
    • 즉, 클라이언트에 의해서만 시작되고 서버에 의해서는 결코 시작되지 않음
  • 통상, 한 가지 작업을 전담한다.
    • 프린트 서버, 고속의 그래픽 서버, 데이타베이스 서버, 파일 서버, 네임 서버, 웹 서버 등
  • 동시 요구 처리 필요함
    • 서버란 많은 다른 클라이언트 들의 동시적인 요구를 처리할 수 있도록 설계된 프로세스이다.
  • 클라이언트/서버 환경
    • 최종 사용자에게는 많은 장점을 제공하는 반면에, 망 운영자에게는 복잡하고 어려운 문제를 끊임없이 제기하게 됨
  • 구성 요소 셋
    • Client, Server, Network
  • 소프트웨어의 위치
    • 변화가 적은 소프트웨어는 클라이언트
    • 변화가 잦은 소프트웨어는 서버 측
  • 분산처리
    • 클라이언트/서버모델은 분산협동처리(distributed cooperative processing)의 특별한 예라고 할 수 있음
    • 지능형 동배 간 처리에서 한 서버는 여유 있는 서버에게 계산 부담을 분배함으로써 서버와 네트워크 특성을 기반으로 하는 분산을 최적화할 수 있음
  • 서버 이중화
    • 통상, 안정성을 위해 서버 이중화가 요구됨

 

참고

C/S

TCP Echo 서버와 클라이언트: Socket 통신 이해하기

Client–server model

 

 

 

 

 

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