오늘도 개발
인터넷과 웹의 역사 본문
(위코드 1주차 강의를 듣고 정리한 내용입니다.)
1. 인터넷이란? 웹이란?
인터넷과 웹은 동의어가 아니다.
인터넷은 서로 연결된 컴퓨터의 집합이고
웹은 인터넷을 통해 접근할 수 있는 정보의 집합이다.
인터넷이 인프라라면 웹은 인프라를 사용해 지은 건물에 가깝다.
인터넷은 1960년쯤 등장했지만 웹은 30년 뒤인 1990년에야 등장한다.
2. 인터넷의 역사
1) 1950 - 모뎀(Modem)
1950년대 미국 국방부에서 인터넷(의 전신이 되는 시스템)을 개발하던 사람들은
도처의 컴퓨터를 연결할 때 이미 존재하는 전화 시설을 사용하면 어떨까 생각했다.
대다수 사람들의 집엔 전화 케이블이 설치되어 있고
전화 케이블은 이미 세계 모든 국가와 연결되어 있었기 때문이다.
하지만 인터넷 신호는 디지털 신호이고, 전화 신호는 아날로그이기 때문에
전화 케이블로 바로 컴퓨터를 연결할 수는 없었다.
그래서 모뎀이라는 장치가 등장했다.
모뎀은 컴퓨터 신호(디지털 신호)를 전화 신호(아날로그 신호)로, 전화 신호를 컴퓨터 신호로 바꿔주는 장치이다.
모뎀의 발명으로 인터넷은 크게 발전하기 시작한다.
2) 1969 - 아르파넷(ARPAnet)
2차 대전 후 냉전 체제가 지속되며 미국은 더 안전하고 강력한 네트워크를 만들고 싶었다.
모뎀에 의존하는 네트워크는 치명적인 단점이 있었기 때문이다.
모뎀은 중앙집중적이기 때문에 한 전화국이 파괴되면 해당 전화국과 연결된 컴퓨터는 모두 통신이 두절될 수 있었다.
아르파넷은 이런 상황에서 모뎀의 대안으로 등장했다.
(ARPA는 아르파넷을 만든 미 국방부 기관의 이름이다.)
아르파넷의 특징은 다음과 같다.
a. 분배 네트워크(Distribution Network)
하나의 컴퓨터는 다른 컴퓨터와 적어도 두 가지 이상 방법으로 통신할 수 있다.
b. 패킷 스위칭(Packet Switching)
한 컴퓨터에서 다른 컴퓨터로 메시지를 보낼 때 메시지를 여러 조각(패킷)으로 나누어 보낸다.
=> 적이 공격하더라도 전체 메시지를 잃지는 않는다.
c. 라우터(Router)
패킷을 주고 받을 때 다양한 경로를 탐색하여 정확한 컴퓨터로 전달한다.
3) 1983 - TCP/IP 프로토콜 스택
아르파넷 이후 다양한 종류의 네트워크가 등장한다.
다양한 네트워크가 등장하며 각 네트워크를 연결하기 위한 기준이 필요해지며
프로토콜(Protocol)이라는 개념이 생긴다.
프로토콜은 컴퓨터와 컴퓨터가 통신을 할 때 지켜야 하는 약속이다.
프로토콜에도 여러 종류가 있었는데, 시간이 흐른 후 TCP/IP가 가장 중요한 프로토콜이 된다.
이에 따라 OSI 프로토콜 스택은 TCP/IP 위주로 개편되고
인터넷은 TCP/IP 프로토콜 스택을 사용하는 컴퓨터 네트워크를 의미하게 된다.
(참고 - 프로토콜 스택이란?)
4) 1990 - 웹의 탄생
1950년대 이후로 인터넷은 계속 세상에 존재했지만 대중적이진 않았다.
1990년 팀 버너스 리가 세계 최초의 브라우저인 WWW(World Wide Web)을 개발하며
인터넷은 대중적으로도 널리 사용되기 시작한다.
3. 웹의 역사(웹 시스템의 구조 위주로)
1) 1세대 웹 - 정적인 웹

