Server

kangmin01·2022년 1월 6일
0

개념

목록 보기
2/2

니꼬의 유튜브 클론 코딩 강의를 듣다가 의문점이 생겼다.

니꼬는 서버는 항상 켜져있는 컴퓨터 같은 거다. 인터넷에 연결돼있고 request를 listening 하고 있다. 서버는 변화를 알아차리기 위해 "나"의 행동을 기다리고 있다. 라고 설명했다.

server는 말 그대로 서브하는 사람, 뭔가를 제공하는 그런 뜻이 있다는것을 예상할 수 있다.

그래서 아 니꼬의 말대로 서버한테 내가 요청을 하는거구나. 그리고 요청을 하면 서버는 답을 주겠구나?? 라고 생각했다.

잘못이해한건 아닌데 내가 어디서 헤매게 되었는가?!!?!?!?!?!?!?!?!?!!?!? 😂

강의의 목적은 서버를 만들어보자!! 로 내 컴퓨터가 서버가 되는 것이다. 근데 중간중간 설명에 예시를 들어 설명할때, 내가 클라이언트인 입장으로 서버에 요청을 하는 설명이 있어서 약간 혼돈이 왔던 것 같다. 관점이 달라지면 내가 서버가 될 수도 있고 아닐 수 도 있으니까. 애초에 내가 서버와 클라이언트 개념을 떠올릴 수 있었으면 절대 안헤맸을텐데.... இ௰இ

  • 내가 서버인 경우 (줄게)
    강의에서는 내가 직접 내 컴퓨터에 서버를 열고 내 서버에 들어가는 것을 설명한다. (맞나,,,??)

  • 내가 클라이언트인 경우 (줘)
    구글에 접속한다고 생각하면, 내가 접속요청을 보내야한다. 내가 접속하고 싶으니까 ㅇㅇ 내가 직접 요청하는것은 아니고 브라우저(크롬)가 대신해서 요청을 보낸다. 누구한테 보내느냐? 구글 즉, 구글 서버? 사이트?에 보내겠지 -----> 서버와 사이트는 밑에서 자세하게 다룬다.


웃긴건 강의 초반에 서버를 만들거다라고 얘기하셨는데도, 내가 서버가 된다는게 뭐야?? 무슨 말이야?? 그게 가능한거야?? 이런 식으로 생각함. 아니 기억력 붕어냐고!!!!!!!! 했던말 바로 까먹는 클라스......

  • HTTP 메시지는 "서버"와 "클라이언트" 간에 데이터가 교환되는 방식을 말한다. IT를 배우지 않아도 통상적을 서버와 클라이언트는 그냥 주는 사람과 받는 사람이라고 알고는 있을거다.

    나는 이때까지 클라이언트로서 서버에게 요청만 해왔었지, 내가 서버가 되어서 뭔가를 제공해본적은 없기 때문에 오해를 했던 것 같다.

구글링을 하다가 엄청 공감되는 글을 발견했다.
https://brunch.co.kr/@olivia0905/9

우리가 항상 클라이언트의 입장에서만 컴퓨터를 사용했기 때문에 서버의 역할을 이해하기 어려웠을거라고 얘기한다. 정말 옳은 말씀이시다!!!!!

내가 Yahoo finance에 접속하면, 현재 주가를 실시간으로 확인이 가능하다. 실시간으로 확인이 가능한건 이 사이트가? 서버가? 24시간 동안 계속 열려있다? 일을 한다? 라고 해석을 하면 된다.


아니 근데 웹사이트랑 서버의 차이는 뭔데.... 다른것 같으면서도 같은것 같으면서도.... 다르게 받아들이긴 했는데, 글을 적다보니 같은 개념인건가 라는 생각이 들어서 마저 정리해야겠다.

Server

  • 서버 : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램 또는 장치를 의미한다.

쉽게말해서 서버는 클라이언트가 요청하는 정보를 받아서 처리하고 응답을 주는 것이다.

서버 컴퓨터는 일반적인 컴퓨터의 구조와 크게 다를것은 없으나, 24시간 동안 쉬지 않고 수많은 요청을 처리하기 위해 고성능을 갖춘것 뿐이다. = 굉장히 비싸다.
대충 검색해보니까 하나? 한대? 에 2백~5백만원 정도 하는것 같다.

위 사진에서 커다란 전체가 하나의 서버는 아니다. 랙(rack)이라고 하는데, 랙 안에 서버 여러대를 함께 설치한 것이다. 랙 안에는 서버만 거치하는 것이 아니라 스위치, 라우터, VPN등 필요한 장치들도 함께 거치된다.

  • 종류 : 서버의 역할은 서비스에 의해 정해진다.
