WeniVooks

검색

웹/네트워크/HTTP 베이스캠프

웹의 역사

13.1 인터넷의 탄생

  • 1950 ~ 1960년대의 컴퓨터들은 매우 덩치가 크고 많은 열을 발산했습니다.
  • 이러한 이유 때문에 사용자가 직접 컴퓨터 옆에서 작업하기가 어려웠습니다. 어쩔 수 없이 외부에서 원격으로 연결되어 컴퓨터를 사용해야 했고, 여러 사용자가 동시에 한 컴퓨터를 사용해야 했었습니다.
최초의 2진수 프로그램 내장 컴퓨터 에드박(EDVAC). 1951년에 가동되었으며 4000개의 진공관, 7,711kg의 무게에 당시 가격으로 $467,000의 제작 비용이 들었습니다.
13.1.1 Time-sharing (시분할 시스템)의 등장
  • 시분할 시스템이란 컴퓨터를 여러 사용자들이 시간적으로 분할하여 사용할 수 있도록 하는 시스템입니다.
  • 예를 들어 사용자가 명령어를 입력하는 동안, CPU로 다른 사용자가 이미 입력한 명령어를 처리해두는 방법이라고 할 수 있습니다.
  • 때문에 시분할 시스템을 이용하면 각 사용자가 자신만의 컴퓨터를 이용하는 듯한 착각(?)을 주지만 사실 하나의 컴퓨터를 이용하게 한다는 장점이 있었습니다.
  • 이것이 바로 최초로 여러 사람들이 하나의 컴퓨터의 프로세싱 파워를 나눠 사용하는 시초가 되었습니다.
여러 사용자가 돌아가며 CPU자원을 사용하는 모습

오늘날 여러 사람들이 하나의 서버에 접속하여 웹 서비스를 이용하거나, 자바스크립트 같은 싱글쓰레드 언어가 동작하는 방식도 이와 비슷합니다.

13.1.2 스푸트니크 쇼크 (1957년 10월 4일)
  • 옛 소련이 1957년 10월 4일에 스푸트니크 위성 발사에 성공합니다.
  • 역사상 최초로 인간이 만든 인공물이 우주로 날아간 것으로 이는 전 세계에, 특히 소련에 비해 과학과 경제력으로 압도적 우위에 있다고 생각했던 미국에 엄청난 충격을 주게 됩니다. 이날 이후로 소련의 핵무기가 미사일에 담겨 언제든 대륙을 넘어 발사 될 수 있다는 공포감이 서방 세계를 뒤덮게 됩니다.
스푸트니크 1호, 세계 최초의 인공위성
스푸트니크 유튜브 영상
  • 이 사건 이후로 미국 정부에서는 소련과의 기술 경쟁에서 밀리지 않기 위해 1958년 ARPA - Advanced Research Projects Agency 를 창설하게 됩니다.
  • 인터넷 시대 이전에는 대량의 정보를 사람이 직접 비행기나 배, 기차를 통해 운송했었습니다. ARPA는 정보의 전달 속도를 개선하는 것이 과학기술 연구 속도를 올리기 위한 핵심적인 과제라 생각하고 컴퓨터와 컴퓨터를 네트워크로 연결하는 작업에 착수합니다. 이를 통해 사람보다 기계로 훨씬 빠르게 정보를 전달하길 희망했고 그 결과로 탄생한 것이 최초의 인터넷 ARPANET 입니다.
13.1.3 쿠바 미사일 위기 (1962년 10월 14일)
  • 미국의 정찰기가 쿠바에 건설되던 소련의 중거리 탄도 미사일 기지를 발견하는 사건이 있었습니다.
미국 정찰기에 찍힌 쿠마 미사일 기지
  • 핵전쟁의 위기감이 고조되자 미 국방부는 시뮬레이션을 통해 소련의 핵미사일 공격에 당할 경우 당시에 사용하던 유무선 통신 시스템에 심각한 장애가 발생할 것이라 판단했습니다. 그 이유는 핵폭발이 발생하면 전자기파로 인해 무선 라디오 통신이 교란될 것이고, 당시의 유선 통신 방식이 중앙집중적 회선교환 방식이었기 때문에 이는 곧 핵폭발의 광범위한 피해에 통신소가 파괴되면 그곳에 연결된 상당수의 유선 네트워크가 기능을 상실한다는 의미를 가집니다.
소련이 설치한 중거리 탄도미사일의 종류별 사정거리
  • 이를 대비하기 위해 미국은 국가 전역으로 통신 네트워크를 분산하여 배치했고, 분산되어 있는 통신 장치를 서로 연결해 네트워크들을 연결하는 네트워크 즉, 거대 네트워크를 구성하기 시작했습니다.

  • 이렇게 설치되기 시작한 인프라는 점점 규모가 커지면서 1970년대에 이르러서는 인터넷 기술이 군대 뿐만 아니라 일반에 공개되어 널리 퍼져나가게 되었습니다.

    Untitled

  • 인터넷은 도로와 항만과 같은 지구 단위의 거대한 인프라 시설이라 보면 됩니다!

    Untitled

