인터넷은 1960년대에 미국 국방부 산하의 고등 연구국에서 전쟁시에도 문제없이 통신할 수 있는 강력한 커뮤니케이션 도구의 필요성에 의하여 군사적인 목적으로 처음 개발되었다.
웹은 웹은 단순히 인터넷에서 이용할 수 있는 '서비스'라는 한 부분이다. 1990년대부터 팀 버너스리라는 사람에 의하여 대중화 될 수 있었다.
팀 버너스 리는 웹서버와 웹브라우저를 개발하고, 이 둘이 통신할때 사용하는 프로토콜인 HTTP라는 통신 규약을 정의하고, 웹 브라우저에 정보를 표현할 수 있게 하는 프로그래밍 언어, HTML을 발명했다.
그리고, 이러한 기술들을 Public Domain으로 공개하면서 인터넷, 월드 와이드 웹은 폭발적으로 발전하게 된다.
인터넷의 출현은 유통의 혁신을 가져왔다.
인터넷이 발달하기 전에는 소프트웨어를 사용하기 위해서 물리적인 유통이 필요했다.
예전에는 소프트웨어를 구입하려면 어떠한 물리적인 매개가 필요하였으나 이제는 서버상으로 주고받을 수 있게 되었기 때문이다. 이러한 혁신은 2000년대 초반 닷컴붐, 닷컴 버블을 일으켰고, 자연스럽게 실리콘벨리를 형성하였다.
("버블"이라는 단어에서 알 수 있듯이 거품이 걷히면서 수 많은 기업이 기업가치를 잃고 도산했지만, 구글, 아마존 등이 이 닷컴붐에서 살아남아 건재하게 되었다.)
1세대 웹사이트는 모두 정적(static)인 웹사이트였다.
1세대 웹이 정적인 이유는 HTML, CSS 자체가 정적이었기 때문이다.
넷스케이프사에서 JavaScript를 개발하였고, JavaScript를 활용한 동적(Dynamic)인 브라우저가 처음 생겨났다.
그러나 아직 JavaScript 는 일부분에서만 사용되었고, 또한 현재 통용되는 API 의 개념이 아직은 널리 사용 되지 않았다.(동일한 서버에서 HTML, Javascript(프론트 영역) 데이터(백엔드 영역) 둘 다 전송)
동적인 요소가 점점 더 중요시 되면서 HTML,CSS보다 JavaScript 위주로 코드가 작성되기 시작하면서 3세대 부터 Single Page Application(SPA)라는 개념이 등장한다.
link tag를 사용하는 전통적인 웹 방식은 새로운 페이지 요청 시마다 정적 리소스가 다운로드되고 전체 페이지를 매번 다시 렌더링하는 방식을 사용하므로 상당히 비효율적이다.
SPA는 기본적으로 웹 애플리케이션에 필요한 모든 정적 리소스를 최초에 한번 다운로드한다.
이후 새로운 페이지 요청 시, 페이지 갱신에 필요한 데이터만을 전달받아 페이지를 갱신하므로 전체적인 트래픽을 감소할 수 있고, 전체 페이지를 다시 렌더링하지 않고 변경되는 부분만을 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다.
< 출처 : poiemaweb >
HTML/JavaScript 부분과 데이터 부분이 구조적으로 분리 되기 시작하고, Frontend 개발과 Backend 개발이 독립적으로 분리(Frontend - UI UX / Backend - Data), 명확히 나뉘어진 두 개의 시스템으로 웹이 동작하게된다.