본문 바로가기

WEB

WEB(2) : 웹의 역사와 웹 서버(Web Server), 웹 호스팅(Web hosting)

공부에 대해서 오해하고 있던 것이 있다.
중요한 건 어렵고 쉬운 건 사소하다는 것이다, 쉬운 건 시험에 나오지 않기 때문이였다.
어려운 것은 중요하고, 쉬운 것은 중요하지 않을까? 꼭 그런것은 아니다.

우리가 처음에 배우는 것은 너무나 쉽지만 제일 중요한 것들이다.
가장 자주 사용되는 부품이면서, 부품들을 결합해서 새로운 완제품을 만들어내는 가장 자주 사용되는 결합방법 이기 때문이다.

뒤에 있는 것이 더 어렵고 복잡하고 대단해 보이겠지만 그렇지 않다.
앞에서 배우는 것들을 합성해서 결국 뒤의 것들이 만들어진다. 뒤에 있는 것은 어떤 특수한 경우에는 필요하지만 응용하기가 쉽지 않다. 앞의 것들을 응용하면 수많은 것들을 만들어낼 수 있다.

-유튜브 '생활코딩' 中

 

웹의 역사

이제 우리는 우리가 만든 전자문서를 전 세계의 누구나 컴퓨터, 인터넷, 웹이 있다면 자신의 컴퓨터에 있는 문서인 것처럼 보는 방법을 알아야 한다.

 

우선 웹의 역사를 먼저 살펴보자. 웹이 처음 시작하던 때를 보면 웹의 본질을 이해할 수 있을 것이다.

인터넷과 웹은 어떻게 처음 세상에 등장했을까?

 

인터넷과 웹은 서로 다르다. 인터넷이 도시라면 웹은 도시 위의 건물이며

인터넷이 운영체제라면 웹은 운영체제 위의 프로그램 하나이다.

인터넷이라는 전체 안에는 다양한 프로그램 들이 있고, 그 중 하나가 웹 이라는 뜻이다.

 

1960년과 1990년에는 정보기술 역사 상 중요한 사건이 두 가지가 있었다.

1960년에는 핵이 화두였다. 인류는 핵 전쟁을 치룬 직후였고, 핵에 대한 공포감이 컸으며

핵 공격에도 견딜 수 있는 통신 시스템의 필요성이 대두되며 인터넷이 탄생되었다.

수 많은 통신장치들이 분산해서 전화국과 같은 역할을 하기 때문에 점 하나가 사라져도 나머지 점들이 역할을 

수행할 수 있는 통신 시스템이 인터넷이다.

구글, 페이스북과 같은 거대한 정보 기업들이 있지만 이 정보기업들을 묵묵히 지탱하는 인프라가 바로 인터넷이다.

1960년에 이렇게 인터넷이 만들어지고 전 세계적으로 천천히 확산된다. 사람들은 이 시간동안 인터넷의 존재를 몰랐고, 회사나 연구소와 같은 기관에서 사용하던 통신 시스템이였다. 

하지만 1990년 웹이 출현하면서 완전히 새로운 길을 걷게 된다.

 

웹은 스위스에서 처음 출현하게 된다.

스위스 제네바의 물리학 연구소(유럽입자 연구소)는 LHC 장치를 가지고 있었으며, 아주 작은 입자를 볼 수 있는 장치였다. 이 장치로부터 신의 입자 힉스의 존재를 확인할 수 있었다.

https://ko.wikipedia.org/wiki/%ED%9E%89%EC%8A%A4_%EB%B3%B4%EC%86%90

 

힉스 보손 - 위키백과, 우리 모두의 백과사전

힉스 보손(영어: Higgs boson)은 입자물리학의 표준 모형이 제시하는 기본 입자 가운데 하나이다. 힉스 보손은 현대 물리학이 우주를 설명하는 데 있어 중요한 역할을 담당하고 있어, 존재 여부를

ko.wikipedia.org

 

 

1980년~1990년에는 사람들에겐 정보라는 표현도 익숙치 않았다.

유럽입자 연구소는 정보의 바다에서 허우적대는 지구와 같은 곳이였고, 연구소의 '팀 버너스리' 라는 프로그래머는 연구소에서 Enquire라는 프로그램을 만들었는데 1990년 연구소에 인터넷이 들어오면서 팀 버너스리는 자신의 과제에 인터넷이라는 것을 합성한다.

1990.10 웹페이지를 만드는 편집기를 만든다

1990.11 최초의 웹인 world wide web을 만든다.

1990.12 웹 서버라는 프로그램을 만들고 주소를 부여한다.

info.cern.ch 웹의 메소포타미아

이렇게 인터넷이 등장한 1960년 이례로 엘리트들만의 전유물이였던 인터넷은 1990년 웹을 만나면서 대중화의 길을 걷게 된다. 인터넷과 웹은 빠른 속도로 동반 성장하며 지금에 이르게 되었다.

 

 

인터넷의 동작 원리

인터넷이 동작하기 위해서는 컴퓨터가 최소 2대 있어야 한다.