13.2 웹의 탄생

13.2.1 약속된 승리의 장소. CERN(Conseil Européen pour la Recherche Nucléaire)
  • 인터넷망이 민간으로 퍼져나가고 30년 뒤인 1989년에 유럽 입자물리연구소(CERN)에서 일하던 소프트웨어 엔지니어 팀 버너스 리는 입자가속기 컨트롤 시스템을 전산화 하는 작업을 하고 있었습니다.
  • 당시 CERN에서는 수많은 정보들이 호환성 따윈 없는 서로 다른 컴퓨터들과 네트워크 시스템 위에서 떠돌고 있었습니다. 팀은 서로 다른 운영체제, 파일 포맷, 하드웨어 구성 등의 난관을 극복할 수 있는, 정보를 공유하는 단일한 시스템의 필요성을 절감했습니다.
웹의 아버지(웨버지) 팀 버너스 리 경(Sir Tim Berners-Lee)
  • 세계 최대의 연구시설과 세계 최고의 인재들, 인터넷으로 연결된 네트워크, 모든 직원의 책상 위를 차지하고 있던 개인 컴퓨터까지. 이러한 환경은 결과적으로 웹을 탄생시키는데 중요한 자양분이 되었습니다.
  • 1980년 10월 팀은 대량의 정보에 쉽게 접근하게 하는 프로그램을 설계했고, 여기에 어렸을 적 즐겨봤던 백과사전의 이름을 딴 인콰이어(Enquire)라는 이름을 붙입니다. 그리고 1989년 3월 인콰이어를 토대로 만든 World Wide Web 시스템을 제안하였고, 그 개선안을 1990년 5월에 제안, 최종안을 1990년 11월에 CERN에 제안했습니다.
  • 그리고 1990년 말 NeXT 컴퓨터를 이용하여 최초의 브라우저(World Wide Web)와 웹 서버를 만들게됩니다.
최초의 웹 서버 - 컴퓨터 케이스에 “이 기계는 서버입니다. 전원을 내리지 마세요!”라고 쓰여져 있습니다.
13.2.2 최초의 웹사이트
최초의 웹사이트
  • 처음 웹은 NeXT 운영체제 위에서만 작동했었지만 크로스플랫폼을 지원하기 위해 The line-mode browser가 처음 등장하게 되었습니다.

    스크린샷 2022-04-27 오후 4.13.57.png

작동 모습 예전 모습

NeXT : 스티브 잡스가 애플을 퇴사하고 1985년에 설립한 컴퓨터 회사. 당시 NeXT 컴퓨터는 PC중에 가장 강력한 성능을 자랑했으며, 이를 통해 DOOM, 퀘이크 같은 최초의 3D 일인칭 슈터 게임이 개발되기도 했습니다.

13.2.3 웹의 핵심 3요소
  • 팀은 웹을 구현하기 위해 세가지 핵심적인 기술을 개발하게 됩니다.
    1. HTML (Hyper Text Markup Language)
    2. URL (Uniform Resource Locator)
    3. HTTP (Hyper Text Transfer Protocol)
  • 즉 웹은
    1. HTML 파일을 만들어 서버에 저장하고
    2. 저장된 자원에 접근할 수 있는 URL을 부여한 뒤
    3. HTTP 통신으로 파일을 주고 받는 하나의 시스템입니다.
스크린샷 2022-04-27 오후 4.25.45.png

13.3 닷컴 버블의 시대(1995년 ~ 2001년)

  • 1990년대 후반 세계 경제가 가장 주목하는 부문은 인터넷이었습니다. 컴퓨터를 통해 뉴스와 영화, 책을 보고 대화소통이 가능했던 꿈의 통신망이 대중화되자 수많은 기업들이 인터넷 사업에 뛰어들게 되었습니다. IT 기업들의 주가는 인터넷 사업을 한다고 광고만 해도 끝을 모르고 치솟았습니다.
  • 하지만 기대가 너무 컸기 때문일까요? 비싼 통신 요금과 과장 광고로 부풀려져 있던 인터넷 서비스에 수 많은 사람들이 등을 돌리게 되었고 그와 동시에 주가가 폭락하기 시작했습니다. 과도기적인 인터넷 기술에 너무 많은 것을 이루기 위해 노력하다보니 결국 많은 IT 회사들의 도전은 물거품이 되고 말았습니다.
닷컴버블의 황금기와 손정의 회장의 회고. (11:33 부터) 닷컴 버블의 시작과 끝

13.4 브라우저 전쟁

  • 닷컴 버블 세상이 열리게 된 데에는 어쩌면 브라우저들의 눈부신 성장도 한 몫 했을지 모릅니다. 브라우저들이 시장에서 어떻게 성장해왔는지 살펴보도록 합시다.
