전통적인 Web System Architecture
User interaction이 점점 더 중요해짐 - JavaScript / AJAX
SPA(Single Page Application) - 구별되기 시작하는 Frontend와 Backend
규모가 커지기 시작하는 Web System - Micro Service Architecture, Data Pipeline Systems, ML(Machine Learning), and etc
Modern Development Team 구조
Web Server가 HTML page 전체를 클라이언트(웹 브러우저 등등)에게 전송.
초창기 웹사이트/서비스에 적합했던 시스템. 초창기 웹사이트 들은 간단했고 단순 정보 제공 위주였다. 특별히 기능이 많지 않았으며, 무엇보다 user interaction이 많이 요구되지 않았다.
웹서비스들이 점점 발전함에 따라 단순한 static page가 아닌 더 dynamic한 요소들이 요구됨.
그럼으로 JavaScript의 역할이 커지기 시작함.
Web server에서 전체 HTML 페이지 뿐만이 아니라 JavaScript JavaScript를 통해서 서버와 필요한 데이터만 주고 받음으로 dynamic한 user interaction을 구현하게 됨.
AJAX라는 이름으로 이 기술이 알려지기 시작함.
그러나 아직 JavaScript는 일부분에서만 사용되었고, 또한 아직 현재 통용되는 API의 개념이 널리 사용되지 않았다.
동일한 server에서 html/javascript 과 데이터 둘다 전송.
데이터 전송에는 XML이 쓰이기 시작함.
SPA(Single Page Application)의 개념이 개발됨.
Fronetend 와 Backend가 구조적으로 분리가 되면서, Frontend 서버와 Backend API 서버도 분리가 되며 그에 따라 Frontend 개발과 Backend 개발 업무가 분리가 되는 구조로 발전된다.
웹 사이트/서비스들이 엄청나게 발전되고 규모가 커짐에 따라 시스템 구조도 훨씬 더 복잡하고 커지게 된다.
Frontend는 NodeJS 와 ReactJS등의 JavaScript 엔진과 라이브러리의 발달으로 웹상에서 더 복잡한 기능들을 구현 가능하게 된다.
NodeJS의 발전으로 frontend 개발자가 간단한 backend 기능을 직접 구현하는 일도 요즘은 흔하게됬다.
Backend는 많은 웹서비스들의 스케일들이 엄청나게 커짐에 따라(그리고 분석해야 하는 데이터 양이 엄청나게 늘어남에 따라 ) architecture가 굉장히 복잡하게 발전되며 규모도 엄청나게 커진다.
Ref.
WeCode 학습자료