웹 서비스에 필요한 기능들을 제공해주는 다양한 도구들의 모음
웹 서비스의 정형화 된 구성을 많은 웹 프레임워크가 기본적으로 제공함
CSR & SSR
양뱡항 통신으로 사용자와 상호작용하는 현대적인 웹은 대부분 동적 웹이다. 동적 웹은 사용자가 다양한 기능을 수행하고 프론트엔드와 백엔드가 유기적으로 통신하며 동작한다. 동적 웹을 구현하는 방법으로 CSR과 SSR이 있다.CSR (Client-Side Rendering)
: 프론트엔드에서 사용자가 페이지에서 보는 동적인 부분을 대부분 처리하는 방식
- 사이트가 변하는 부분들을 프론트엔드에서 처리
- 프론트엔드 코드에 페이지 리소스들이 미리 정의되어 있음
- 서버와의 통신은 API 통신을 이용하고 데이터만 주고받음
- 빠른 반응이지만 페이지의 내용은 API 호출이 완료된 후에 보여짐
- 복잡한 프로젝트 구성, 큰 개발 사이즈
SSR (Server-Side Rendering)
: 백엔드에서 페이지 대부분의 영역을 처리해서 프론트엔드로 전달하는 방식
- 사이트가 변하는 부분들을 백엔드에서 처리
- 백엔드에서 HTML 파일을 작성해서 프론트엔드로 전달, 프론트엔드는 HTTP 응답을 받아 화면에 표시
- CSR에 비해 쉬운 구성, 작은 개발사이즈
- 로딩이 완료되면 페이지와 데이터가 한 번에 표시됨
- 상대적으로 사용자가 보기엔 로딩이 느려 보임
- 페이지 이동할 때마다 다시 로딩하기 때문에 페이지 깜빡임
Express.js - Node.js 의 가장 유명한 웹 프레임워크
Koa.js - 현대적인 JavaScript를 적극적으로 사용하는 웹 프레임워크
Nest.js - TypeScript 를 사용하며, 고정된 구조를 제공하는 웹 프레임워크
기타 - Hapi, Sails.js, Meteor.js 등