처음 등장했을 당시의 웹은 굉장히 간단한 구조였다.
웹사이트가 돌아가기 위해선 서버와 클라이언트 두 대의 컴퓨터만 있으면 충분했고,
두 컴퓨터가 주고 받는 파일도 HTML 문서밖에 없었다.
자바스크립트, CSS 언어는 등장하기도 전이었기 때문에 당시의 웹은 정적이었다.
이 때의 웹사이트는 수많은 HTML 파일으로 이루어졌다.
HTML 파일이 많아지면 속도가 느려질 수 밖에 없는데
당시 웹사이트는 규모가 작고 정보가 많지 않기 때문에 이런 구조가 충분히 가능했다.
아래 1994년 버전의 야후를 보자.
당시 유저는 웹사이트와 거의 인터랙션 할 수 없었고 기능도 많지 않았다.
화면의 링크에는 모두 다른 HTML 문서가 연결되어 있다.
링크가 10개 있으면 HTML 문서도 10개가 존재했다는 뜻이다.

2) 2세대 웹 - 동적인 웹

자바스크립트 언어가 등장한 이후의 웹을 2세대 웹이라고 한다.
자바스크립트는 웹을 위해 만들어진 언어로
유저가 웹사이트와 인터랙션할 수 있도록 해준다.
자바스크립트를 통해 2세대 웹은 1세대보다 동적일 수 있었다.
또한 1세대 웹에서 클라이언트와 서버는 HTML 문서만 주고 받았지만
이 때부터는 자바스크립트 문서도 같이 주고받게 된다.
하지만 웹의 구조는 여전히 간단했다.
1세대 웹과 마찬가지로 서버와 클라이언트 두 대의 컴퓨터만 있으면 웹사이트가 돌아갔고
서버 하나로 HTML 문서, 자바스크립트, CSS, 데이터 처리가 가능했다.
프론트엔드와 백엔드 개발의 구분도 없었다.
3) 3세대 웹 - SPA 등장, 프론트엔드와 백엔드 개발 분리

웹이 발전하며 수많은 HTML 파일로 웹사이트를 만드는 방식을 계속 사용하기는 무리가 있었다.
이 때 SPA(Single Page Application) 방식이 등장한다.
SPA는 한 웹사이트를 하나의 HTML 문서로 제작하는 방식을 뜻한다.
SPA 방식은 2세대 방식처럼 HTML 문서와 자바스크립트를 따로 주고받지 않고
HTML 문서에 자바스크립트 파일을 넣어서 통신한다.
이전에는 서버가 클라이언트에게 계속해서 HTML 파일과 자바스크립트 파일을 보내주어야 했는데
SPA 방식에서는 서버가 처음에 딱 한 번만 클라이언트에게 HTML 파일을 주면 된다.
그 결과 서버는 데이터 처리와 연산에만 집중할 수 있게 되었고,
클라이언트는 렌더링에만 집중할 수 있게 되었다.
이렇게 3세대 웹부터 백엔드와 프론트엔드 개발 업무가 분리되기 시작했다.
SPA 방식은 다음과 같은 과정을 통해 웹사이트를 구현한다.
1) 클라이언트가 서버에 웹페이지를 요청해서 HTML 문서를 받는다.
2) HTML 문서 내 자바스크립트가 HTML로 틀을 짜서 준비한다.
3) 자바스크립트가 서버에게 데이터를 요청한다.
4) 서버가 데이터베이스에서 데이터를 가져온 후, API로 변환해서 클라이언트에게 전달한다.
4) 서버에게 받아온 데이터를 준비해둔 틀에 끼운다.
5) HTML을 렌더링한다.
6) 유저가 새로운 페이지로 이동하면 2)로 이동해서 반복한다.
4) 현대 웹

현대 웹의 특징은 복잡하다는 것이다.
사용자 수도, 처리할 데이터의 양도 이전과는 비교할 수 없이 많다.
이에 따라 웹시스템의 구조(Web System Architecture)도 함께 발전하고 있다.
현대 웹시스템의 구조는 다음과 같은 특징을 갖는다.
1) 프론트엔드 서버와 백엔드 서버를 분리함
2) 백엔드 서버에서도 API 서버를 세분화함 (예 : 넷플릭스 - 결제 서버, 스트리밍 서버, 가입 서버 분리)
3) 데이터 요청이 많아지는 경우에 대비하여 API GateWay 마련
API GateWay란?
요청을 여러 서버로 분산해주는 장치
'웹 프로그래밍 > 웹의 이해' 카테고리의 다른 글
| 인가(Authorization) - SSS, JWT (0) | 2022.07.12 |
|---|---|
| 인증(Authentication) - Bcrypt (0) | 2022.07.11 |
| URI와 URL의 차이 (0) | 2022.06.04 |
| OSI 참조 모델과 TCP/IP (0) | 2022.05.26 |
| HTTP(HyperText Transfer Protocol) (0) | 2022.05.25 |