클라이언트와 서버 빠르게 개념잡기

Heejeong Choi·2021년 10월 3일
7
해당 글은 '자바의 정석 기초편'을 읽고 제 생각을 바탕으로 작성되었습니다.

우선, 클라이언트와 서버의 모델을 알아보기 이전에 이러한 구조를 갖고 있는 네트워킹에 대해서 먼저 알아보려고 합니다.

네트워킹(Networking)이란?

IT계열에서 네트워킹의 개념은 '두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는것'을 네트워킹이라고 한다.

현재에는 셀 수도 없을 만큼 많은 수의 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있고 인터넷을 통해 다양하고 방대한 양의 데이터를 공유하는 것이 가능해진 것👍🏼 이러한 네트워킹에 따라 메신저나 온라인게임과 같은 인터넷을 이용해 다양한 네트워크 어플리케이션이 많이 생겨난 것이다.

클라이언트와 서버

서버(server) : 서비스를 제공하는 컴퓨터(service provider)

  • 다수의 클라이언트에게 서비스를 제공하기 때문에 고사양의 하드웨어를 갖춘 컴퓨터이지만, 하드웨어의 사양으로 서버와 클라이언트를 구분하는 것은 절대 아니며, 사양의 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버라고 한다.

클라이언트(client) : 서비스를 사용하는 컴퓨터(service user)

  • 서버와 이어진 모든 기기(컴퓨터의 경우 WIFI / 모바일은 모바일 네트워크)와 단말기에서 이용하는 웹에 접근하는 SW이며, 주로 서버에 요청을 보내고 응답을 받는 역할을 한다.

서비스(Service)

  • 위에서 본 것 처럼 서버는 클라이언트로부터 요청을 받아 응답을 내려주고 클라이언트는 서버에 데이터를 요청하고 응답을 받는다. 재화와 서비스의 개념에서 가져와 서비스라고 일컫는다.

  • 서비스의 종류에 따라 파일 서버/메일 서버/어플리케이션 서버 등으로 나눠진다.

서버와 클라이언트는 어떻게 연결하지?

  • 앞에서 보았던 개념처럼, 서버가 서비스를 제공하기 위해서는 서버 프로그램이 있어야하고, 클라이언트가 서비스를 제공받기 위해서는 서버 프로그램과 연결할 수 있는 클라이언트 프로그램이 존재해야 한다.

그러면 연결하는 방식은 한가지뿐인가?

기본적으로 서버 프로그램을 따로 두는지 또는 하나로 합친것인지 나뉜다.

  • 서버기반 모델(server-based model) : 전용서버를 두는 것
    - 안정적인 서비스 제공 가능
    - 공유 데이터의 관리와 보안이 용이
    - 서버구축비용과 관리비용이 든다는 단점
  • P2P 모델(peer-to-peer model) : 별도의 전용 서버없이 각 클라이언트가 서버역할을 동시에 수행하는 것
    - 서버구축 및 운용비용을 아낄 수 있는 장점
    - 자원의 활용을 극대화 할 수 있음
    - 자원의 관리가 어려움
    - 보안이 취약하다는 단점

웹서비스에 대해서 조금 더 자세히

  • 웹 서버(Web Server) : 웹 서버에 각종 정보를 담은 웹 페이지를 저장한 후 이러한 서버의 웹 페이지를 요청하는 클라이언트에게 제공한다. 구글, 네이버 등 수많은 회사들이 웹 서버를 만들어 웹서비스를 제공하고 있다.

  • 웹 브라우저(Web browser) : 웹서비스 사용자는 웹 브라우저라는 전용 클라이언트 어플리케이션으로 웹 서버가 제공하는 서비스를 이용한다. 웹 브라우저가 웹 서버에게 필요한 페이지를 요청하면 웹서버가 이에 대해 응답해 웹페이지를 보내주고 웹 브라우저가 이 웹페이지를 받아 사용자에게 보여주는 역할


쉽게 이해하는 네트워크 4. 서버, 클라이언트와 웹 서비스
server-client model

다음 포스팅에서는 IP주소에 대해서 자세히 공부하고 조사해 볼 생각입니다. 긴 글 끝까지 읽어주셔서 감사합니다!😉
profile
Welcome to my velog! I love learning something new to build up my ability in development field. I don't think it is shame not to know, but it is shame to pretend to know about something you don't know.

0개의 댓글