사용자 인터페이스(UI
)를 만들기 위한 자바스크립트 라이브러리 이다.
규모가 커지고 복잡한 애플리케이션을 개발하며 생산성을 향상시키고 많은 양의 데이터 관리와 코드 유지 보수를 더욱 편리하게 하기 위해 다양한 프레임워크, 라이브러리가 등장하게 된다. 그 중에 리액트는 오로지 View
만 담당한다.
리액트와 같은 프론트엔드 라이브러리 혹은 프레임워크를 사용하는 가장 큰 이유 중 하나는 UI를 자동으로 업데이트해 준다는 점이다. 리액트는 가상 돔
(Virtual Dom
) 을 통해 UI
를 빠르게 업데이트한다. 가상 돔은 이전 UI
상태를 메모리에 유지해서, 변경될 UI
의 최소 집합을 계산하는 기술이다. 이 기술 덕분에 불필요한 UI
업데이트는 줄고, 성능은 좋아진다.
참고 : https://www.youtube.com/watch?v=BYbgopx44vo
Create react app
(툴체인) 도구들을 엮어서 모아둠리액트는 UI
기능만 제공하기 때문에 개발자가 직접 구축해야하는 것들이 많다.
때문에CRA
는 웹 어플리케이션을 만들기 위한 환경을 제공한다.
SPA
(Single Page Application)를 만들기 위해서 CRA
를 가장 많이 사용한다.
CRA
사용하기 전에 작업 환경을 설정해야 한다.
Node
, npm
Node
= 브라우저 밖에서도 자바스크립트를 실행할 수 있게 만들어주는 실행 환경.npm
Node
기반의 패키지를 사용하려면 npm
이라는 패키지 도구가 필요하다. npm
을 통해 다양한 패키지를 설치하고 버전을 관리할 수 있다.재사용 가능한 UI
단위를 뜻한다.
블록들을 모아서 성을 쌓고, 부품들로 자동차를 만들고.. 독립적으로 사용할 수 있는 하나의 모듈을 말한다.
웹 개발하면서 유지보수에 이점을 가지고 있는 것이 바로 이 컴포넌트라고 할 수 있다.
컴포넌트
= 독립적으로 사용할 수 있는 하나의 모듈이다.
Javascript syntax extension
=> 자바스크립트 확장 문법
자바스크립트에서 만든게 아니라 리액트에서 만든 문법
JSX로 작성한 코드는 브라우저에서 동작하는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환한다.
자바스크립트계의 파파고 = 바벨. 즉, 바벨은 번역기 역할을 한다.