인터넷이란 여러 통신망을 하나로 연결해 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는 하나의 거대한 컴퓨터 통신망이며, 쉽게는 컴퓨터 네트워크를 의미한다.
(모뎀)
ARPAnet
을 고안해냈다. ARPAnet의 특징은 라우터
를 이용한 분배 네트워크
가 특징이며, 패킷
이라는 것을 적용하여 데이터를 작은 단위로 분할해서 데이터를 보내기 때문에, 데이터가 손상된 경우에도 손상된 부분만 다시 전송하면 되는 시스템을 구축했다.TCP/IP
방식이 인터넷의 기술적 표준으로 자리잡았다. 이후 Internet은 TCP/IP를 통해 묶인 모든 네트워크를 의미
하게 됐다. (Internet의 탄생)Web이란 인터넷에 연결된 모든 컴퓨터를 통해 정보를 공유할 수 있는 정보공간이다. 인터넷에서 웹이 발전할 수 있던 이유는 Hypertext, HTML, HTTP
의 발전이 있었기 때문이다.
Hypertext
: 기존 서적은 원하는 정보를 얻기 위해 모든 정보를 훑어봐야 할 필요가 있었는데, Hypertext는 순서나 위치에 상관없이 원하는 정보에 접근할 수 있도록 제공했기 대문에 Web발전에 도움을 줬다.HTML
: Hypertext는 HTML로 작성하게 된다.HTTP
: 이어서 Hypertext의 연결 규약인 HTTP가 탄생하면서, HTML을 주고 받을 수 있게 됐다.단순한 정보 제공위주이며 기능이 많지 않았다. 동적 요소가 없기 때문에 User와의 Interaction은 없었고, 서버에서 HTML 페이지 전체를 클라이언트에 전송하는 단방향 구조
웹 기반 언어인 Javascript가 출현하면서, User와의 Interaction이 가능해지며 조금 더 동적인 요소를 가미한 웹페이지
들이 생겨났다. 서버와 클라이언트가 Javascript를 통해 통신을 주고받으며 양방향 통신
이 가능했다.
SPA(Single Page Application)
방식이 등장하며, 하나의 HTML 페이지를 이용해 웹 전체를 구현하고, Javascript 파일이 HTML 요소 생성부터 모든 페이지의 기능을 동적으로 처리하기 시작했다. 동적인 처리를 위한 Javascript 코드는 최초 통신에서 한 번에 송수신 되며, 그 이후로는 수신된 Javascript 코드를 통해 서버와 실시간으로 통신
하며 화면을 동적으로 구현했다.
또한, 앞단에서 해야 할 일들이 많아졌기 때문에 FE가 생겨났고, 자연스럽게 웹 브라우저가 필요한 서버와의 통신은 데이터 전송 및 연산 작업이 많아지면서 BE가 생겨났다.
사용자 수
와 데이터의 양
이 늘어나며 웹서비스가 복잡해졌고, 더 다양하고 사용자에게 더 나은 사용경험을 제공하기 위한 Interaction이 많아지면서 FE/BE 경계가 더 선명해졌고, 그에 맞춰 BE에서는 API를 여러개를 만들고 데이터 요청을 분산 처리하는 Gateway를 구축(MSA)해 사용자 수에 대응했고, FE에서도 더 다양해진 사용자 디바이스와 요구에 맞춰 FE 서버를 분리하게 됐다.
백엔드 개발자는 보통 API를 개발하는 개발자를 의미하고, 프론트엔드에서 요청하는 데이터가 정확한 곳으로 안전하게 통신하는지 확인하고 유지보수하는 역할을 담당한다. 백엔드에서도 데이터 및 시스템을 다루는 개발자가 존재하고, 이런것들을 다루는 역할은 조금 더 난이도가 있기 때문에 조금 더 뒷단으로 가려는 노력이 항상 필요하다.
앞으로 개발하게 될 API는 웹 시스템에서의 API를 일컫는 단어로, 클라이언트(브라우저)와 데이터베이스라는 두 어플리케이션 사이에서 데이터를 CRUD(Create, Read, Upload, Delete) 하기 위해서 필요한 접점이라고 볼 수 있다. (두 어플리케이션은 서로 통신하지 않고 미리 정해둔 경로의 API에게 통신하여 원하는 데이터를 통신받는다)