컴포넌트 기반의 UI 라이브러리
Shotgun Surgery
- 같은 구조를 가지고 있는 여러 페이지로 구성된 홈페이지의 경우 동일한 영역을 수정하기 위해 여러 파일을 모두 수정해야했음
- 중복 코드 작성 및 유지보수가 힘듦
--> 컴포넌트화 방식 사용

- 특정 기능을 하는 페이지들을 각각 컴포넌트로 만들어 불러와서 사용
- 중복 코드 제거 가능
- 유지보수성 향상
선언형 프로그래밍

- 명령형 프로그래밍 예시 : jQuery
- 선언형 프로그래밍 예시 : React
Virtual DOM (가상 DOM)
- DOM : 웹 페이지에 대한 인터페이스 / 웹 브라우저가 html을 시각적으로 보여주기 위해 트리형태로 변환시켜놓은 객체

- 화면 업데이트가 발생할때마다 DOM 을 새로 그리기 때문에 많은 자원이 필요함 --> 성능저하 발생

- Virtual DOM
- 가상의 DOM에 변경된 화면을 업데이트하고 변경된 부분을 모아서 실제 DOM에 한번에 반영함.
--> 과다 연산을 줄일 수 있음