카테고리 없음

2024-03-21 [서버(Server) vs. 클라이언트(Client)]

Glen_check 2024. 3. 21. 22:53
  • 서버(server) : 서비스를 제공하는 컴퓨터(service provider)

하나의 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 높은 사양의 하드웨어를 갖춘 컴퓨터로

하드웨어의 사양으로 서버와 클라이언트를 구분하는 것은 아니며, 사양의 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버

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

1) 음식점으로 가정하면 클라이언트는 음식을 주문하고, 서버는 주문을 받고 고객 요청을 확인한 후 음식을 제공

개발 분야로 적용해보면 [클라이언트 코드] / [서버 코드]로 분류

웹 개발에서 클라이언트는 크롬이나 사파리와 같은 웹 브라우저

브라우저가 우리에게 웹사이트를 보여주기 위해서는 HTML, CSS, JS 세 가지가 필요한데,

다음과 같은 코드들이 내 컴퓨터에 있으면 바로 내 컴퓨터로 띄울 수 있으나, 생각해보면 해당 코드들이 우리들의 컴퓨터 내 있을 수 없습니다.

웹사이트를 보여주기 위한 코드는 바로 서버에서 옵니다! 서버도 쉽게 말해 하나의 컴퓨터인데요.

예시로 구글이 클라이언트에게 ‘유튜브’ 사이트를 보여주기 위해서는 구글이 유튜브를 위해 항상 켜놓고 있는 서버 컴퓨터가 있다고 생각하시면 쉽습니다.

 

2) 순서대로 살펴보면,

(1) 클라이언트인 우리가 (우리의 웹브라우저) 유튜브에 접근하기 위해서 서버 컴퓨터에 “유튜브 사이트를 주세요!” 요청합니다.

(2) 잠깐, 우리는 어떤식으로 서버 컴퓨터에 요청을 할까요?

웹 브라우저 주소 창에 ‘www.youtube.com’을 검색하면 이 주소를 DNS에서 찾아 보는데요,

여기서 DNS는 ‘Domain Name System’으로 DNS에서는 우리가 입력한 주소가 어떤 숫자들을 가르키고 있고, 이것은 서버 컴퓨터의 IP주소를 의미합니다.

우리가 일일이 서버 컴퓨터의 주소를 기억하기 어렵기 때문에 우리는 IP주소가 아닌, 도메인을 입력하는 것이고, 해당 도메인을 DNS가 서버 컴퓨터의 IP주소로 변환한다고 생각해주시면 됩니다!

(3) 해당 IP주소가 서버 컴퓨터의 위치를 찾고, IP주소에 해당하는 서버 컴퓨터에게 “유튜브 주세요!”를 요청합니다.

(4) 그러면 해당 사이트를 띄우기 위해 서버 컴퓨터는 HTML, CSS, JS코드를 클라이언트에게 전달하며,

클라이언트는 모두가 아는 유튜브화면을 볼 수 있습니다.