Front_End [JS기반]/React.js + Next.js

[ 3D Web : Front_React.js ] React란 무엇인가?

안다미로 : APP & Web3 & D.S 2024. 11. 20. 22:24

 

 

 

[ 3D Web : Front_React.js ] React란 무엇인가?

 


∇ FrontEnd_React : React.js란 무엇인가??

목  차

1. React란.
2. React의 특징.

 

 


Ⅰ . React란?


 

 ☆ React란  :  UI [사용자 인터페이스]를 구축하기 위한 선언적*효율적이며 유연한 JavaScript 라이브러리. 

 

         ==>> ◎ "컴포넌트"라고 불리는 코드블록을 활용해, 복잡한 UI를 구성하도록 돕습니다.

 

 

       ◆  React를 사용하는 이유는 무엇일까?

 

             √ 순수 JS만을 사용하여 화면을 구현하려면 관리가 힘들고,

                    프로덕트의 규모가 커질수록 성능 저하의 원인이 될 수 있습니다. 

 

             √  위에서 말한 것처럼, React는 '컴포넌트'를 기반으로 해서 효율적으로 UI를 쉽게 구현 가능하게 설계되었습니다.

 

                  

             √  컴포넌트와 더불어서, 리액트의 사용 이유를 매력적으로 만들어주는 요소는 " Virtual DOM(가상 DOM)" 입니다.

 

 

 ◇ 웹 브라우저가 웹사이트의 텍스트 문서(HTML)을 읽어서

      DOM(Document Object Model)이라는 트리구조로 변경하여 유저에게 보여주게 되는데,

      JS를 사용하는 웹 개발자들은 사용자의 반응에 따라 DOM 트리구조를 변경하여 웹사이트의 내용을 갱신합니다.

 

         However,

          == >> 매번 화면상에 작은 변화라도 발생 할 때마다 전체 화면을 재 렌더링 하는 것은 성능에 좋지 않습니다.

 

 

 

       ☆ React는 이 문제를 해결하기 위해서 Virtual DOm이라는 개념을 도입하였습니다.

 

            

가상 돔

 

                     *버츄얼 돔의 개념은 추후에 더 자세히..

         

 

     - 리엑트를 사용해 개발을 한다면, Virtual DOM을 사용해, UI를 자동으로 업데이트해줘서 빠른 성능을 유지가능합니다.

 

        - Virtual DOM이란 메모리 상에 가상으로 존재하는 DOM으로 JavaScript의 객체 형태로 존재합니다.

 

   

    - 다양한 커뮤니티와 폭넓은 개발자-생태계를 유지하고 있기 때문에,

       개발에 필요한 자료등을 쉽게 얻을 수 있고, 다양한 라이브러리와 도구룰 활용해 개발 생산성을 높일 수 있습니다.

 

 

 


Ⅱ . React의 특징.



 

 

      1. Data_Flow


 

 

              √ React는 데이터의 흐름이 한 방향으로만 흐르는 단방향 데이터 흐름을 가집니다.

                           : 데이터가 부모 - > 자식 방향으로만 흐른다는 뜻!

 

 


 

      2. Component  기반 구조.


         

 

 

    ◎ "Component"란,  독립적인 단위의 소프트웨어 모듈을 의미합니다.

 

    ◎  React는 화면을  "Component" 로 분할*조합해서 만듭니다.

                == 하나의 페이지 내에서도 여러 부분들을 독립된 컴포넌트로 제작하고,

                       이 컴포넌트들을 조립해 화면을 구성합니다.

 

                     √ 컴포넌트 단위로 기능이 쪼개져 있기 때문에,  전체 코드 구성 파악이 용이합니다.

                     √ 기능 단위, UI 단위로 캡슐화 시켜서, 코드를 관리하기 때문에 재사용성이 높습니다.

 

 

                ==>> 코드 반복 입력 없이, "Component"만 import 시켜서 사용하면 된다는 간편함이 있으며

                               프로덕트가 복잡해지더라도 전체 코드의 유지보수 * 관리가 용이합니다.

 

 


 

     3. Virtual DOM


 

     ∇  DOM은 html / xml /css 등을 트리 구조로 인식하고, "데이터를 객체로 간주하고 관리" 합니다. 

 

     ∇  React는 이러한 DOM Tree 구조와 같은 구조체를   "Virtual DOM"으로 가지고 있습니다.

               ==> 이벤트 발생시마다  Virtual DOM을 만들고, 그 때마다 실제 DOM과 비교하면서

                           변경이 필요한 최소한의 변경사항만 실제 DOM에 반영해 앱의 효율성과 속도를 개선 가능합니다.

 

 


     4. Props와 State


    

       

 

              ∇ Props. 

                     - Props란,  부모 컴포넌트 상에서 자식 컴포넌트로 전달해주는 데이터 입니다.

                     - "자식 컴포넌트" 측에서 전달받은 props는 변경이 불가능하고,

                        props를 전달해준 "부모 컴포넌트"측에서만 props를 변경 가능합니다.

 

 

              ∇ State. 

                    - State란, 컴포넌트 내부에서 선언하며 내부에서 값을 임의로 변경 가능합니다.

                    - State는 동적인 데이터를 다룰 때 사용하며,

                                    유저와의 상호작용을 통해 데이터를 동적으로 변경할 때 사용합니다.

                        ==>> 이는 " 클래스형 컴포넌트 " 에서만 사용 가능하고, 각각의 State는 독립적으로 유지됩니다.

 

 

              ∇ JSX.

                    -  JSX란, React 상에서 사용하는 문법입니다.

                    -  JS와 HTML을 동시에 사용하며, HTML에 자바스크립트 변수들을 바로 사용할 수 있는 일종의  템플릿 언어.