wecode 세션 내용을 정리할 겸 기록해보는 글
웹에 대한 지식은 가능할 때 최대한 차곡차곡 쌓아두려한다.
1960년대 핵전쟁 이후 상황에서 핵 공격에도 마비되지 않을 통신 시스템이 필요했고, 물리적으로 떨어져 있어도 서버 간 통신이 가능한 인터넷이 출현하게 되었다.
군사적 목적으로 처음 출현하게 된 셈이다.
1990년대, 팀 버너스리를 통해 처음 등장하게 된다.
최초의 브라우저인 web이 등장하면서 인터넷이 대중화되기 시작했다.
(인터넷이 web을 포함하는 관계! 헷갈릴 수 있으니 메모..📝️ )
인터넷이 가져온 가장 큰 혁신은 유통
인터넷이 발달하기 이전, 소프트웨어를 구입하면 물리적인 매개체(CD, 플로피디스크 등)을 전달받아 컴퓨터에 연결해 설치해야했다.
인터넷이 대중화 된 이후 이러한 유통 과정이 혁신적으로 줄어들었고, 많은 개발자들이 자신이 만든 소프트웨어를 인터넷 상에 올려 판매하기 시작했다.
이를 통해 실리콘밸리(야후,구글,아마존 등)가 형성되고 이른바 닷컴붐이 일며 웹 기반의 서비스가 시작된다.
웹 서버가 HTML 페이지 전체를 Client (웹브라우저 등)에게 전송하는 구조
User Interaction이 많이 요구되지 않는, 단순 정보 제공 위주였다.
HTML,CSS 자체의 특징이기도 한, 정적인 사이트
웹 서버가 HTML 페이지와 더불어 Javascript를 통해 필요한 데이터만을 주고받으며 User Interaction를 구현했다. (동적인 웹 서비스의 출현)
웹 기반의 언어 Javascript가 등장했지만 아직까진 일부분에서만 사용되었고,
현재의 API 개념이 널리 사용되지는 않았다. (동일한 서비스에서 HTML, Javascript 데이터를 둘다 전송했다)
프론트엔드/백엔드 개념에 대한 구분은 아직!
프론트엔드/백엔드 영역을 구조적/업무적으로 구분짓고 특화하기 시작했다.
(프론트 - UI UX위주 / 백엔드 - Data위주)
Javascript가 주축이 되었고, 이는 곧 SPA (Single Page Application) 개념이다.
: 단일 HTML페이지에서 전체 웹 사이트/서비스를 구현하는 것.
기존엔 서버가 매번 페이지 구성에 필요한 모든 요소를 전송했는데,
이젠 처음에 필요한 파일만 송수신하고 그 이후로는 실시간 데이터만 주고받게 된다.
규모가 커지면서 User Interaction의 중요성/웹 복잡성/사용자 수/데이터의 양이 모두 증가했다.
여기서 생긴 문제 : (1) 동시 접속자 수 (2) 데이터의 양
해결 방안 : System architecture의 발전
시스템 구조가 복잡해짐에 따라 Frontend 서버와 Backend 서버가 분리되었다.
Frontend 서버 : Node.js, React 등 JavaScript 엔진 및 프레임워크/라이브러리가 발달해 더 복잡한 기능 구현이 가능해졌다. 특히 Node.js로 간단한 백엔드 기능을 직접 구현할 수 있게 되었다.
Backend 서버 : 웹 서비스의 규모가 방대해짐에 따라 데이터 양도 폭발적으로 증가하고 있어 API 서버가 세분화 되고 있을 뿐만 아니라, 빅데이터 분석, 머신러닝, AI 등의 기술이 발달하고 있다.
썸네일... 지나갈 수가 없네요 ㅋㅋㅋ