■ React 리액트 장점과 단점

- 리엑트의 장점

  • 빠른 업데이트
    # 웹 사이트를 탐색할 때 화면에 나타나는 내용이 변경되는 것
    # Virtual DOM 사용
    : Virtual DOM은 가상의 DOM이다.
    : DOM은 Document Object Model의 약자로 웹페이지를 정의하는 하나의 객체
    # 하나의 웹 사이트에 대한 정보를 모두 담고있는 큰 그릇
  • 랜더링 속도

 

일반적으로 사용자와 상호작용을 하는 웹페이지 같은 경우 업데이트가 수시로 이루어진다.

그래서 화면이 업데이트된다는 말은 곧 DOM이 수정된다는 말과 동일하다.

 

기존 방식으로 화면을 업데이트할 경우 DOM을 직접 수정해야하는데 이 경우

선응에 영향을 크게 미치고 비용도 많이드는 작업이다.

수정할 데이터를 DOM에서 모두 찾아야하기 때문..!

 

하지만 React는 DOM을 직접 수정하는 것이 아닌 업데이트 해야할 최소한의 부분만을 찾아 업데이트한다.

 

위 그림처럼 어떤 상태의 변경, state Change가 일어나면 Vertual DOM에서는

업데이트해야 될 최소한의 부분을 검색, 컴퓨트 딥 한다.

이후 검색 된 부분만을 업데이트하고 다시 랜더링하면서 변경된 내용을 사용자에게 빠르게 제공할 수 있다.

 

  • 컴포넌트 기반의 구조 (Component-Based)
    컴포넌트는 구성 요소라는 뜻을 가지고 있으며, 리액트에서는 모든 페이지가 컴포넌트로 구성되어 있고
    하나의 컴포넌트는 또 다른 여러 개의 컴포넌트의 조합으로 구성될 수 있다.
    # 작은 레고 블록들이 모여 하나의 완성된 모형이 되는 것과 비슷하다.

  • 재사용성(Reusability)
    다시 사용이 가능한 성질

 

※ 재사용 시에는 의존성 문제 외에 다양한 호환성 문제가 발생할 수 있다.

 

재사용성이 높게 개발해야 한다는 말은 소프트웨어 또는

모듈이 다른 곳에도 쉽게 적용하여 곧바로 쓸 수 있도록 개발하는 것을 의미

다른 모듈의 의존성을 낮추고 호환성 문제가 발생하지 않도록 개발해야한 다는 의미이기도 하다.

 

  • 재사용성이 높아지면?
    개발 기간이 단축된다.
    # 비슷한 소프트웨어를 개발한다고 할 때 기존에 개발해둔 모듈을 곧바로 재사용하여 개발하면 된다.

  • 유지보수 용이
    # 여러 소프트웨어에서 공통으로 사용하는 모듈에 문제가 생기면 해당 모듈만 수정하면 되기 때문!
    # 개발 시 예상치 못한 버그를 마주치는 상황이 빈번하나 재사용성이 높을 시 버그 원인을 찾기 쉽다.
    # 리엑트 컴포넌트를 개발할 때 항상 쉽고 재사용 가능한 형태로 개발하는 것이 좋다

  • 활발한 지식공유 & 커뮤니티
    # 모르는 것을 바로 찾아 볼 수 있다.
    # 오픈소스 깃 허브 프로젝트를 통해 확인 가능
    # stack overflow에서도 확인 가능

  • React Native
    # 모바일 앱 개발 가능
    # 안드로이드 Kotlin / iOS Swift를 배워야하나 React Native를 통해 두 앱을 동시에 만들 수 있다.

■ 리엑트 단점

  • 방대한 학습량
    # 기존과는 다른 방식의 UI 라이브러리이기 때문에 배워야할게 많다.
    : Virtual DOM, JSX, Component State Props 등의 새로운 개념..

  • 버전 업데이트가 꾸준히 나오고 있어 이에 대한 내용 학습 및 이해 필요

  • 높은 상태관리 복잡도
    state는 리액트 컴포넌트의 상태를 의미한다.
    # Virtual DOM에서 바뀐 부분만 찾아 업데이트한다고 했는데 바뀐 부분이 state 컴포넌트를 의미한다.
    # 큰 규모의 프로젝트는 상태 관리를 위해 리덕스, 보백스, 리코일 같은 외부 상태관리 라이브러리를 사용한다.

'Web > React' 카테고리의 다른 글

React JSX 정의와 역할  (0) 2024.06.25
React create-react-app  (0) 2024.06.25
React 직접 연동하기  (0) 2024.06.25
React 리액트 소개  (0) 2024.06.25
React 개발환경 설정하기  (0) 2024.06.25

+ Recent posts