클라이언트-서버 모델(Client-Server Model)
클라이언트-서버 모델은 네트워크상에서 컴퓨터 간 데이터를 주고받기 위한 통신 구조의 한 형태인데요. 특정 역할이 명확하게 분리된 클라이언트(Client)와 서버(Server)로 구성됩니다.
핵심 개념
- 클라이언트(Client)
- 사용자의 요청을 생성하여 서버에게 특정 서비스나 자원을 요청하는 컴퓨터 또는 소프트웨어
- 웹 브라우저, 이메일 클라이언트 등
- 서버(Server)
- 클라이언트의 요청을 수신하고 처리하여 응답을 제공하는 컴퓨터 또는 소프트웨어
- 웹 서버, 메일 서버, 데이터베이스 서버 등
작동 원리
- 요청(Request): 클라이언트가 서버에게 필요한 데이터를 요청
- 처리(Processing): 서버는 해당 요청을 받아 처리
- 응답(Response): 서버가 처리 결과를 클라이언트에게 다시 전달
특징
- 역할의 분리
- 요청자(클라이언트)와 제공자(서버)의 역할이 명확히 구분된다.
- 확장성(Scalability)
- 서버 성능을 높이거나 다수의 서버를 추가하여 성능을 확장할 수 있다.
- 중앙 집중화(Centralization)
- 데이터 관리 및 유지보수가 용이하다.
장점
- 관리 및 유지보수의 용이성
- 자원의 효율적인 분배 및 관리
- 보안 관리 용이
단점
- 서버 장애 시 전체 서비스에 영향
- 서버의 트래픽 집중으로 인한 병목 현상 발생 가능
활용 예시
- 웹 서비스(HTTP 통신)
- 이메일 서비스(SMTP, IMAP)
- 데이터베이스 시스템(SQL 서버)
마치면서
클라이언트-서버 모델은 현대 네트워크 시스템의 기본이 되며, 인터넷상의 거의 모든 서비스들이 이 모델을 기반으로 동작하고 있습니다. 클라이언트와 서버의 명확한 역할 분담 덕분에, 우리는 버튼 한 번으로 전 세계 정보에 손쉽게 접근할 수 있는 시대를 살고 있는 것이지요.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] 프록시(Proxy) 핵심 개념 정리 (0) | 2025.05.04 |
---|---|
[CS기초] 소켓 프로그래밍 핵심 개념 정리 (socket, connect, bind, listen, accept) (0) | 2025.05.04 |
[CS기초] 네트워크 계층 (OSI 7 Layer와 TCP/IP Layer) (0) | 2025.05.02 |
[CS기초] 만화로 보는 Implicit vs Explicit free list을 구분하는 방식 (0) | 2025.05.01 |
[중간정리] 7주차 - 페이징과 세그멘테이션, 메모리 할당 정책, DMA, C언어(포인터), 힙 정렬 (0) | 2025.04.29 |