TIL 42 | 클라이언트-서버 아키텍처

CHAEIN·2021년 8월 1일
0

Network

목록 보기
4/8
post-thumbnail

클라이언트

클라이언트(client)란 네트워크를 이용하여 서버 시스템에 연결된 PC나 스마트폰 등 사용자 측을 말한다. 클라이언트는 서버와 동일한 디바이스 일 수도 있지만 대부분 서비스를 사용하고자 하는 사용자가 지니고 있는 인터넷이 가능한 모든 디바이스를 클라이언트라고 지칭한다.

클라이언트는 서버에서 받아온 데이터를 단말기 화면에 표시하고 사용자의 요청을 서버에 전달하기 위해 웹브라우저를 사용한다. 대표적인 웹브라우저에는 인터넷 익스플로러(IE), 마이크로소프트 엣지(Edge), 구글 크롬(Chrome), 애플 사파리(Safari), 모질라 파이어폭스(Firefox), 오페라(Opera) 등이 있다.

웹브라우저란?
웹 브라우저(web browser)는 사용자의 요청을 받아 웹서버에 전달하고, 응답을 받아 사용자에게 콘텐츠를 보여주는 역할을 하는 브라우저(browser)이다.

서버

서버(server)란 네트워크를 통해 정보나 서비스를 클라이언트에게 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다. 주로 리눅스 등의 운영 체제를 설치한 대형 컴퓨터를 쓴다. 서버용 운영체제(OS)는 시장 점유율 순으로 리눅스, 윈도우, 솔라리스 등이 있다.

서버는 그 역할에 따라 웹(Web) 서버, 와스(WAS) 서버, 디비(DB) 서버 등이 있다.

웹서버 : HTML로 만든 웹 페이지가 들어 있는 파일을 사용자에게 제공하는 서버 프로그램이다.

와스서버 : Web Application Server의 약자로서, 자바(Java) 등으로 만든 웹 응용 프로그램이 설치되어 작동하는 웹 애플리케이션 서버를 말한다. 미들웨어의 일종이다.

디비서버:디비서버(DB server)는 데이터베이스 서버(database server)의 약자로서, 데이터베이스(DB)를 저장 및 관리하는 서버를 말한다. 오라클(Oracle), 마이에스큐엘(MySQL), 엠에스에스큐엘(MS-SQL), 큐브리드(Cubrid) 등 다양한 데이터베이스 관리 시스템(DBMS)으로 만든 데이터가 저장 및 관리된다.

네임서버: 네임서버(name server)는 도메인 이름과 IP 주소를 연결해 주는 서버를 말한다. DNS라고도 한다

클라이언트-서버 아키텍처

데이터를 저장하고 관리하는 서버 부분과 해당 서버에 접속하여 데이터를 열람하는 클라이언트 부분으로 구성된 네트워크 구조를 말한다.

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

대부분의 인터넷 웹 사이트는 서버-클라이언트 구조로 작동한다. 예를 들어 네이버, 구글, 페이스북, 유튜브 등 인터넷 포털 사이트에 방대한 데이터를 저장하고 다수의 사용자들이 개인 PC나 스마트폰 등의 단말기를 사용하여 해당 서버에 접속하여 필요한 정보를 열람할 수 있다. 서버의 경우 하루 24시간, 1년 365일 인터넷에 연결되어 있어야 한다. 반면 클라이언트의 경우 필요할 때만 켜서 인터넷에 접속하면 된다.

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

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

대안
중앙 서버를 두지 않고 데이터를 여러 곳에 분산 저장하는 피투피(P2P) 방식을 이용할 경우 기존 서버-클라이언트 구조의 단점을 해결할 수 있다. 피투피(P2P)란 Peer to Peer의 약자로서, 인터넷으로 다른 사용자의 컴퓨터에 접속하여 각종 정보나 파일을 교환하고 공유할 수 있게 해 주는 서비스이다.

출처
서버-클라이언트
클라이언트 서버 시스템이란 무엇인가?

0개의 댓글