개요
Web이라는 것은 "인터넷"시대가 열리면서 같이 나온 개념이자, 현대 사회에 있어서 없으면 안되는 중요한 요소다.
그래서, 이 글에서는 Web에 대해 알아보는 글을 주제로 작성된다.
하지만, 그 Web을 이해하기 위해, internet이 어떻게 발전했는지를 먼저 알아야하므로, Internet이 어떻게 나왔는지부터 시작하겠다.
"Internet"의 역사
우리가 아는 Internet의 시작은 1969년에 미국 국방부 산하에 있는 국방고등연구사업국(DARPA)에서 만든 ARPANET에서 부터 시작되었다.
이 ARPANET은 세계 최초로 패킷 교환 방식을 이용한 네트워크로써, 당시에는 국방부, 연구소, 대학에서만 사용되었었다.
ARPA Net packet?
이 ARPA Net에서는 두 가지 종류의 패킷 형식이 사용되었다고 한다.
1. IMP to IMP

- start Farming을 시작으로, Header - Text - End Farming - Error control로 이뤄져 있다.
- ++ Header랑 Text는 softerware단계에서 만들어지고, Start farming, end farming, error control부분은 하드웨어 단계에서 만들어졌다.

2. IMP to Host
2-1. Short leader formats


- 각 차이는 8bit ~ 11bit사이의 내용이 Destination Host의 내용이냐 Source Host의 내용이냐 인 듯 하다.
2-2. long leader formats


- 마찬가지로, 각 차이는 40bit ~ 48bit사이의 내용이 Destination Host의 내용이냐 Source Host의 내용이냐 인 듯 하다.
번외 1)
ARPA Net에서 사용했던 저 IMP는 Interface Message Processor의 약자로써, ARPA Net를 위해 사용했던 패킷 교환 노드 머신이다.
이 IMP가 오늘날의 라우터의 조상격(!)이라고도 한다.
즉, 이 IMP는 특수 목적 인터페이스와 소프트웨어를 갖춘 게이트웨이용 컴퓨터였다는 것이다.
그냥 간단하게 IMP == gateway로 이해하면 될 듯 하다.
번외 2)
ARPANET에서는 개인 데이터 패키지(메시지)를 전송하는 것을 시작으로 점점 발전해 나갔다.
하지만, 1973년즈음에 대서양을 횡단하는 컴퓨터 네트워크를 개발하여 지역이 점차 넓어졌다.
그리고 1983년이 된 이후에 민간용 아르파넷이 나오면서 인터넷으로 새롭게 바뀌었다.


