[공통점]
등장배경: 기존 mvc framework를 개선하기 위해
더보기
MVC (Model View Controller)의 단점은?
1. 사이트에 뭐라도 하나 (데이터가)변경된다면 페이지 전체를 리로딩 해야되는 불편함
>> ajax 기술 등장 이후 특정 부분만 수정해서 불러오게 js 명령을 내릴 수 있게 되었지만,
전부 일일이 코딩해야 하는 번거로움
2. 플랫폼에 따라(pc 브라우저, 모바일 브라우저, AOS 앱, iOS 앱) 서버로 요청을 하면 db에서 정보를 찾아서, html/css/js로 렌더링하고 보내줌 (front, backend 의 개념이 지금과 조금 다른 이유)
>> 서버에서 데이터만 보내줘도 브라우저에서 html, css, js로 렌더링을 해낼 수 있다면 유저가 어디에서 요청을 하든 동일한 작업을 수행해서 데이터를 전송만 하면 된다. 서버 개발자는 데이터를 전송하는 것에만 집중을 할 수 있게 된다.
>> 브라우저에서도 동작하는 강력한 라이브러리나 framework를 만들면 가능하지 않을까?
>> SPA framework 등장
- 서버에서 정적 웹처럼 html, css, js로 된 코드들을 브라우저에 전송
- 여기서 js 코드가 주어진 데이터에 따라 html 웹페이지를 렌더링
- 동적웹에서 서버가 하던일을 사용자의 컴퓨터에서 브라우저가 해내도록 함
- 서버에서 데이터를 받아와야 할 때마다 요청을 보내서 반환된 데이터로 사이트 내용을 갱신함
- 사이트에서 뭘 할 때마다 새로 접속하지 않고 한번 로드된 화면에서 많은 기능이 사용 가능
[각자의 특성]
- React
- 대표 use case : facebook, instagram, airbnb, netflix
- 사실 framework보다는 library 개념이 강하다
- Typescript 지원
- JSX 기반의 Component : js와 xml이 공존하는 jsx로 컴포넌트들을 관리
- 변화가 일어나면 기존의 DOM과 비교하여 변화가 일어난 곳만 업데이트할 수 있음
- 프로젝트 관리가 수월하고 테스트할 때도 좋음
- Vue
- 대표 use case : xiaomi, grammarly, alibaba, adobe
- React에 비해 Typescript 지원이 조금 미흡한 편
- Single File Component : html, css, js 를 .vue 확장자의 단일 파일에 정의한다
'웹 개발' 카테고리의 다른 글
What Makes Flutter Different (0) | 2022.05.19 |
---|---|
웹앱에 Flutter 추가하기 (0) | 2022.05.17 |
AWS Amplify / Cloudformation / S3 로 웹 어플리케이션 배포 (0) | 2021.11.15 |