서버서비스
웹 서버웹사이트를 관리하는 서버
DNS 서버도메인을 관리 및 제공하는 서버
이메일 서버이메일을 관리하는 서버
파일서버파일을 관리하고 제공하는 서버
프린터 서버프린터를 제어하는 서버

등등 다양한 서버가 있다. 또한, 서버를 꼭 물리적인 기계로 한정하지는 않는다. 하나의 컴퓨터 안에 웹서버,파일서버,DNS 등을 모두 설치하고 클라이언트에게 제공하게 된다면, 그 컴퓨터는 상황에 따라 웹서버, 파일서버, DNS서버가 되는것이다.

🍩 DNS : 도메인 네임 시스템(Domain Name System) 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다.


웹페이지, 웹사이트, 웹서버 그리고 검색엔진의 차이는 무엇일까?

  • 웹 페이지 : 파이어폭스, 구글 크롬, 오페라, MS 익스플로러나 엣지, 애플의 사파리 같은 웹 브라우저에서 보여지는 문서이다. 이런 것들을 단순히 "페이지"라고 하기도 한다. HTML언어로 쓰인다. 모든 웹페이지는 유일한 주소(URL)를 통해 접근할 수 있다. 유일한 주소로 자신만의 공간을 가진다.

  • 웹사이트 : 다양한 방식으로 그룹으로 묶이거나 연결된 웹 페이지들의 모음이다. 보통 "웹사이트"나 단순히 "사이트"라고 한다.

  • 웹 서버 : 인터넷에 한 개 이상의 웹사이트를 호스팅하는 컴퓨터이다. "호스팅"은 모든 웹 페이지 및 웹 페이지가 지원하는 파일들을 컴퓨터에서 이용할 수 있다는 것을 의미한다. 웹 서버는 유저의 request(요청)마다 호스팅하는 웹사이트에서 유저의 브라우저로 웹 페이지를 보낼 것이다.

  • 검색 엔진 : 구글, 빙, 야후 같은 다른 웹 페이지들을 찾게 도와주는 웹사이트이다. 웹에 존재하는 많은 양의 정보 중에서 사용자가 원하는 정보만을 여러 웹 사이트나 웹 페이지 등에서 검색해 주는 시스템이나 프로그램 등을 통틀어 일컫는 말. 웹 페이지는 다른 웹 사이트에서 찾을 수 있게 도와주는 특별한 종류의 웹 사이트이다.

그렇다면 검색 엔진이 브라우저인가............? 🤔

아니다!!!!!!!!!!!!!!!!!!!!! 😡😡😡

  • 웹 브라우저 : 웹 페이지, 이미지, 비디오 등의 콘텐츠를 수신, 전송 및 표현하는 소프트웨어.
    브라우저는 소프트웨어의 한 조각으로, 웹 페이지를 검색하고 보여준다.

  • 검색 엔진은 사람들이 다른 웹사이트에서 웹 페이지를 찾도록 도와주는 웹 사이트입니다.

❓ 혼란이 생기는 이유 : 처음 브라우저를 실행하면, 브라우저는 검색 엔진의 홈페이지를 보여주기 때문이다. 이것이 의미있는 이유는 브라우저로 가장 하고 싶은 일이 보여줄 웹 페이지를 찾는 것이기 때문이다. 브라우저같은 기반 시설을 검색엔진 같은 서비스와 혼동하지마라!!!!! 이것을 구별하는 것이 상당히 도움이 될 것이라고 사이트에서는 말한다. 그러나 몇몇의 전문가들도 느슨하게 말하므로, 염려하지 않아도 된다.


웹 브라우저? 검색엔진?이 결과 값을 보여주는 과정

1 ) URL창에 웹사이트 주소를 입력한다.
= 웹 브라우저는 DNS 서버로 가서 서버의 진짜 주소를 찾는다!

2 ) 웹 브라우저는 웹 서버에게 웹 사이트의 사본을 보내 달라는 HTTP 메시지를 보낸다. (Request)

3 ) 웹 서버는 요청을 받고 웹 브라우저에게 승인과 동시에 "200 ok"의 메시지를 웹 브라우저에게 보낸다. 그리고 바로 해당 웹 사이트 파일들을 데이터 패킷 덩어리 형태로 웹 브라우저에게 전송한다.

4 ) 웹 브라우저는 웹 서버로 부터 받은 data packet을 잘 규합해서 우리에게 보여준다.

✅ 참고 사이트
1. IT관련용어 [ 서버 ] 란 무엇인가? by 탄탄이의 세상읽기
2. 웹페이지, 웹사이트, 웹서버 그리고 검색엔진의 차이는 무엇일까요? by MDN
3. [서버 가이드북] 1. 서버(Server) 란? by 입코딩
4. 웹 서버란 무엇인가? by MDN
5. [기초] 웹 브라우저란? URL이란?

0개의 댓글