**Angular**
Full framework 를 지향한다. 웹에 필요한 전반적인 모든 기능을 제공한다.
**Vue**
Angular 와 같이 Full framework 를 지향하면서도,
React 와 같이 vue 를 다루는 Library 로도 사용할 수 있다.
**React** (Js **library** for building user interfaces)
Only Rendering & Update 에만 관여한다. http client 나 style 에 대한 기능은 들어있지 않다.
Component Based Development.
**Component?**
<내가지은이름 prop={false}>내용</내가지은이름>

HTML 에서 header, section, footer, article 등 구역을 나눴었다.
React 에서의 Component Based 도 이처럼 구역을 나눈다.

이렇듯 Coponent Tree 는 Dom Tree 와 비슷하지만 다르다.
Dom 은 이미 브라우저에 내장되어있는 것.
Component 는 내장되어있는 tag들을 조합하고, 스타일, 동작까지 입혀서 한번에 다루는 형태로
만들고 이를 재활용한다.
**Virtual Dom**
가상의 Dom Tree로 이전 상태와 이후 상태를 비교하여, 바뀐 부분을 찾아내 자동으로 바꾼다.
**CSR**(React Client Side Rendering)
****특정 Domain, 웹 서비스에 접속하면 html 을 먼저 다운받는다. html이 다운되면 Dom 요소가 보이거나,
style 이 적용되어서 꾸며진다.

근데 React 는 JS 로 이루어진 하나의 거대한 web application 이다. 이는 JS 가 전체가 다 다운
받아져야 실행이 가능하다. html 을 다운받으면, 빈껍데기의 html 이 내려오고, 그 안에 경로로써
JS 파일을 요청하게 된다. JS 파일에는 React web application 전체가 들어있을 것이다.
이를 다 받고, script 가 로드되고 실행된다.

실행이 된 이후에 React Component 들이 화면에 그려질 것이고, 그때서야 화면이 보이고 user 가
interaction 을 할 수 있다.
**SSR**(Server Side Rendering)
html 을 다운받으면 화면에 출력된다. 이후 JS 를 받을텐데 이 때 이미 html 구성요소가
렌더링 되고 있는 것이다. 그렇지만 동적인 interaction 은 불가능한 상태다.

어쨌든 이 찰나의 JS 를 다운받는 순간에 user 는 화면을 보게 된다.
동작은 되지 않지만, 미리 렌더링 된 결과물을 보고 있는 것이다. 마찬가지로 JS 가 다 받아지면,
React app 또한 받아진 것이다. React 를 실행시키면 이제 user 가 interation 할 수 있다.

html 이 다운된 직후부터 ~ React app 이 실행되기 전까지 먼저 화면을 볼 수 있다는 것이다.