728x90
반응형

React.js란 무엇인가?

 

React는 현재 현업에서 인기 있는 웹/앱(RN)의 View를 개발할 수 있도록 하는 라이브러리

보통 우리가 생각하는 어플리케이션(웹, 앱 혹은 데스크톱용 소프트웨어)을 만들기 위해서는 사용자가 조작하기 위한 UI(User-Interface), UI를 컨트롤 하기 위한 로직, 데이터를 처리하는 비즈니스 로직 등 3가지 부분으로 개발이 필요함

이렇게 특정 부분을 나누어 개발하는 방법론을 MVC 패턴, MVVM패턴 이라고하며, React.js는 View 즉, 사용자가 조작하기 위한 UI를 만드는 것을 도와주는 라이브러리

 


React.js의 특징

 

1️⃣ 선언형임
2️⃣ 컴포넌트 기반으로 재사용성이 뛰어남
3️⃣ Virtual DOM(가상돔)기반으로 가벼움
4️⃣ React 컴포넌트는 state와 props을 가짐

 


1️⃣ 선언형 Declarative 이란

 

리액트를 하면 자주 접할 수 있는 패러다임은 선언형 Declartive 프로그래밍과 명령형 Imperative 프로그래밍임

 

funfunStudy/study

FunctionalPrograming Study. Contribute to funfunStudy/study development by creating an account on GitHub.

github.com

리액트는 선언형 성격에 맞게 컴포넌트(원하는 결과, 뷰)를 얻기 위해 <tag></tag> jsx 문법을 통해 구현함

즉, jsx를 얻기 위한 알고리즘에 대한 구현을 하지 않음

(예를 들어 document.createElement나 혹은 해당 컴포넌트의 변경사항을 체크하는 알고리즘, 리-렌더링 여부에 대한 알고리즘을 구현하지 않음)

이와 같은 선언형 특성은, 리액트를 사용할 때 화면 설계라는 초점에 맞춰서 개발할 수 있도록 해주므로, 다른 부분에 대한 고민을 최소화 해주어 높은 생산성을 보장할 수 있도록 해줌

 


2️⃣ 컴포넌트 및 재사용성

컴포넌트는 구현, 명세화, 패키지화, 그리고 배포될 수 있어야 함

컴포넌트는 독립적인 단위의 소프트웨어 모듈을 말함

즉 소프트웨어를 독립적인 하나의 부품으로 만드는 방법

리액트는 웹에서 쓰는 각 요소들을 컴포넌트로 만들 수 있게 해 기존의 UI를 다른 화면에서 다시 쓰거나, 다른 프로젝트에서 다시 쓸 수 있도록 하는 장점(높은 재사용성)을 가짐

 


3️⃣ Virtual DOM(가상돔)

Virtual DOM 참고자료 👇

 

Virtual DOM(버추얼 돔,가상 돔)을 직접 만들어보자

Vue나 react, angular등 버추얼 돔을 사용하는 프레임웍들이 점점 늘어나고, 이를 통해 성능 향상을 이뤄냈다고 하는 글들을 보고 이놈이 어떤 녀석인지 알아보게 되었다.

enro2414-40667.medium.com

가상돔을 이해하기 위해서 In-memory의 개념에 대해 알아두면 좋음

웹 브라우저와 자바스크립트를 동작시키기 위한 V8엔진도 소프트웨어임

즉, 이들이 실행되면 메모리(RAM)가 할당됨

가상돔은 이 메모리 단에서 컴포넌트에 대한 정보를 생성하고 비교하여 전체 DOM 트리가 업데이트가 필요한 경우 이를 반영하는 방식을 말함

만약, 실제 DOM 트리에서 변화가 바로바로 반영된다면 하나의 동작(입력값 변화, 데이터 변화)마다 전체 DOM트리가 변경되어 브라우저 렌더링 과정(HTML 파싱, 렌더 트리 구축, 렌더 트리 배치, 렌더 트리 그리기 등의 과정)이 매번 일어나서 웹 브라우저의 동작에 많은 리소스가 들어가게 됨

 

 


4️⃣ State 와 Props

리액트는 내부적으로 State와 Props를 가짐

이는, UI(User Interface)가 사용자의 동작(Actions)에 따라 다른 UI나 Action이 필요하기 때문임

리액트를 잘 다루기 위해서는 이런 State에 대한 이해가 필요함

어떤 컴포넌트를 만들 때, 내부 컴포넌트에 어떤 State가 있을지, 페이지 전체에 어떤 State가 있는지 파악하고 개발을 진행하는 것이 나음

리액트로 UI 개발을 한다면, State와 Props를 어떻게 구성할 것인지를 먼저 파악하고 개발을 하는 것이 좋음

 


React 사용 이유

1️⃣ 사용자 경험

웹에서 앱과 같은 사용자 경험을 만들어 줌 

 

2️⃣ 재사용 컴포넌트

중복되는 요소들을 하나로 묶어주기에 유지보수가 좋아짐

 

3️⃣ 데이터-화면 일치

데이터를 화면에 반영할 때 데이터와 화면을 일치시키는 것이 좋아짐

반응형

'프로그래밍 > React' 카테고리의 다른 글

component 예제  (0) 2021.02.19
create-react-app 설치  (0) 2021.02.17
TOAST UI Editor 설치하기  (0) 2021.02.16
TOAST UI 설치하기  (0) 2021.02.15
webpack 설치  (0) 2021.02.12
복사했습니다!