본문 바로가기
서버 (이론과 실습)

[1. 서버란 무엇일까 ]

by shawnbaek 2020. 12. 3.

# 서버에 대해 알기전 맛보기

 위 그림을 보면 Server, Clients, Internet 이 있다. Internet 이 Clients 와 Server 를 연결해주고 있다. 이것을 Clients - Server 모델이라고 한다. 이 세가지는 아주 밀접한 관련이 있는 것을 볼 수 있는데 그럼 Server란 무엇일까?

Server는 종업원으로 번역할 수 있고 Clients는 고객이다. 그러면 단어 Server를 보면 무언가를 제공하는 역할을 한다고 추측할 수 있고 Clients는 제공받은 무언가를 이용하는 존재인 것을 알 수 있다. 이렇게까지 알고있고 아래 그림과 비유를 보고 서버에 대해서 알아보자!

 

# Clients - Server 모델을 식당에 비유해보자

식당에서 고객이 음식을 주문할때부터 음식이 고객에게 제공될때를 생각해보자

  1. 고객이 종업원에게 음식을 주문한다.
  2. 종업원이 주방에 주문받은 음식을 말한다.
  3. 주방에서 냉장고에 재료를 찾는다.
  4. 냉장고에서 음식에 필요한 재료를 가지고온다.
  5. 주방에서 요리 후 종업원에게 준다.
  6. 종업원이 고객에게 주문한 음식을 제공한다.

총 크게 6단계를 거치는 작업이 있다. 일상생활에서 대부분의 서비스 제공은 이와 비슷하게 이루어질 것이다. 그럼 이 단계를 컴퓨터쪽으로 가져가서 서버와 클라이언트에 대해서 제대로 알아보자

 

고객, 종업원, 주방, 냉장고를 Clients, Server, Backend Language, DBMS로 바꿔보자.

  1. Clients에서 Server에 필요한 요청(Request)을 한다.
  2. 만약 Server에서 Clients에서 한 요청을 스스로 처리할 수 있으면 요청에 대한 응답(Response)을 하면되고 스스로 처리하지 못하면 Backend Language에게 준다. (Server에서는 config파일에서 할 수 있는 일인지 아닌지를 판단)
  3. 2번과 똑같이 요청을 처리할 수 있다면 응답 아니면 DBMS로 요청
  4. DBMS에서 DB에있는 데이터를 꺼내서 요청에 대한 응답

컴퓨터에서 요청 응답 방법은 식당에서 음식이 나가는 것과 비슷한 매커니즘을 보여준다. 위 그림을 보면 서버와 클라이언트에 대해서 전체적인 그림과 요청과 응답의 흐름을 볼 수 있다. 여기서 두가지 특징을 알 수 있다.

  1. Clients는 여러명일 수 있기 때문에 서버와 클라이언트는 N:1의 관계를 가질 수 있다.
  • 게임을 예로 들자면 서버는 하나인데 게임에 접속한 사람은 여러명이다.

    1. Server가 클라이언트가 될 수 있다.
  • 서버를 보면 Backend Language(BL)에게 요청을 하고 있기 때문에 이 관계를 보면 서버가 클라이언트가 되고 BL이 서버가 된다.

  • 그렇기 때문에 같은 BL이나 DBMS를 여러 서버가 이용할 수 있다.

# ServerSide 간단 설명

여기서 장황하게 설명하는 것보다 간단히 ServerSide를 구성하는것을 알아보겠다.

  1. Server Programm

위 그림에서는 Server라고 썼는데 서버를 실행하게 도와주는게 Server Programm이다.

Server Programm에는 Apache, Nginx 등이 있다.

  1. Backend Language

보통 다들 컴퓨터에 대해 배울 때 떠올리기 쉬운 언어에 대한 것이다. 서버에 사용하는 언어는 다양한데 Java, Python, Go , Javascript 등이 있다.

  1. DBMS + DB

DBMS는 Data Base Management System 의 약자로써 DB를 관리해주는시스템이다. DB는 데이터를 저장하는 저장소인데 DBMS로 관리해주고 필요한 데이터를 제공할 수 있게 도와준다.

 

 

#참고하자

생활코딩이라는 사이트인데 서버에 대해서 잘모르고 비전공자라면 여기서 강의를 듣는것도 좋다.

opentutorials.org/course/3084/18890

댓글