질문
인터넷과 웹은 같을까요?
인터넷이 도시면, 웹은 도시 위의 건물 하나입니다
인터넷이 도로면 웹은 도로 위를 달리는 자동차 한대입니다
인터넷은 전세계의 컴퓨터가 물리적으로 연결된 거대한 네트워크 전체를 의미합니다. 반면 웹은 인터넷 위에서 동작하는 하나의 서비스 중의 하나라고 할 수 있습니다. 마치 인터넷이 전력망 위에서 동작하는 하나의 서비스 중의 하나인 것처럼요.
역사적으로도 두 기술은 무려 30년의 터울을 가지고 있습니다. 웹이 동작하는 원리를 이해하기 위해서는 인터넷의 원리를 조금을 알고 있어야 합니다. 또 웹을 알고 있으면 인터넷의 원리를 이해하기 쉽습니다. 이번 기회에 인터넷의 가장 중요한 원리를 알아봅니다.
가장 작은 인터넷
인터넷을 우리가 직접 만든다고 생각해봅시다. 최소 몇대의 컴퓨터가 필요할까요?
2대가 필요합니다. 한대에는 정보가 저장 되어 있고, 다른 한대는 정보를 열람하죠. 이때 정보를 열람하는 컴퓨터, 다시 말해서 웹브라우저가 설치된 컴퓨터를 클라이언트(고객)라고 하고, 정보를 제공하는 컴퓨터를 서버(제공자)라고 합니다. 한국어로는 갑을 관계라고 할 수 있죠. 인터넷 위에서 동작하는 모든 시스템은 서버와 클라이언트라는 관계를 가지고 있습니다. 이 관계를 이해하는 것이 인터넷을 이해하는 기본입니다.
웹클라이언트(웹브라우저)와 웹서버
웹브라우저를 낮설게 생각하는 사람은 없을 것입니다. 하지만 웹서버는 왠지 추상적으로 느껴지죠? 당연합니다. 직접 사용해본적이 없거든요. 하지만 웹서버도 웹브라우저처럼 설치해서 사용하는 소프트웨어에 불과합니다. 다만 냉장고처럼 항상 켜 있다가, 요청이 들어오면 적당한 웹페이지를 찾아서 전송해주는 역할을 합니다.
웹브라우저와 웹서버가 어떻게 정보를 주고 받는지 알아봅시다. 아래처럼 브라우저에 주소를 입력했다고 해봅시다.
웹브라우저가 설치된 클라이언트 컴퓨터를 통해서 opentutorials.org에 해당하는 컴퓨터로 신호를 전송합니다. 신호에는 index.html이라는 파일의 내용을 알려달라는 내용이 포함되어 있습니다.
그럼 인터넷을 거쳐서 opentutorials.org의 서버 컴퓨터에 신호가 도착합니다. 서버 컴퓨터에는 웹서버가 설치 되어 있습니다. 웹서버는 웹브라우저처럼 설치해서 사용하는 평범한 프로그램입니다. 도착한 신호는 웹서버에 전달되고 웹서버는 서버 컴퓨터의 저장장치(하드디스크 혹은 SSD)에 저장된 index.html 파일을 읽어서 그 내용을 클라이언트 컴퓨터로 다시 전송합니다.
클라이언트 컴퓨터는 웹브라우저에게 index.html의 내용을 전달합니다. 웹브라우저는 이 파일의 내용을 해석해서 웹페이지를 화면에 출력합니다.
웹서버 제품들
웹브라우저에 해당하는 구체적인 제품으로는 ie, edge, firefox, chrome가 있습니다. 마찬가지로 웹서버에 해당하는 구체적인 제품으로는 apache, nginx, IIS와 같은 제품들이 있습니다. 아래는 netcraft에서 발표한 웹서버 제품들의 시장 점유율입니다.
웹서버 사용하기
여러분의 컴퓨터를 웹서버로 이용할 수 있습니다. apache, nginx, IIS와 같은 웹서버를 설치하면 됩니다. 여러분의 컴퓨터도 충분히 웹서버로 이용할 수 있습니다.
하지만 우리는 쉬운 방법을 이용할 것입니다.
Hosting
Host는 인터넷에 연결된 컴퓨터를 의미합니다. 웹서버를 운영하기 위해서는 서버로 사용할 컴퓨터가 당연히 인터넷에 연결되야 합니다. 그런데 웹서버는 항상 켜져있어야 하고, 누구나 접속할 수 있어야 합니다. 여러분의 노트북을 그렇게 사용하기는 어렵죠. 그래서 웹서버를 제공하는 서비스들이 있는데, 이런 서비스를 (웹)호스팅이라고 합니다.
BitBalloon
BitBalloon은 html을 호스팅해주는 서비스입니다. 회원가입 없이도 호스팅이 가능합니다. 사이트를 방문합니다.
위의 그림처럼 디렉토리를 드래그해서 업로드 하면 됩니다.
업로드가 끝나면 자동으로 주소가 생성됩니다. 그 주소로 방문하면 웹사이트가 서비스 되기 시작합니다.
http://clerk-deer-25854.bitballoon.com/
혹시 BitBalloon이 동작하지 않으면 아래 서비스도 비슷한 기능을 제공합니다.
https://neocities.org/
시간에 대한 상상력
여러분은 HTML로 만들어진 웹사이트를 전세계 누구나 볼 수 있도록 했습니다. 이것이 지금 우리에겐 시시하게 느껴질 수 있습니다. 하지만 상상력을 동원해서 웹이 처음 등장했을 시기로 타임머신을 타고 이동해보세요.
타인의 컴퓨터에 있는 정보를 내 컴퓨터로 볼 수 있다는 것이 당시 사람들에게 얼마나 놀라운 일이었을까요? 특히나 링크를 통해서 문서에서 문서로 자유롭게 이동할 수 있다는 것이 주는 충격은 엄청난 것이었습니다. 이 순간부터 인류는 완전히 새로운 단계로 나아갑니다. 더 많은 것을 공부하기 전에 이 충격의 의미를 곰곰히 곱씹어봅시다.