번외 3)
초기형 ARPANET은 NCP(네트워크 제어 프로토콜)를 사용했었다고도 한다. 1983년 즈음부터 85년까지 ARPANET은 국방용 네트워크 망과 민간용 망을 분리해서 민간 네트워크가 되었으며, 그와 동시에 TCP/IP로 통신 방식을 교체했었다고 한다.
TCP/IP를 사용하게 되면서 이 이론을 정립한 개발자가 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 의미로 'International Network'라고 말했었고 이는 우리가 아는 Internet의 어원이다.
번외 4)
저 ARPANET이 TCP/IP 프로토콜을 채택하기 12년전인 1971년에 전자 우편이 발명되었다고 한다.
Web이 발전하기 이전, 그리고 민간으로 풀리기 전의 ARPANET(원시 internet)의 통신은 전자 우편이나 FTP등으로 커뮤니케이션이 되었다고 한다.
즉, 이 ARPANET이 인터넷의 근간이라는것이다. 이제 여기서 좀 더 발전한 형태가 우리에게 익숙한 인터넷이고 말이다.
또한, 여러 애플리케이션이 개발 되기도 했는데, 대표적인 것들로는 Telnet, FTP, 전자우편 서비스 등등이 개발되었다.
이런 어플리케이션이 1990년 Web이 나오기 전까지 성행했던 인터넷에서의 커뮤니케이션 방식이었던것 이다.
근데 그렇다면, 오늘 알아볼 Web은 우리에게 어떻게 퍼지게 되었을까?
WEB의 탄생
이제 저 ARPANET에서 민간용 망으로 분리되고, TCP/IP프로토콜을 사용하기 시작한 1983년부터 Internet은 시민들도 접근 가능한 네트워크가 되었다.
그렇게, 1990년까지 Telnet, FTP, E-mail, etc...가 인터넷의 주류를 이루고 있었다.
그러던 1989년, CERN(유럽 입자 물리연구소)에서 근무하던 팀 버너스-리가 CERN의 컴퓨터에 저장된 문서를 탐색하고 연결하기 위해 네트워크 하이퍼 텍스트 시스템을 만들 것을 제안하면서 Web의 개념은 처음으로 나왔다.
팀 버너스 리가 제안한 원칙은 다음과 같았다.
- 웹에서 리소스를 식별하기 위한 표준화된 방법을 제공하는 URI(Uniform Resource Identifier).
- 인터넷을 통해 데이터를 전송하기 위한 하이퍼텍스트 전송 프로토콜(HTTP).
- 문서를 구조화하고 형식을 지정하여 텍스트, 이미지 및 링크를 표시할 수 있게 해주는 하이퍼 텍스트 마크업 언어(HTML)
- etc..
저 원칙을 기준으로 만든것이 초기형 Web이자 지금도 지켜지고 있는 원칙이다.
그렇게, 저 원칙을 기준으로 최초의 Web의 개념이 확립되고 1990년에 최초의 브라우저와 함께 Web이 세상에 나오게 되었다.
번외 5)
참고로, 1990년에 Web이 최초로 공개가 될때, 저 최초의 웹 페이지와 웹 브라우저가 나왔는데 그것이 World Wide Web(nexus)였던거다.
여기서 처음에는 저 WWW로 나왔는데, 의미가 충돌되는 것을 우려하여 Nexus로 이름을 바꾼거라고 한다.
Web의 정의
이제 1990년에서 나왔던 "WEB"을 다른곳에서는 다음과 같이 정의하였다.
월드 와이드 웹(World Wide Web)이란 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간을 의미합니다.
- TCP School에서 발췌
월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공유 시스템을 말한다. 간단히 웹(the Web)이라 부르는 경우도 많다.
- wikipedia에서 발췌
이 이외에도 다른 정의도 보면서 정리한 나만의 정의는 다음과 같았다.
WEB이라는건 World Wide Web을 간결하게 말하는 것이고, 인터넷 상에서 정보를 공유하기 위한 시스템 "전체"를 가리키는,
인터넷 위에서 작동하는 하나의 서비스이다.
그리고, 이 WEB의 초기형은 "웹 브라우저"를 통해 HTML형태로 되어있는 파일을 보는 형식으로 이뤄져있었다.
Web 초기단계의 구조도
초기형 Web의 구조는 지금보다 약간 단순화 되어있었다고 한다.
- 클라이언트 - 서버 모델
- 이 구조는 초기형 Web에서부터 시작된 구조라고 한다.
- 사용자는 웹 브라우저를 통해 서버에 문서를 요청했고, 서버는 해당 문서를 클라이언트에게 전달하는 방식이었다.
- HTTP 프로토콜
- HTTP(HyperText Transfer Protocol)가 웹 페이지를 전송하기 위한 주요 프로토콜로 사용되었다.
- 하지만, HTTPS와 같이 보안이 포함된 프로토콜은 초기 웹에서는 아직 도입이 되질 않았었다.
- 웹 문서
- 웹의 초기 버전에서는 HTML만이 사용 되었었다고 한다.
- URL(Uniform Resource Locator)
- 웹 리소스의 위치를 지정하는 주소 체계로써, 1983년에 DNS가 개발되면서 도메인 이름으로 변환하는 시스템으로 쓰이는 것을 초기부터 사용했다고 한다.
- 웹 서버 소프트웨어
- 첫 번째 웹 서버 소프트웨어는 팀 버너스-리가 개발했었으며, 지금의 Apache나 nginx랑 다르게 단순히 html문서만 제공하는 기능을 수행했었다고 한다.
- 웹 브라우저.
- 이것 또한 팀 버너스-리가 최초 개발해서 텍스트 기반의 간단한 웹 페이지를 보여주는 기능을 가졌었다.
Web 초기단계의 한계.
근데, Web의 초기형에서는 HTML만을 사용했었고, 이는 정적인 콘텐츠만 제공하는 한계가 있었다.
그렇게 Web에 동적인 요소를 추가하기 위해 여러가지 언어(서버 측 스크립팅 언어 / 클라이언트 측 스크립팅 언어 / DB기술 등등)가 발명되기도 했다.
WEB의 발전 진척도
WEB은 93년도에 W3C(World Wide Web Consotium)가 만들어지고, 그 W3C가 주도로 WEB의 발전을 이끌었었다.
그 발전은 이런 식으로 진행되었었다.
1990년대
- 1993년 : 최초의 GUI기반 브라우저인 Mosaic가 나왔다.
- 1994년 : W3C(World Wide Web Consortium)이 설립되고 웹 표준을 정립하기 시작했다.
- 1995년 : Netscape Navigator 2.0에서 JavaScript가 도입이 되었다.
- 이때부터 동적인 요소를 추가할 수 있었다.
- 1996년 : CSS(Cascading Style Sheets)1.0 이 나왔다.
- 1997년 : HTML 4.0이 공개 되었었다. 테이블, 프레임, CSS지원등을 포함하는 기능이었다.
- 1998년 : W3C에서 XML(eXtensible Markup Language)1.0을 권고안으로 발표했었다.
2000년대
- 2000년대 초 : XHTML 1.0 발표.
- 2004년 : Web 2.0의 개념이 등장함.
- 사용자 생성 콘텐츠, 소셜 네트워킹 서비스, 웹 애플리케이션의 상호작용성 증가에 중점을 둔 개념.
- facebook, twitter, snapchat과 같이 sns나 사용자가 직접 생성하는 콘텐츠를 만드는 형식으로 발전함.
- 2005년 : AJAX(Asynchronous JavaScript and XML)의 활용이 증가되었다고 한다.
- AJAX? : 웹 페이지의 일부만을 비동기적으로 업데이트할 수 있게하는 기술이다.
- 2008년 : HTML5의 초안을 만들어서 공개했다.
- 더 나은 상호작용을 위한 새로운 요소들이랑 API가 포함됨.
2010년대
- 2010년 : CSS3가 발표되었다.
- 2012년 : HTML5가 드디어 W3C후보 권고안이 됨.
- 2014년 : HTML5가 후보 권고안에서 공식적으로 W3C의 권고안이 됨. HTML5의 시대 개막
- 2015년 : HTTP/2 발표 HTTP/1.1에서 발전된 형태로 시작.
- 2017년 : Progressive Web Apps(PWAs)가 주목받기 시작했되었다고 함.
WEB의 전체적인 구조.
그러면 위와같이 발전한 이 WEB의 구조는 어떻게 되어있을까?
사실, 초기단계의 구조도에서 큰 틀은 많이 바뀌진 않았다.
- 클라이언트 - 서버 모델
- 이 구조는 초기형 Web에서부터 시작된 구조라고 한다.
- HTTP 프로토콜
- HTTP(HyperText Transfer Protocol)가 웹 페이지를 전송하기 위한 주요 프로토콜로 사용되었다.
- HTTPS와 HTTP/1.1, 2등등이 나왔다.
- 웹 문서
- HTML에 JS추가해서 쓰거나, 아예 서버 사이드에서 렌더링해서 보내는 그런걸 개발했다고 함.
- URL(Uniform Resource Locator)
- 웹 리소스의 위치를 지정하는 주소 체계로써, 1983년에 DNS가 개발되면서 도메인 이름으로 변환하는 시스템으로 쓰이는 것을 초기부터 사용했다고 한다.
- 웹 서버 소프트웨어
- 웹 브라우저.
- 현재는 파이어폭스(Gecko, Spidermonkey등등기반), 크롬(크로미움 기반) 등등이 쓰인다.
오늘날의 Web Site 제작에 필요한 언어들
오늘날(2024년 기준)의 웹은 정말 많은 요소들이 생겼다.
특히나, 언어나 프레임워크 등등이 많이 발전했고, 그만큼 취약한 부분도 많이 늘어나기도 한거다.
그러면 이 Web Site를 제작하는데 필요한 언어들은 뭐가 있을까?
클라이언트 측 요소(Client-Side)
- HTML(HyperText Markup Language) : 웹 페이지의 구조를 정의하는 아주 유서깊은 문서형식
- CSS(Cascading Style Sheets) : 웹 페이지의 스타일링을 담당함
- JavaScript : 웹 페이지의 상호작용을 가능하게 하는 스크립트 언어임.
- React
- Next.js
- Svelte
- Vue.js
- React
- Angular
서버 측 요소(Server-Side)
- Node.js : JavaScript 런타임 환경으로써, 위에 클라이언트 측 요소로 있던 JS를 서버 측 언어로 사용가능하게 해줌.
- Express.js : Node.js기반으로 라우팅이랑 미들웨어 기능을 제공해줌
- PHP
- ASP.NET Core
- Spring Boot(Java기반)
- python
- Django
- Flask
- Go
- Ruby on Rail
Database 요소(Database)
- SQL(Structured Query Language)
- MySQL
- PostgreSQL
- MongoDB
등등이 있다.
참고)
https://en.wikipedia.org/wiki/History_of_the_Internet
History of the Internet - Wikipedia
From Wikipedia, the free encyclopedia The history of the Internet has its origin in the efforts of scientists and engineers to build and interconnect computer networks. The Internet Protocol Suite, the set of rules used to communicate between networks and
en.wikipedia.org
https://www.tcpschool.com/webbasic/www
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://apps.dtic.mil/sti/tr/pdf/ADA155753.pdf
https://dbpedia.org/page/Interface_Message_Processor
Interface Message Processor
The Interface Message Processor (IMP) was the packet switching node used to interconnect participant networks to the ARPANET from the late 1960s to 1989. It was the first generation of gateways, which are known today as routers. An IMP was a ruggedized Hon
dbpedia.org
https://ko.wikipedia.org/wiki/%EC%9B%94%EB%93%9C_%EC%99%80%EC%9D%B4%EB%93%9C_%EC%9B%B9
월드 와이드 웹 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 이 문서는 인터넷의 정보 공간에 대해 설명하고 있습니다. 다른 뜻에 대해서는 웹, WWW (동음이의) 문서를 참고하십시오. 로베르 카이오가 디자인한 역사적 월드
ko.wikipedia.org
https://chat.openai.com/share/5ef440ce-8de3-4c73-9a10-2478fad10b76
ChatGPT
A conversational AI system that listens, learns, and challenges
chat.openai.com
https://nordvpn.com/ko/blog/history-of-internet-explained/#first-search-engine-1990
인터넷의 역사 | NordVPN
이 글에서는 1950년대에 시작되어 수십 년에 걸쳐 진화해온 인터넷의 역사와 각 년도별로 주목할만한 인터넷 관련 사건들을 알아보겠습니다.
nordvpn.com
'WEB' 카테고리의 다른 글
XXE injection에 대한 간단한 고찰. (0) | 2024.02.29 |
---|---|
XML에 대한 고찰. (0) | 2024.02.28 |
API가 대체 뭘까? 에 대한 간단한 고찰. (0) | 2024.01.31 |
데이터베이스와 SQL 명령어에 대한 고찰(미완성) (0) | 2023.04.23 |