A JavaScript library for building user interfaces
사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리
메타가 만든 오픈소스 라이브러리
*라이브러리 : 자주 사용되는 기능들을 정리해 모아 놓은 것.
특정 프로그래밍 언어에서 자주 사용되는 기능들을 잘 모아서 정리해 놓은 모음집
사용자와 컴퓨터 프로그램이 서로 상호작용을 하기 위해 중간에서 서로 간 입력과 출력을 제어해 주는 것.
사용자 인터페이스를 만들기 위한 기능 모음집.
React는 SPA를 쉽고 빠르게 만들 수 있도록 해주는 도구
:star: 웹사이트의 작동 원리와 흐름을 함께 이해하는 것이 중요!
*업데이트 : 사용자가 웹사이트를 탐색할 때 화면에 나타나는 내용이 바뀌는 것
리엑트에서는 빠른 업데이트를 위해 내부적으로 Virtual DOM이라는 것을 사용. Virtual DOM은 가상의 돔.
DOM은 Document Object Model의 약자로 웹페이지를 정의하는 하나의 객체. 즉, 하나의 웹사이트에 대한 정보를 모두 담고 있는 큰 그릇.
크롬 브라우저의 개발자 도구를 열어 콘솔 탭에서 document라고 입력하면 리액트 공식 웹사이트의 정보가 모두 담겨있는 document object 모델이 나옴. 아래 그림 참고...
Virtual DOM
웹페이지와 실제 DOM 사이에서 중간 매개체 역할을 하는 것.
리액트가 Virtual DOM을 사용하는 이유는 빠른 업데이트 때문...
Virtual DOM이 어떻게 업데이트를 빠르게 하는가?
-> 일반적으로 사용자와 상호작용을 하는 웹페이지 같은 경우 화면의 업데이트가 수시로 이루어짐.
기존의 화면을 업데이트하려면 DOM을 직접 수정해야 함 but 이는 성능에 큰 영향을 미침 + 비용 많이 듦 cuz 수정할 부분을 DOM의 데이터에서 모두 찾아야 하기 때문.
React : DOM을 직접 수정하는 것이 아니라 업데이트해야 할 최소한의 부분만을 찾아서 업데이트.
컴포넌트 : 구성요소라는 뜻을 갖고 있는데 리액트에서는 모든 페이지가 컴포넌트로 구성되어 있고 하나의 컴포넌트는 또 다른 여러 개의 컴포넌트의 조합으로 구성될 수 있다. 마치 레고 블록 조립하듯 컴포넌트들을 모아서 개발...
재사용성 : 객체지향 프로그래밍을 배울 때 등장하는 개념으로 소프트웨어 개발에 있어 굉장히 중요함. 개발할 때 항상 생각해야 함.
*StackOverflow : 개발자들이 많이 찾는 커뮤니티.
React Native를 이용해 모바일 앱을 개발할 수 있다는 점. ()