팀 버너스 리는 두 대의 컴퓨터를 장만하여 한 대는 웹 브라우저, 한 대는 웹 서버라는 프로그램을 설치한다.

그리고 이 두 대의 컴퓨터는 인터넷을 통해 연결되었다.

웹 서버가 깔려있는 컴퓨터는 address1.com 주소를 가지고 있고 자신의 하드디스크 디렉토리 안에 index.html 파일이 저장되어 있다.

 

웹 브라우저의 주소창에 address1.com/index.html 주소를 입력하면 웹 브라우저가 설치된 컴퓨터는

인터넷을 통해 전기적인 신호를 address1 주소의 컴퓨터에게 보낸다.

그 신호 안에는 index1.html 파일을 원한다는 정보가 담겨있다. 

웹 서버 프로그램은 하드디스크에서 index.html 파일을 찾아서 웹 브라우저가 설치되어 있는 컴퓨터에게 다시 전송한다.

그 신호 안에는 index.html 파일 안에 저장되어 있는 코드가 포함되어 있다.

 

웹 브라우저가 설치된 컴퓨터와 웹 서버가 설치된 컴퓨터가 서로 정보를 주고 받는다.

웹 브라우저가 설치된 컴퓨터는 정보를 요청한다, 이를 클라이언트라고 한다.

웹 서버가 설치된 컴퓨터는 정보에 응답한다, 이를 서버라고 한다.

두 대의 컴퓨터가 정보를 주고 받을 때 각각의 역할에 따라 이렇게 표현하게 된다.

 

EX) 만약 우리가 만드는 시스템이 게임이고, 그 게임이 인터넷에 연결되어 있다면

사용자들이 게임을 하는 컴퓨터의 프로그램을 게임 클라이언트,

게임 회사가 가지고 있는 서버 컴퓨터의 프로그램을 게임 서버라고 부른다.

 

웹 서버를 사용한다는 것은?

내 컴퓨터에 있는 문서를 전 세계의 누구나, 웹 브라우저를 깔면 가져와서 볼 수 있다는 말이다.

방법에는 두 가지가 있다.

  • 자신의 컴퓨터에 웹 서버를 직접 설치한다 (web server)
  • 이런 일을 대행해주는 업체들에게 맡긴다(web hosting)

 

웹 호스팅

우리가 직접 웹 서버를 운영하는 것은 쉽지 않은 일이다.

우선 컴퓨터가 있어야 하고 항상 켜져있어야 한다. 

또한 웹 서버라는 프로그램을 배워서 설치해야 하고 인터넷을 통해 웹 서버에 연결할 수 있도록 여러 조치를 해야 한다.

쉽지 않은 일이라 이런 일들을 대신 해주는 회사들이 있다.

인터넷에 연결되어 있는 컴퓨터 한 대, 한 대를 host 라고 하고,

웹 서버를 운영하기 위한 컴퓨터인 host를 빌려주는 회사를 web hosting업체라고 한다. (웹 서버를 제공해주는 회사들)

유명한 웹 호스팅 업체에는 github이 있는데, 홈페이지를 운영할 수 있는 웹 서버를 무료로 제공해준다.

깃 허브에서 주는 주소로 내가 만든 웹사이트를 누구에게나 해당 주소로 접속할 수 있게 만들어준다.

 

그 외 neocities.org, Amazon S3, Google cloud storage, Azure blob 등이 있다.

 

 

 

IP Address

한 대의 컴퓨터에는 웹 서버가 설치되어 있고, 그 컴퓨터의 디스크에는 index.html 파일이 있다.

우리는 웹 브라우저를 통해서 웹 서버에 접속해 index.html 파일을 전송 받아 화면에 출력하고 싶다.

웹 브라우저가 웹 서버에게 요청을 할 때는 웹 서버의 주소인 IP Adress가 필요하다.

이 IP주소를 통해 파일을 전송받을 수 있다.

출처 https://www.youtube.com/watch?v=yBPyzaccbkc&list=PLuHgQVnccGMDZP7FJ_ZsUrdCGH68ppvPb&index=17

 

현재 자신이 사용하는 컴퓨터의 IP주소는 네트워크 및 공유센터에서 확인할 수 있으며

컴퓨터의 IP주소가 192.168.219.100 이라면 웹 서버는 192.168.219.100이며 웹 브라우저를 통해 해당 IP로 접속이 가능하다.

127.0.0.1은 모든 컴퓨터가 자신을 가리킬 때 사용하는 Internet Protocol Address 이다.

 

 

 

 

 

 

해당 게시글은 '생활코딩' 님의 MySQL 강의를 참고하였습니다.

출처 https://www.opentutorials.org/course/3084

 

 

'WEB' 카테고리의 다른 글

WEB(5) : Java Script - 배열, 함수, 객체  (0) 2021.12.21
WEB(5) : Java Script - 조건문, 반복문  (0) 2021.12.21
WEB(4) : Java Script - event, querySelector()  (0) 2021.12.21
WEB(3) : CSS  (0) 2021.12.19
WEB(1) : HTML  (0) 2021.12.14