위코드 프리코스 수업을 들으며 정리한 내용입니다.
인터넷은 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는 하나의 거대한 컴퓨터 통신망을 말합니다.
인터넷은 1950년대 광범위하게 설치된 전화선을 통해 시작되었습니다. (모뎀)그 후 1969년대 2차 세계 대전을 거치면서, 장거리 전화 통신망 구축 비용 문제, 중앙 집중식 연결방식으로 전화국 파괴시 통신이 두절되는 문제로 모뎀의 대안책인 아르파넷이 탄생했습니다. 아르파넷의 패킷 스위칭은 주고 받는 데이터를 큰 뭉텅이가 아닌 잘게 쪼개서(분할해서) 전송하는 방법으로 데이터가 중간에 손상되더라도 전체 데이터가 아닌 일부만 손상될 수 있게 했습니다.
TCP/IP 와 인터넷은 1983년도, 네트워크 기술에 대한 관심도가 증가하면서 등장했습니다. 다양한 네트워크가 등장하면서 그것들을 서로 연결하기 위한 표준(약속)이 필요해 TCP/IP 라는 프로토콜이 생겨났습니다. (TCP : Transmission Control Protocol, IP : Internet Protocol)
웹은 인터넷이 등장하고 30년 뒤, 1990년에 등장했습니다. 그러면서 인터넷 통신이 대중적으로 사용되기 시작합니다. 웹은 위에서 설명한 인터넷 네트워크를 이용하여 통신되는 정보의 집합을 의미합니다.
1세대 웹은 단방향성으로 서버가 html 페이지 전체를 클라이언트에게 전송했습니다. 정적인 페이지로 유저 인터랙션이 없었고, 클라이언트는 서버가 의도한 정보를 받아보았습니다. 사용자가 서버에게 무언가를 입력하는 로직이 없어 정보가 수직으로 나열되었습니다.
2세대로 오면서 웹에 여러가지 동적 움직임을 넣게 됩니다. 자바스크립트가 생겨나면서 html, css 로 하지 못하던 많은 일들을 하게 됩니다. 사용자가 입력한 값으로 로직을 처리해 유저 인터랙션이 생기고 유저가 서버단에 CRUD 할 수 있게 됩니다. 2세대에 오면서 양방향성이 생긴 것입니다.
3세대에 오면서 개발자의 일을 프론트와 백으로 구분하게 됩니다. SPA (Single Page Application) 이 생기면서, 단일 html 에서 전체 웹 서비스를 구현할 수 있게 되었고, 웹페이지 랜더링에 필요한 자바스크립트 코드는 최초의 통신에서 한번에 송수신하고 이후에 서버와 실시간으로 데이터를 주고받으며 동작하게 되었습니다. 백엔드는 유저 트래픽을 감당할 수 있게 서버를 잘 운영해야 하고, 프론트엔드는 유저의 유입을 유도하며 사용성을 고려한 디자인을 고민하게 됩니다.
현대의 모던 웹 아키텍쳐는 웹서비스의 복잡성 증가(유저 인터랙션 중요성 증가, 사용자 수 데이터 양 증가)로 인해 프론트엔드와 백엔드 서버를 분리하고 백엔드 API 서버를 세분화하고 데이터 요청을 분산 처리 API Gateway 하고 있습니다.