저번 HTTP프로토콜 헤더 관련 글과 TCP/IP 데이터 송수신 관련 학습을한 이유는 근본적으로 웹 애플리케이션 구성에 대한 기반을 다지기 위함이였다. 결국은 애플리케이션을 관리하기 위한 틀이라고 생각을 해본다.
결국 서버와 클라이언트에 대해서 알아야지만 WEB과 WAS그리고 DB를 좀 더 쉽게 이해 할 수 있다고 생각이 든다.
그렇기 때문에 오늘은 서버, 클라이언트와 웹 서비스에 대해서 학습 해보겠다.
서버와 클라이언트
네트워크에서 데이터를 주는 컴퓨터를 서버, 데이터를 요청하는 컴퓨터를 클라이언트라고 한다. 컴퓨터가 데이터를 주고 받는 목적은 특정한 기능, 즉 서비스를 제공하고 사용하기 위한 것이다. 따라서 이름 그대로 네트워크로 연결된 컴퓨터 중 서비스를 제공하는 쪽을 서버라고 부르고 그 서비스를 요청하고 받는 쪽(사용하는 쪽)을 고객, 즉 클라이언트라고 부른다.
클라이언트는 서비스가 필요한 경우 네트워크에 접속해 서버에게 서비스를 요청하고 받으면 되지만, 서버는 언제 어떤 클라이언트가 요청을 해도 서비스를 제공할 수 있게 준비하고 있어야 한다. 따라서 서버는 네트워크 전체를 모니터링하며 클라이언트와의 연결을 관리해야 한다. 24시간 내내 네트워크를 관리하며 다수의 클라이언트에게 서비시를 제공해야 하는 서버는 큰 용량을 가진 고성능 컴퓨터인 경우가 많다.
한 대의 서버에 다수의 클라이언트가 접속하여 서비스를 이용할 수 있는 방식을 서버 클라이언트 구조 라고 한다.
서버 클라이언트 구조 방식은 다수의 사용자들이 공동으로 사용하는 데이터를 서버라는 중앙 컴퓨터에 저장하고 관리함으로써 수 많은 클라이언트의 동시적인 요구를 효율적으로 처리할 수 있습니다.
또한 수많은 클라이언트와 서버가 서비스를 요청하고 받을 때 지켜야할 규칙적인 프로토콜을 따르기만 하면 컴퓨터의 종류나 사양에 관계없이 필요한 데이터를 주고 받을 수 있다.
애플리케이션이 결정하는 서버와 클라이언트
서버와 클라이언트는 컴ㅍ터의 역할에 따라 구분이된다. 그러면 컴퓨터의 역할은 누가 결정하는가.
컴퓨터의 역할은 컴퓨터에 설치된 애플리케이션이 결정한다. 서비시를 제공하는 애플리케이션이 설치된 컴퓨터가 서버, 서비스를 요청하고 받는 애플리케이션이 설치된 컴퓨터가 클라이언트 역할을 한다.
애플리케이션과 데이터 통신
PC에서 인터넷 익스플로러나 크롬 같은 웹 브라우저를 사용하고 스마트폰으로 구글 앱이나 네이버 앱을 사용하여 검색할 수 있는 것은 PC와 스마트폰에 설치된 애플리케이션이 클라이언트가 되어 세상 어딘가 존재하는 구글과 네이터의 서버가 제공하는 서비스를 이용하는 것입니다.
따라서 네트워크를 통해 데이터를 주고받은 주체는 결국 애플리케이션이다. 이로 인해 서버나 클라이언트는 애플리케이션을 동작시키는 컴퓨터를 의미하기도 하지만 애플리케이션 자체를 의미하는 말로 쓰이기도 한다.
참고자료
'학습' 카테고리의 다른 글
XML(Extensible Markup Language) 이란 ? (0) | 2023.04.27 |
---|---|
GET 과 POST의 차이 (0) | 2023.04.25 |
TCP/IP 데이터 통신 (0) | 2023.04.24 |
HTTP 프로토콜 개념 (0) | 2023.04.24 |
Spring Scheduler란? (0) | 2023.04.17 |