React 란?
사용자 인터페이스를 만들기 위한 JavaScript 라이브러리
따라서 전역 상태 관리, 라우팅, 빌드 시스템 등 UI 를 제외한 모든 부분을 직접 구축해야 한다.
또한 다른 부분을 위해서 원하는 라이브러리를 골라서 사용할 수 있다.
이러한 특징은 개발자가 하나씩 조정할 수 있다는 장점으로 볼 수도 있지만 초심자에게는 높은 장벽으로 느껴진다.
초심자는 react create app
을 통해 간편하게 리액트 프로젝트 작업환경을 구축할 수 있다.
가상 돔(Virtual DOM)이란 ?
리액트의 비교(diffing) 알고리즘을 통해 이전 UI 상태와 변경될 UI 상태의 최소집합을 계산하는 기술
최소한의 연산으로 DOM 트리를 업데이트하기 때문에 불필요한 UI 업데이트를 줄여 성능이 더 좋아진다.
만약 리액트의 가상 돔을 사용하지 않는다면, 직접 DOM을 업데이트해야 한다.
업데이트보다 Reconciliation이라는 말이 더 정확하다고 하던데, 정확한 것은 여기서...
컴포넌트를 통해 UI를 재사용할 수 있는 여러 조각으로 나눌 수 있다.
컴포넌트는 스스로 상태를 관리할 수 있고 캡슐화되어 있기 때문에 컴포넌트를 이용해 복잡한 UI를 만들 수 있다.
리액트는 소문자로 시작하는 컴포넌트는 DOM 태그로 처리하기 때문에 컴포넌트 이름은 꼭 대문자로 시작해야 한다.