클라이언트 - 서버 모델

이도윤·2022년 12월 13일
0

클라이언트 - 서버 모델

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


구성

서버
서버(server)란 통신망 상에서 다른 컴퓨터에 대하여 회선, 디스크 장치 등에 대한 접속을 제어하는 관리 소프트웨어 또는 컴퓨터를 말한다. 서버는 그 역할에 따라 웹(Web) 서버, 와스(WAS) 서버, 디비(DB) 서버 등이 있다.

클라이언트
클라이언트(client)란 네트워크를 이용하여 서버 시스템에 연결된 PC나 스마트폰 등 사용자 측을 말한다. 클라이언트는 서버에서 받아온 데이터를 단말기 화면에 표시하고 사용자의 요청을 서버에 전달하기 위해 웹브라우저를 사용한다. 대표적인 웹브라우저에는 인터넷 익스플로러(IE), 마이크로소프트 엣지(Edge), 구글 크롬(Chrome), 애플 사파리(Safari) 등이 있다.


구조

서버와 클라이언트는 1:N 구조로 연결되어 있다.
즉, 한 대의 서버에 다수의 클라이언트가 접속하여 서비스를 이용한다.


작동 방식

  1. 클라이언트는 네트워킹 장치에 요청을 제출
  2. 네트워크 서버는 요청을 수신하고 처리
  3. 서버는 클라이언트에 응답을 전달

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


장점

  • 서버-클라이언트 구조는 매우 효율적인 네트워크 구조
  • 다수의 사용자들이 공동으로 열람·복사·수정·관리하는 데이터를 여러 곳에 분산시키지 않고 단일한 중앙 서버에 저장하여 관리함으로써 데이터의 유일성과 통일성을 보장
  • 탈중앙 분산 저장 방식에 필요한 합의 알고리즘 불필요
  • 중앙 서버만 관리하면 되므로 분산 저장 방식에 비해 네트워크 구성 및 유지관리 비용 최소화

단점

  • 서버-클라이언트 구조는 해킹 공격과 디도스 및 랜섬웨어 공격 등에 취약
  • 모든 중요 데이터가 중앙 서버에 집중되어 있기 때문에 해커가 중앙 서버에 침투하여 데이터를 위변조할 경우 모든 클라이언트들에게 잘못된 정보가 전달
  • 이를 방어하기 위해 방화벽, 웹 방화벽, 침입탐지시스템(IDS), 침입방지시스템(IPS) 등 다양한 보안 제품을 설치하고, 서버에 저장된 데이터를 복사하여 별도의 저장장치에 백업을 해야 하기 때문에 추가적인 비용 소모

대안

  • 중앙 서버를 두지 않고 데이터를 여러 곳에 분산 저장하는 피투피(P2P) 방식을 이용
  • 피투피(P2P)란 Peer to Peer의 약자로서, 인터넷으로 다른 사용자의 컴퓨터에 접속하여 각종 정보나 파일을 교환하고 공유할 수 있게 해 주는 서비스
  • 음악 파일 공유를 위한 냅스터(Napster), 소리바다 등과 동영상 파일 공유를 위한 토렌트(Torrent), 암호화폐인 비트코인과 이더리움, 블록체인(blockchain) 기술, 분산 버전 관리(DVC) 시스템 등

P2P는 모든 컴퓨터가 요청자이자 응답자이며, 클라이언트-서버는 요청을 하는 역할과 응답을 하는 역할이 구분


클라이언트 / 서버 통신방식의 발전 과정




profile
Java 백엔드 개발자

0개의 댓글