13.4.1 칙칙한 웹 세상에 등장한 모자이크(Mosaic) 브라우저
  • 모자이크 이전의 브라우저가 텍스트만 출력할 수 있었다면, 이미지를 출력할 수 있는 최초의 웹 브라우저가 1993년에 탄생하게 됩니다. 미국 일리노이 대학교의 연구생 신분이었던 마크 엔드리슨을 중심으로 개발되었으며 이때 모자이크와 함께 탄생한 태그가 바로 <img> 입니다. 브라우저 벤더사의 요구에 의해 HTML태그가 탄생한 최초의 사례이자, WHATWG의 경우처럼 웹 기술의 주도권이 민간 단체에서 기업으로 넘어가는 미래를 엿볼 수 있습니다.
Untitled

그렇다고 모자이크 이전에 브라우저에서 이미지를 볼 수 없었던 것은 아닙니다. 보고 싶었다면 링크를 클릭해 새 창에서 봐야 했었습니다.

13.4.2 모자이크 킬러, 넷스케이프 내비게이터
  • 모자이크의 개발자였던 마크 엔드리슨이 만든 모자이크의 정신적인 후속작입니다.
  • 1994년에 탄생한 내비게이터는 빠르고 사용자 친화적인 UI와 전례 없는 보안 강화를 통해 웹으로 안전한 전자 상거래를 가능하게 했습니다.
  • 이에 폭발적인 호응을 얻어 한때 90%에 육박하는 사용률을 달성하기도 했습니다.
Untitled
13.4.3 넷스케이프 내비게이터(NN)의 배 다른 동생, 인터넷 익스플로러
  • 1995년 8월, Netscape Navigator가 주식시장에 상장되고 샴페인을 터트린지 며칠 지나지 않아 배 다른 동생 Internet Explorer 1.0 이 발표됩니다.

  • 배 다른 동생인 이유는 IE와 Netscape Navigator은 동일한 뼈대를 기반으로 만들어졌기 때문인데요, 앞서 살펴봤던 모자이크 브라우저의 라이선스를 가지고 있던 일리노이 대학이 스파이글라스(Spyglass)라는 회사에 모자이크 라이선스를 매각했고, Microsoft가 Spyglass로부터 브라우저 소프트웨어 라이선스를 사들였기 때문입니다.

인터넷 익스플로러 로고
  • Netscape Navigator를 무너뜨리기 위한 브라우저를 만들기 위해 Netscape Navigator의 기본 설계를 이용한 것이죠.
13.4.4 1차 브라우저 전쟁의 결과
Untitled
  • 인터넷 익스플로러가 넷스케이프를 이긴 세 가지 이유
    1. 꾸준한 성능 개발 및 업데이트

      1996년 IE3 - 브라우저 최초로 CSS를 지원

      1999년 IE5 - 브라우저 최초로 Ajax를 지원

    2. Windows OS에 기본 탑재

    3. 무료

  • 넷스케이프 역시 윈도우즈의 무료 공세에 대응하기 위해 1998년부터 자사의 브라우저를 무료로 풀었지만 이미 뒤집힌 시장점유율을 되돌리기에는 어려웠고, 결국 2008년 부터 모든 업데이트를 중단하였습니다.
내셔널지오그래픽 - 1991년, 인터넷의 발명과 인터넷 브라우저 전쟁
13.4.5 2차 브라우저 전쟁
  • 1차 브라우저 전쟁 이후 IE의 압도적인 점유율로 인한 횡포(Jscript, Flash 등등..)로 앞에 많은 개발자들이 눈물을 흘리게 됩니다.
  • 넷스케이프의 마크 엔드리슨은 넷스케이프를 매각하기 직전, Netscape Navigator 4.0의 코드를 오픈소스화 하여 전 세계에 배포하는 결단을 내립니다.
  • 덕분에 소스코드를 전 세계 프로그래머 커뮤니티가 계속 작업하고 개선할 수 있게 되었습니다. 이후 모질라 재단이 만들어져 Netscape Navigator 를 대신하는 새로운 브라우저인 모질라 브라우저를 만들었고, 모질라 브라우저에서 파생되어 나온 경량의 브라우저가 바로 모질라 Firefox입니다.
  • 모질라의 파이어 폭스는 인터넷 익스플로러에 비해 웹 표준을 상대적으로 더 잘 준수하는 브라우저로 개발되었고 후에 등장하는 Safari나 Chrome 브라우저에 많은 영향을 끼치게 됩니다.
  • 그렇다면 제2차 브라우저 전쟁의 승자는 Firefox였을까요? 아래의 브라우저 사용률을 보아도 알겠지만, Chrome 브라우저가 등장하게 되면서 제2차 브라우저 전쟁의 승자는 Chrome이 됩니다. 왜 인터넷 익스플로러와 Firefox가 아닌 Chrome이 이겼는지는 Chrome이 가진 편의성, 빠른 속도, 편리한 개발 도구 등과 ECMA 표준을 충실히 지키는 브라우저라는 점에 있었습니다.
제2차 브라우저 전쟁 추이
파이어폭스 로고의 변천사

왜 하필 이름이 파이어폭스 일까요?

  • 초기 명칭은 Phoenix였다가, 이후 버전에서 Firebird라 불렸다가 Firefox로 변경되었다고 합니다!

13.5 마무리

제프 베이조스의 TED 강연
11.2 모놀리식과 마이크로서비스 아키텍처