초기의 웹 시스템
1989년에 팀 버너스 리가 월드 와이드 웹을 발명하고 많은 서비스들이 웹을 통해 제공되었지만
초기 1세대의 웹 시스템들은 지금 웹 시스템보다 훨씬 단순한 형태였다.
단순히 text를 웹 브라우저를 통해 보는 수준이였음.
굉장히 간단한 구조였지만 정적인 페이지밖에 보여주지 못하는 구조였다.
사용자 인터렉션의 중요하게 됨
단순했던 웹 서비스들이 조금씩 복잡해지기 시작하면서 사용자인터렉션이 중요해지기 시작함.
-> 자바스크립트의 역할이 커지기 시작한것임.
- 자바스크립트: 웹상에서 주로 동적인 기능을 제공하기 위해 사용된다.
웹서버가 html 뿐만 아니라 동적인 기능을 구현하는 자바스크립트 코드까지 같이 웹 브라우저에 전송하게 되면서
더 이상 전체 페이지를 로드하지 않아도 사용자의 인풋을 동적으로 처리하고 새로운 데이터들을 제공할 수 있게 된 것.
하지만 이때까지도 현재의 API 개념이 사용되지는 않았다.
여전히 동일한 서버에서 HTML,자바스크립트, 데이터가 전부 웹브라우저에 전송되고 있었다.
데이터의 경우에는 XML 구조로 전송되었음.
자바스크립트의 부상
동적인 서비스가 중요시되고 웹 서비스의 발전에 따라 자바스크립트의 위상이 올라갔다.
그러자 급기야 자바스크립트 코드로 HTML을 직접 생성하는 것도 가능하게 되었고,
어느새 자바스크립트가 메인이 되어 HTML 생성을 비롯한 프론트엔드의 대부분을 구현하게 되었다.
따라서 부분적으로 동적이였던 페이지들이 이제는 전체적으로 동적으로 바뀌게 되었다.
->SPA(single page application)방식이 유행이됨. 말그대로 단일 페이지로 모든 웹사이트 서비스를 구현하는 것.
이러다 보니 서버와의 통신은 데이터 전송, 생성 및 수정에 관한 것이 주가 됨. 최초 통신에서 페이지 렌더링에 필요한
모든 자바스크립트 코드를 받으므로 그다음부터는 서버와 데이터만 주고 받으면 되게 됨.
-> 자연스럽게 프론트엔드, 백엔드로 영역이 나뉘게 됨.
프론트 엔드 서버: 페이지 렌더링에 필요한 HTML과 자바스크립트 파일을 전송하는 역할
백엔드 서버: 페이지에 필요한 데이터 생성 및 전송 담당
백엔드 개발자에게 요구되는 점
백엔드 개발자의 중요한 역할: 많은 수의 동시 요청을 장애 없이 실시간으로, 최대한 빠른 속도로 처리 할 수 있는 시스템을 구현하는 것.
-> 안정적이고 확장성이 높으며 실행 속도도 높은 시스템을 구현하기에 유리한 언어가 주로 이용됨. Java,Scala,Rust,Python
처리 용량 및 속도에서 크게 높은 수준을 요구하지 않는 경우에는 간단한 언어들: PHP, Ruby
최근에는 NodeJS 라는 자바스크립트 엔진이 인기를 얻으면서 자바스크립트로 구현된 백엔드 시스템도 늘어난다고 한다.
자바스크립트로 백엔드를 구현했을 때는 무엇이 좋을까? 바로 한가지 언어로 프론트엔드, 백엔드 모두 구현할 수 있다는 점이다.
->다른 언어와 비교했을 때 속도는 어떨까? 찾아봐야겠다.
'Computer > Web Programming' 카테고리의 다른 글
[Authentication] 인증 (0) | 2021.04.13 |
---|---|
Flask framework 사용하는 함수 정리 (0) | 2021.03.30 |
[web]flask error, logging 기초 정리 (0) | 2021.03.12 |
[web] What is CDN? (0) | 2021.03.12 |
[web]REST API method 정의하기 (0) | 2021.03.08 |