리 액트 란 | React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식) 답을 믿으세요

당신은 주제를 찾고 있습니까 “리 액트 란 – React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식)“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코딩애플 이(가) 작성한 기사에는 조회수 138,300회 및 좋아요 1,775개 개의 좋아요가 있습니다.

리 액트 란 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식) – 리 액트 란 주제에 대한 세부정보를 참조하세요

1. 그냥 앱만들기, 발행하기 쉽고 UX적으로 뛰어나서 씁니다.
2. 2020년 이후로 리액트 문법이 class 없이 쉬워져서 만만해짐
3. 자바스크립트 변수, if, for, array, object, function, 이벤트리스너, HTML, CSS 기초지식 필요합니다. 자바스크립트 기초지식 없으면 뭔짓거리하는건지 이해불가 ㅇㅇ
전체 강의는 https://codingapple.com 에서
– 구독자용 10% 할인 코드 YT123

리 액트 란 주제에 대한 자세한 내용은 여기를 참조하세요.

[React] React.js란? (간단 정리) – velog

React란? … React 는 웹 프레임워크로, 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다. … 즉, 현재 많이 활용되고 있는, …

+ 여기에 보기

Source: velog.io

Date Published: 5/2/2022

View: 3007

React란 – 리액트란 무엇인지 알아보고, 리액트의 특징에 대해서 …

리액트는 UI 자바스크립트 라이브러리로써 싱글 페이지 애플리케이션의 UI(User Interface)를 생성하는데 집중한 라이브러리입니다. 리액트는 자바 …

+ 여기에 자세히 보기

Source: dev-yakuza.posstree.com

Date Published: 11/21/2022

View: 4385

리액트(React.js)란 뭘까? 왜 리액트(React.js)를 사용할까?

React.js는 특히 SPA(Single Page Application)을 위한 사용자 인터페이스를 구축하는 데 사용되는 오픈 소스 JavaScript 라이브러리입니다. 웹 및 모바일 …

+ 더 읽기

Source: yong-nyong.tistory.com

Date Published: 3/29/2022

View: 3952

[React] 리액트를 처음부터 배워보자. —01. React.js란 무엇인가?

React.js란 무엇인가? React는 현재 현업에서 인기 있는 웹/앱(RN)의 View를 개발할 수 있도록 하는 라이브러리이다. 보통 우리가 생각 …

+ 여기에 보기

Source: medium.com

Date Published: 7/28/2022

View: 3456

[React] React란 무엇인가? – React에 대한 개념 정리

React 리액트는 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다. [위키백과] facebook에서 제공해주는 프론트앤드 …

+ 자세한 내용은 여기를 클릭하십시오

Source: shin1303.tistory.com

Date Published: 9/29/2021

View: 4614

자습서: React 시작하기

React란 무엇인가요? … React는 사용자 인터페이스를 구축하기 위한 선언적이고 효율적이며 유연한 JavaScript 라이브러리입니다. “컴포넌트”라고 불리는 작고 고립된 코드 …

+ 여기를 클릭

Source: ko.reactjs.org

Date Published: 11/16/2022

View: 5249

React란 무엇인가 – 가치관제작소

React는 페이스북에서 제공하는 자바스크립트 UI 라이브러리다. 즉 React 프론트엔드 라이브러리다. Angular가 프레임워크인 데 반해 React는 라이브러리 …

+ 여기에 보기

Source: valuefactory.tistory.com

Date Published: 10/24/2021

View: 5575

React란 무엇인가? – 최선을 다하는 하루

리액트가 화면을 업데이트 하는 과정을 조금 더 효율적으로 수행하기 위한 기술이다. 자세히 말하자면 DOM을 반복적으로 직접 조작하면 그만큼 브라우저가 …

+ 여기에 표시

Source: hymndev.tistory.com

Date Published: 11/3/2021

View: 9823

[React] React.js란?

✔️ 1. React란? 리액트(react.js)란 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다. 페이스북과 개별 개발자 및 …

+ 여기를 클릭

Source: intrepidgeeks.com

Date Published: 12/22/2021

View: 8767

React란 무엇인가 – 자바스크립트 라이브러리 – Laptop28

리액트란? … React는 사용자 인터페이스에서 지속적으로 데이터를 보충하는 소프트웨어를 만드는 데 자주 사용되는 JavaScript 프레임워크입니다. 이 접근 방식을 사용하면 …

+ 여기를 클릭

Source: laptop28.com

Date Published: 5/13/2022

View: 6942

주제와 관련된 이미지 리 액트 란

주제와 관련된 더 많은 사진을 참조하십시오 React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식)
React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식)

주제에 대한 기사 평가 리 액트 란

  • Author: 코딩애플
  • Views: 조회수 138,300회
  • Likes: 좋아요 1,775개
  • Date Published: 2020. 6. 28.
  • Video Url link: https://www.youtube.com/watch?v=LclObYwGj90

React란

블로그 리스트

이 블로그 포스트는 시리즈로 제작되었습니다. 다음은 create-react-app 의 시리즈 리스트입니다.

개요

이번 블로그 포스트에서는 리액트가 무엇인지 간단하게 살펴보고, 리액트의 특징에 대해 살펴보려고 합니다.

리액트란

리액트는 UI 자바스크립트 라이브러리로써 싱글 페이지 애플리케이션의 UI(User Interface)를 생성하는데 집중한 라이브러리입니다. 리액트는 자바스크립트에 HTML을 포함하는 JSX(JavaScript XML)이라는 간단한 문법과 단방향 데이터 바인딩(One-way Data Binding)을 사용하고 있습니다. 그리고 가상 돔(Virtual DOM)이라는 개념을 사용하여 웹 애플리케이션의 퍼포먼스를 최적화한 라이브러리입니다.

리액트는 싱글 페이지 애플리케이션에서 UI를 만드는 자바스크립트 라이브러리이다보니, 싱글 페이지 애플리케이션 제작을 하는 다른 프레임워크에 비해 부족한 부분이 있습니다. 예를 들어 리액트는 페이지 전환 기능을 제공하지 않기 때문에, 리액트를 사용하여 페이지 전환을 해야한다면, react-router와 같은 추가적인 라이브러리를 사용해야 합니다.

리액트의 특징

리액트는 가상 돔, 단방향 데이터 바인딩 등 여러 특징을 가지고 있습니다. 여기서는 이런 특징들에 관해 자세히 살펴보도록 합시다.

가상 돔

리액트는 가상 돔을 사용하여 웹 애플리케이션의 성능을 극대화 시켰습니다. 가상 돔을 이해하기 위해서는 우선 HTML과 CSS가 렌더링(Rendering) 되는 과정을 이해할 필요가 있습니다.

웹 브라우저가 네트워크를 통해 HTML을 전달 받으면 브라우저의 렌더링 엔진은 HTML을 파싱하고 돔 노드(DOM Node)로 이루어진 트리를 만듭니다. 또한 CSS 파일과 HTML의 요소들(Element)의 인라인 스타일을 파싱하여 스타일 정보를 가진 스타일 트리도 생성합니다.

이렇게 렌더 트리가 완성되면 브라우저는 Attachment라는 과정을 통해 스타일 정보를 계산합니다. 렌더 트리로 생성된 모든 노드들은 attach라는 함수를 가지고 있는데, 이 Attachment라는 과정에서 이 메소드들이 호출되게 되며, 해당 메소드는 스타일 정보를 계산하고 결과값을 객체 형태로 반환하게 됩니다.

이때 이 계산 과정은 모두 동기적(Synchronous)으로 동작하게 되며, 만약 렌더 트리에 새로운 노드가 추가된다면 해당 노드의 attach 메소드가 실행되어 계산 과정을 거치게 됩니다.

렌더 트리는 Attachment 과정을 거친 후 레이아웃이라는 과정을 거치게 됩니다. 이 레이아웃 과정에서는 브라우저가 렌더 트리의 각 노드들에 좌표를 부여하고 정확히 어디에 어떻게 표시되는지를 결정합니다.

마지막으로 브라우저는 페인팅(Painting)이라는 과정을 거치게 됩니다. 이 페인팅 과정에서는 각 노드들에 paint 함수를 호출하여 렌더링된 요소들에 색상을 입히게 됩니다.

이런 과정을 거쳐 표시된 HTML을 자바스크립트를 사용하여 DOM을 조작하게 되면 각 노드의 좌표를 계산하기 위해 레이아웃 과정이 다시 실행되고, 그 이후 색상을 입히기 위한 페인팅 과정이 다시 진행되게 됩니다. 이렇게 DOM 조작으로 레이아웃 과정이 다시 진행되는 것을 리플로우(Reflow)라고 하며, 페인팅 과정이 다시 진행되는 것을 리페인트(Repaint)라고 합니다. 이 리플로우와 리페인트는 DOM의 각 노드에 대한 연산 과정을 다시 수행함으로 이 과정이 많이 수행될수록 웹 서비스의 성능이 저하되는 문제가 발생하게 됩니다.

리액트는 이 리플로우와 리페인트가 자주 수행되는 문제를 해결하기 위해 화면에 표시되는 DOM과 동일한 DOM을 메모리상에 만들고 DOM 조작이 발생하면 메모리상에 생성한 가상 돔에 모든 연산을 수행한 후, 실제 DOM을 갱신하여 리플로우/리페인트의 연산을 최소화하였습니다.

예를 들어 사용자가 Todo 리스트 앱을 사용할 때, 아무것도 없던 리스트에 할일을 하나 추가하는 과정을 생각해 봅시다. 할일을 입력하고 추가 버튼을 누르면, 아무것도 없던 리스트에 할일을 하나 표시하고, 전체 할일 개수를 표시합니다. 이 때, 가상 돔이 없는 경우, 할일을 하나 표시하기 위해 리플로우/리페인트가 한 번 발생하고, 전체 할일 개수를 표시하기 위해 리플로우/리페인트가 다시 한 번 발생하게 됩니다.

하지만, 리액트에서는 이 모든 과정을 가상 돔에서 수행합니다. 따라서 사용자가 할일을 입력하고 추가 버튼을 누르면, 할일 표시, 전체 할일 개수를 표시하기 위해 가상 돔에서 계산을 한 후, 계산 결과를 브라우저에 전달하여 리플로우/리페인트를 한 번만 수행하도록 합니다.

이렇게 리액트에서는 가상 돔을 사용하여 DOM이 자주 갱신되는 싱글 페이지 애플리케이션의 리플로우와 리페인트를 최소화함으로써 성능을 최적화시켰습니다.

단방향 데이터 바인딩

단방향 데이터 바인딩을 알아보기전에 양방향 데이터 바인딩에 대해서 잠시 살펴봅시다. 양방향 데이터 바인딩은 사용자 UI의 데이터 변경을 감시하는 Watcher와 자바스크립트 데이터의 변경을 감시하는 Watcher가 UI와 자바스크립트 데이터를 자동으로 동기화 시켜주는 방식을 말합니다. 이를 통해 프로그래머는 자바스크립트내에 데이터 변경과 사용자 UI에 데이터 변경에 관한 동기화를 신경쓰지 않고 프로그램을 작성할 수 있습니다.

하지만, 하나에 데이터 동기화에 두 개의 Watcher가 사용되고, 데이터 많아지게 되면 이 데이터의 동기화를 위한 수많은 Watcher가 생성되므로, 반대로 성능 저하가 발생할 수 있습니다.

이런 문제들 때문에, 리액트에서는 다른 프레임워크와는 다르게 단방향 데이터 바인딩을 사용합니다.

단방향 데이터 바인딩은 단 하나의 Watcher가 자바스크립트의 데이터 갱신을 감지하여 사용자의 UI 데이터를 갱신합니다. 사용자가 UI를 통해 자바스크립트의 데이터를 갱신할 때는, 이벤트를 통해 갱신하게 됩니다. 이처럼 단방향 데이터 바인딩은 하나의 Watcher를 사용하기 때문에 양방향 데이터 바인딩이 가지는 성능적인 이슈를 해결하고 더 확실하게 데이터를 추적할 수 있게 해줍니다.

JSX

리액트에서는 JSX라는 독특한 문법을 가지고 있습니다. JSX는 자바스크립트와 HTML을 동시에 사용하며, HTML에 자바스크립트의 변수들을 바로 사용할 수 있는 일종의 템플릿 언어(Template language)입니다.

const App = () => { const hello = ‘ Hello world! ‘ ; return < div > { hello } < /div> ; };

리액트는 위와 같이 자바스크립트에서 HTML 태그를 사용할 수 있으며, 자바스크립트 변수를 HTML 태그에서 바로 호출하여 사용할 수 있습니다. 자바스크립트 개발자들에게 이 JSX가 굉장히 이상한 문법이지만, 다른 언어들을 잠깐 살펴보면, 조금 더 쉽게 이해할 수 있습니다.

예를 들어 자바의 jsp에서는 다음과 같이 HTML 태그안에서 자바의 변수를 사용하는 것을 알 수 있습니다.

< %= hello % >

물론 리액트의 JSX 문법과는 조금 차이가 있지만, 이렇게 JSX를 자바스크립트의 문법이 아닌 일종의 템플릿 문법으로 기억하면 조금 더 쉽게 이해할 수 있습니다.

선언형 프로그래밍

프로그래밍에는 명령형 프로그래밍과 선언형 프로그래밍으로 구별할 수 있습니다. 명령형 프로그래밍은 프로그래밍을 할 때 어떻게(How) 에 집중하는 것을 말하며 선언형 프로그래밍은 무엇(What) 에 집중하여 프로그래밍을 하는 것을 말합니다.

예를 들어 택시를 타고 집으로 돌아가는 과정을 명령형 프로그래밍으로 설명하면 “첫 번째 사거리에서 우회전하고 삼거리가 나올 때까지 직진한 후, 삼거리에서 좌회전하면 우리 집입니다”와 같이 어떻게 집으로 돌아가는지에 집중하여 설명합니다. 하지만, 선언형 프로그래밍으로 이 과정을 설명하면 “우리 집은 XXX번지 입니다”와 같이 집이라는 어떤 것 에 집중하여 설명하게 됩니다.

그럼 실제 소스 코드를 보면서 이해해 봅시다.

명령형 프로그래밍

const double = ( arr ) => { let results = []; for ( let i = 0 ; i < arr . length ; i ++ ) { results . push ( arra [ i ] * 2 ); } return results ; } 선언형 프로그래밍 const double = ( arr ) => { return arr . map (( elem ) => elem * 2 ); }

위에 두 함수는 같은 동작을 하는 함수로써, 주어진 배열의 값을 두 배로 만드는 동작을 수행합니다. 첫번째 명령형 프로그래밍으로써 주어진 배열의 값을 두 배로 늘리기 위해, for 문을 사용했으며, i변수와 배열의 크기를 사용하여 배열의 값을 하나씩 가져와 두 배로 만든 후, result라는 새로운 배열에 값을 추가한 후, 결과값으로 반환합니다. 이렇게 명령형 프로그래밍은 과정을 중심으로 프로그래밍을 하게 됩니다.

두 번째 함수는 선언형 프로그래밍으로써 map 함수를 사용하여 주어진 배열값을 두 배로 만들어 반환합니다. map이 어떻게 동작하는지는 크게 신경쓰지 않고 결과인 배열값을 두 배로 만들기에 집중하여 프로그래밍을 합니다.

이처럼 라이브러리나 프레임워크 등을 사용하여 비선언형적인 부분을 캡슐화함으로써 명령형 프로그래밍 언어로 선언형 프로그래밍을 할 수 있습니다. 리액트에서는 특히 JSX를 사용하기 때문에 선언형 프로그래밍을 더욱 활용하고 있음을 알 수 있습니다.

명령형 프로그래밍

    위의 예제는 자바스크립트를 사용하는 HTML에 새로운 리스트 아이템을 추가하는 코드입니다. 위의 코드는 명령형 프로그래밍으로써 새로운 리스트를 표시할 ul 태그를 생성하고 자바스크립트의 querySelector를 사용하여 표시할 위치를 가져온 후, for 문을 사용하여 하나씩 리스트에 아이템을 추가하고 있습니다.

    JSX를 사용한 선언형 프로그래밍

    const arr = [ 1 , 2 , 3 , 4 , 5 ]; return ( < ul > { arr . map (( elem ) => ( < li > { elem } < /li > ))} < /ul > );

    리액트의 JSX 문법을 사용하면 위와 같이 HTML안에서 map 함수를 사용하여 리스트 아이템을 추가할 수 있습니다. 이렇게 JSX를 사용하면 자바스크립트뿐만 아니라 HTML에서도 선언형 프로그래밍을 할 수 있습니다.

    컴포넌트 기반

    리액트로 웹 서비스를 개발할 때, 컴포넌트 라고 부르는 작고 고립된 코드를 사용하여 UI를 구성하게 됩니다.

    const Title = () => { return < h1 > Hello world < /h1> ; }; const Button = () => { return < button > This is a Button < /button> ; }; const App = () => { return ( < div > < Title /> < Button /> < /div > ); };

    이렇게 작고 고립된 컴포넌트는 재사용을 할 수 있으며 이런 재사용을 통해 개발 생산성을 향상시킬 수 있습니다. 또한 이렇게 작고 고립된 컴포넌트는 테스트하기 쉬워 코드를 유지보수하는데도 크게 도움이 됩니다.

    완료

    이번 블로그 포스트에서는 리액트란 무엇인지, 리액트의 장점은 무엇인지 살펴보았습니다. 앞으로 이어질 블로그에서는 이런 리액트를 사용하는 방법에 대해서 알아보겠습니다.

    제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

    앱 홍보

    책 홍보

    리액트(React.js)란 뭘까? 왜 리액트(React.js)를 사용할까?

    반응형

    React란? 왜 React를 사용할까?

    📖 들어가며

    지금껏 블로그에 배운 내용을 복습하며 정리하는 글을 올렸지만

    현재 가장 애용(?)하고 있는 리액트에 대해서 왜 사용하고 있는지, 어떤 장점이 있는지,

    그래서 리액트가 무엇인지 한번 짚고 넘어가기 위해 글을 작성하게 됩니다.

    1. 리액트(React.js)는 무엇일까 ❓

    React.js는 특히 SPA(Single Page Application)을 위한 사용자 인터페이스를 구축하는 데 사용되는 오픈 소스 JavaScript 라이브러리입니다. 웹 및 모바일 앱의 view layer를 처리하는 데 사용됩니다. 또한 React를 사용하면 재사용 가능한 UI 구성 요소를 만들 수 있습니다. React는 Facebook에서 일하는 소프트웨어 엔지니어 jordan walke가 처음 만들었습니다.

    React를 사용하면 개발자가 페이지를 다시 로드하지 않고도 데이터를 변경할 수 있는 대규모 웹 애플리케이션을 만들 수 있습니다. React의 주요 목적은 빠르고 확장 가능하며 단순합니다.

    2. 리액트(React.js)의 기능은 무엇일까 ❓

    React의 몇 가지 중요한 기능을 자세히 살펴보겠습니다.

    React.js 속성에는 다음이 포함됩니다.

    선언적입니다.

    간단합니다.

    구성요소 기반입니다.

    Server Side를 지원합니다.

    광범위합니다.

    빠릅니다.

    배우기 쉽습니다.

    JSX

    React에서는 템플릿에 일반 JavaScript를 사용하는 대신 JSX를 사용합니다. JSX는 HTML 인용을 허용하고 이러한 HTML 태그 구문을 사용하여 하위 구성 요소를 렌더링하는 간단한 JavaScript입니다. HTML 구문은 React Framework의 JavaScript 호출로 처리됩니다. 또한,. 순수한 오래된 JavaScript로 작성할 수도 있습니다.

    네이티브 반응

    React에는 2015년 Facebook에서 발표한 네이티브 라이브러리가 있습니다.

    이 라이브러리는 IOS, Android 및 UPD와 같은 네이티브 애플리케이션에 반응 아키텍처를 제공합니다.

    React-native는 Javascript만을 사용하여 프레임워크를 구축하는 모바일 앱입니다. React와 동일한 디자인을 사용하므로 풍부한 모바일 UI 라이브러리/선언적 구성 요소를 활용/포함할 수 있습니다. 일반 iOS 및 Android 앱과 동일한 기본 UI 빌딩 블록을 사용합니다. react-native를 사용하는 가장 좋은 점은 Objective-C, Java 또는 Swift로 작성된 구성 요소를 허용/채택하는 것입니다.

    단방향 데이터 흐름

    React에서는 변경할 수 없는 값 세트가 HTML 태그의 속성으로 구성 요소 렌더러에 전달됩니다. 구성 요소는 속성을 직접 수정할 수 없지만 수정할 수 있는 콜백 기능을 전달할 수 있습니다. 이 완전한 프로세스는 속성이 아래로 흐릅니다.

    가상 문서 객체 모델

    React는 변경 사항을 계산한 다음 브라우저를 업데이트하는 메모리 내 데이터 구조 캐시를 만듭니다.

    이것은 프로그래머가 각 변경 사항에 대해 전체 페이지가 렌더링되는 것처럼 코딩할 수 있도록 하는 특수 기능을 허용하는 반면 반응 라이브러리는 실제로 변경되는 구성 요소만 렌더링 합니다.

    아래 영상은 어떻게 작동되는지, React Virtual DOM에 대해서 이해하기 쉽게 만들어진 영상입니다.

    이제 우리 앞에 놓인 주요 질문은 React를 사용해야 하는 이유입니다.

    Vue, Angular와 같이 프론트엔드 웹 애플리케이션 개발을 더 쉽게 만들어주는 오픈 소스 플랫폼이 너무 많습니다.

    다른 경쟁 기술이나 프레임워크에 비해 React의 이점에 대해 간단히 살펴보겠습니다.

    매일 변화하는 프론트엔드 환경에서 새로운 프레임워크를 배우는 데 시간을 할애하기가 어렵습니다.

    특히 해당 프레임워크가 궁극적으로 막다른 골목이 될 수 있는 경우에는 더욱 그렇습니다.

    3. 왜 리액트(React.js)일까 ❓

    단순성

    ReactJS는 바로 이해하기가 더 쉽습니다.

    구성 요소 기반 접근 방식, 잘 정의된 수명 주기 및 일반 JavaScript만 사용하면 React를 매우 간단하게 배우고 전문 웹(및 모바일 응용 프로그램)을 구축하고 지원할 수 있습니다.

    React는 HTML과 JavaScript를 혼합할 수 있는 JSX라는 특수 구문을 사용합니다. 이것은 요구 사항이 아닙니다.

    개발자는 여전히 일반 JavaScript로 작성할 수 있지만 JSX는 사용하기가 훨씬 쉽습니다.

    배우기 쉬움

    JavaScript 대한 기본 지식이 있는 사람이라면 누구나 React를 쉽게 이해할 수 있지만 Angular와 Ember는 'Domain-specific Language'라고 하여 배우기 어렵다는 의미입니다. 대응하려면 CSS와 HTML에 대한 기본 지식만 있으면 됩니다.

    네이티브 접근

    React는 모바일 애플리케이션을 만드는 데 사용할 수 있습니다(React Native). 그리고 React는 재사용성에 대한 매우 좋습니다.

    즉, 광범위한 코드 재사용성이 지원됩니다. 따라서 동시에 IOS, Android 및 웹 응용 프로그램을 만들 수 있습니다.

    데이터 바인딩

    React는 단방향 데이터 바인딩을 사용하고 Flux라는 애플리케이션 아키텍처는 디스패처라는 하나의 제어 지점을 통해 구성 요소로의 데이터 흐름을 제어합니다.

    대형 ReactJS 앱의 자체 포함 구성 요소를 디버그 하는 것이 더 쉽습니다.

    성능

    React는 종속성을 위한 내장 컨테이너 개념을 제공하지 않습니다.

    Browserify, Require JS, Babel, ReactJS-di를 통해 사용할 수 있는 EcmaScript 6 모듈을 사용하여 종속성을 자동으로 주입할 수 있습니다.

    테스트 가능성

    ReactJS 애플리케이션은 테스트하기가 매우 쉽습니다.

    React 보기는 상태의 함수로 처리될 수 있으므로 ReactJS 보기에 전달한 상태로 조작하고 출력 및 트리거 된 작업, 이벤트, 함수 등을 살펴볼 수 있습니다.

    참고:

    https://www.c-sharpcorner.com/article/what-and-why-reactjs/

    반응형

    [React] React란 무엇인가? - React에 대한 개념 정리

    React란?

    React 리액트(React)란? 리액트는 페이스북에서 제공해주는 프론트엔드 라이브러리이다. 또한 리액트는 컴포넌트 기반으로 되어있어서 컴포넌트에 데이터를 내려주면 개발자가 설계한대로 UI가 만

    velog.io

    자습서: React 시작하기 – React

    이 자습서는 React에 대한 어떤 지식도 가정하지 않습니다.

    자습서를 시작하기 전에

    우리는 이 자습서에서 작은 게임을 만들겁니다. 게임을 만들고 싶지 않아서 자습서를 건너뛰고 싶을 수 있습니다. 그래도 한번 해보세요! 자습서를 통해 React 앱을 만드는 기본적인 사항들을 배웁니다. 이것을 마스터하면 React를 더 깊게 이해할 수 있습니다.

    팁 자습서는 실습으로 배우기를 선호하는 사람들에 맞춰 설계되었습니다. 기초부터 개념을 학습하길 선호한다면 단계별 가이드를 확인해보세요. 자습서와 단계별 가이드는 상호 보완적입니다.

    자습서는 아래와 같이 몇 가지 부분으로 나뉘어 있습니다.

    자습서 환경설정은 자습서를 따를 수 있는 시작점 을 안내합니다.

    을 안내합니다. 개요에서는 React의 기본 (components, props, state)에 대해서 알아봅니다.

    (components, props, state)에 대해서 알아봅니다. 게임 완성하기는 React 개발에서 사용하는 가장 일반적인 테크닉 을 가르쳐 줄 것입니다.

    을 가르쳐 줄 것입니다. 시간여행 추가하기는 React의 고유한 강점에 대한 깊은 통찰력을 줄 것입니다.

    자습서를 익히기 위해 모든 부분을 한 번에 완료할 필요는 없습니다. 한두 구역이라도 가능한 한 많이 시도해 보세요.

    이 자습서를 따라 하기 위해 코드를 복사하여 붙여넣는 것도 괜찮지만 직접 코드를 따라 적기를 추천합니다. 이 방식은 몸으로 기억하는 것과 더 강한 이해에 도움을 줄 것입니다.

    무엇을 만들게 될까요?

    우리는 React로 대화형 틱택토 게임을 만드는 방법을 알려드릴 것입니다.

    최종 결과물은 이 페이지에서 확인할 수 있습니다. 코드가 이해가 되지 않거나 코드의 문법에 익숙하지 않더라도 걱정마세요! 자습서의 목적은 React와 React 문법에 대한 이해를 돕는 것입니다.

    자습서를 진행하기 전에 틱택토 게임을 체험해보길 추천합니다. 주목할만한 특징 중 하나는 게임판 오른쪽에 번호가 매겨진 목록이 있다는 것입니다. 목록은 게임에서 일어난 모든 이동의 기록을 보여주며 게임을 진행하면 업데이트 됩니다.

    틱택토 게임에 익숙해졌다면 종료해도 괜찮습니다. 우리는 자습서의 간단한 템플릿에서 시작할 것입니다. 다음 단계에서는 게임 구현을 시작하기 위한 설정을 다룹니다.

    필요한 선수 지식

    HTML과 JavaScript에 어느 정도 익숙하다고 가정하지만 다른 프로그래밍 언어를 사용하더라도 자습서를 따라갈 수 있습니다. 또한 함수, 객체, 배열, 가능하다면 클래스 같은 프로그래밍 개념에 익숙하다고 가정합니다.

    JavaScript를 다시 보고 싶다면 이 가이드를 추천합니다. JavaScript의 최신 버전인 ES6의 몇 가지 기능을 사용한다는 사실에 주목해주세요. 자습서에서는 화살표 함수, 클래스, let , const 를 사용합니다. Babel REPL을 사용하여 ES6 코드가 어떻게 컴파일되는지 확인할 수 있습니다.

    자습서 환경설정

    자습서를 완성하는 방법에는 두 가지가 있습니다. 브라우저에서 코드를 작성해도 되고 컴퓨터에 로컬 개발 환경을 설정해도 됩니다.

    선택 1: 브라우저에 코드 작성하기

    이 옵션은 가장 빠르게 시작하는 방식입니다!

    먼저 새 탭에서 초기 코드를 열어주세요. 새 탭은 비어있는 틱택토 게임판과 React 코드를 보여줄 것입니다. 우리는 자습서에서 React 코드를 편집할 것입니다.

    이제 두 번째 설정 옵션을 건너뛰고 개요 단락으로 넘어가서 React에 대한 개요를 확인해주세요.

    선택 2: 자신의 컴퓨터에서 코드 작성하기

    이 방식은 완전히 선택사항이며 이 자습서에 필요한 것은 아닙니다!

    선택 사항: 선호하는 텍스트 편집기를 사용하기 위한 지침 이 설정에서는 더 많은 작업이 필요하지만, 선호하는 편집기를 사용하여 자습서를 완성할 수 있습니다. 아래의 단계를 따라주세요. 최신 버전의 Node.js가 설치되어 있는지 확인해주세요. Create React App 설치 지침을 따라 새로운 프로젝트를 생성해주세요. npx create-react-app my-app 새로운 프로젝트의 src/ 폴더에 있는 모든 파일을 삭제해 주세요. 주의 src 폴더 전체가 아니라 폴더 내부의 기존 소스 파일들만 삭제해 주세요. 다음 단계에서 기본 소스 파일을 이 프로젝트의 예시로 바꿀 것입니다. cd my-app cd src rm -f * del * cd .. src/ 폴더에 index.css 라는 파일을 생성하고 이 CSS 코드를 추가해주세요. src/ 폴더에 index.js 라는 파일을 생성하고 이 JS 코드를 추가해주세요. 위에서 생성한 index.js 의 상단에 아래 세 줄을 추가해주세요. import React from 'react' ; import ReactDOM from 'react-dom' ; import './index.css' ; 이제 프로젝트 폴더에서 npm start 명령어를 실행하고 브라우저에서 http://localhost:3000 를 열면 비어있는 틱택토 필드를 확인할 수 있습니다. 에디터에서 구문 강조 표시를 설정하기 위해 이 지침을 따르길 권장합니다.

    도움이 필요할 때!

    막히는 부분이 생겼다면 커뮤니티에서 지원하는 자료를 확인해보세요. 특히 Reactiflux Chat은 빠르게 도움을 받을 수 있는 좋은 방법입니다. 원하는 답을 얻지 못하거나 계속 막힌 상태라면 이슈를 제출해주세요. 우리가 도와드리겠습니다.

    개요

    이제 설정을 완료했으니 React의 개요를 살펴보겠습니다!

    React란 무엇인가요?

    React는 사용자 인터페이스를 구축하기 위한 선언적이고 효율적이며 유연한 JavaScript 라이브러리입니다. “컴포넌트”라고 불리는 작고 고립된 코드의 파편을 이용하여 복잡한 UI를 구성하도록 돕습니다.

    React는 몇 가지 종류의 컴포넌트를 가지지만 우리는 React.Component 의 하위 클래스를 사용해보겠습니다.

    class ShoppingList extends React . Component { render ( ) { return ( < div className = " shopping-list " > < h1 > Shopping List for { this . props . name } < ul > < li > Instagram < li > WhatsApp < li > Oculus ) ; } }

    XML과 유사한 재밌는 태그를 사용할 것입니다. 우리는 컴포넌트를 사용하여 React에게 화면에 표현하고 싶은 것이 무엇인지 알려줍니다. 데이터가 변경될 때 React는 컴포넌트를 효율적으로 업데이트하고 다시 렌더링합니다.

    여기에서 ShoppingList는 React 컴포넌트 클래스 또는 React 컴포넌트 타입입니다. 개별 컴포넌트는 props 라는 매개변수를 받아오고 render 함수를 통해 표시할 뷰 계층 구조를 반환합니다.

    render 함수는 화면에서 보고자 하는 내용을 반환합니다. React는 설명을 전달받고 결과를 표시합니다. 특히 render 는 렌더링할 내용을 경량화한 React 엘리먼트를 반환합니다. 다수의 React 개발자는 “JSX”라는 특수한 문법을 사용하여 React의 구조를 보다 쉽게 작성합니다.

    구문은 빌드하는 시점에서 React.createElement('div') 로 변환됩니다. 위에서 본 예시는 아래와 같이 변화합니다.

    return React . createElement ( 'div' , { className : 'shopping-list' } , React . createElement ( 'h1' , ) , React . createElement ( 'ul' , ) ) ;

    전체 코드는 여기서 확인해주세요.

    createElement() 에 대해 궁금한 점이 있다면 API 참조에서 자세한 설명을 확인할 수 있습니다. 하지만 자습서에서는 이 방식이 아니라 JSX를 계속 사용할 것입니다.

    JSX는 JavaScript의 강력한 기능을 가지고 있습니다. JSX 내부의 중괄호 안에 어떤 JavaScript 표현식도 사용할 수 있습니다. React 엘리먼트는 JavaScript 객체이며 변수에 저장하거나 프로그램 여기저기에 전달할 수 있습니다.

    ShoppingList 컴포넌트는

  • 같은 내각 DOM 컴포넌트만을 렌더링하지만 컴포넌트를 조합하여 커스텀 React 컴포넌트를 렌더링하는 것도 가능합니다. 예를 들어 를 작성하여 모든 쇼핑 목록을 참조할 수 있습니다. React 컴포넌트는 캡슐화되어 독립적으로 동작할 수 있습니다. 이러한 이유로 단순한 컴포넌트를 사용하여 복잡한 UI를 구현할 수 있습니다.

    초기 코드 살펴보기

    브라우저에서 자습서 작성을 하는 경우 새 탭에서 초기 코드를 열어주세요. 로컬 환경에서 진행하는 경우 프로젝트 폴더에서 src/index.js 를 열어주세요(이 파일은 설정에서 다룬 적이 있습니다).

    초기 코드는 제작할 틱택토의 기본 틀입니다. CSS 스타일은 제공되기 때문에 React를 배우는 것과 게임을 프로그래밍하는 데에만 집중하면 됩니다.

    코드를 살펴보면 세 가지 React 컴포넌트를 확인할 수 있습니다.

    Square

    Board

    Game

    Square 컴포넌트는

  • React란 무엇인가

    반응형

    리액트(React)란 무엇인가

    목차

    1.React란 무엇인가

    1.1 왜 React를 사용하는가?

    1.2 React의 작동방식

    1.3 왜 Virtual DOM인가?

    2. React의 특징

    2.1 Flux 패턴과 단방향 데이터 바인딩

    2.2 Component 기반 구조

    2.3 Virtual DOM

    2.4 JSX 문법

    3. 언제 React를 써야 하는가

    마치며

    출처

    1.React란 무엇인가

    React는 페이스북에서 제공하는 자바스크립트 UI 라이브러리다. 즉 React 프론트엔드 라이브러리다. Angular가 프레임워크인 데 반해 React는 라이브러리다. 즉, 웹을 만드는 데 꼭 필요한 도구들이 전부 기본적으로 제공되지 않는다. 그런만큼 가볍고, 선택의 폭이 넓다.

    React는 컴포넌트 기반이다. 컴포넌트에 데이터를 흘려보내면 설계된 대로 UI가 조립되어 사용자에게 보여진다.

    1.1 왜 React를 사용하는가?

    웹페이지를 만들기 위해서 굳이 프론트엔드 라이브러리를 사용해야 할 필요는 없다. HTML과 CSS, 그리고 순수 자바스크립트 만으로도 웹페이지를 얼마든지 제작할 수 있다. 특히 단순한 정적 페이지를 만드는 것이 목적이라면 React와 같은 프론트엔드 라이브러리는 큰 이득이 되지 못한다.

    하지만 요즘의 웹은 정적이고 단순한 페이지가 아니다. 웹앱 혹은 웹 어플리케이션이라 불릴 정도로 복잡하고 동적이다. 이런 웹 어플리케이션에서 UI를 동적으로 나타내기 위해서는 복잡하고 많은 상태를 관리해야 하는 부담이 생긴다.

    만약 프로젝트 규모가 크고 다양한 UI와 상호작용이 필요하다면 DOM 요소 하나하나를 직접 관리하는 것은 힘든 일이다. 또, 복잡하게 늘어진 코드를 리팩토링 하는 것도 점점 힘들게 된다.

    React를 사용하면 사용자와 상호작용할 수 있는 interactive한 UI를 쉽게 만들 수 있다. React를 사용하면 기능과 UI 구현에 집중하고 불필요한 주의력 분산을 줄일 수 있게 된다.

    또, React를 사용하면 브라우저 전체를 새로고침 하지 않고도 컨텐츠를 빠르게 변경할 수 있다.

    1.2 React의 작동방식

    React는 이벤트로 인해 데이터를 관리하는 Model에 변화가 생기면 Virtual DOM을 생성한다. 이후 Virtual DOM과 실제 DOM을 비교하고, 변화가 발생한 부분만 업데이트 한다.

    1.3 왜 Virtual DOM인가?

    복잡한 SPA에서는 DOM 조작이 많이 발생한다. 그 때마다 브라우저가 연산을 해야 하므로 전체적인 프로세스가 비효율적으로 되기 쉽다.

    하지만 Virtual DOM을 사용하면, 실제 DOM에 적용시키기 전 가상의 DOM을 만들어 적용시키고, 최종 완성된 결과만을 실제 DOM으로 전달한다. 이를 통해 브라우저가 진행하는 연산의 양을 줄일 수 있어 성능이 개선된다. Virtual DOM은 렌더링도 되지 않기 때문에 연산 비용이 적다. 모든 변화를 Virtual DOM을 통해 묶고 이를 실제 DOM으로 전달한다.

    2. React의 특징

    2.1 Flux 패턴과 단방향 데이터 바인딩

    React는 양방향 바인딩이 전제되는 MVC 패턴과는 다른 특징을 보인다. 페이스북에서 Flux라고 부르는 패턴이 적용되어 있는데, 단방향 바인딩이 특징이다.

    위 도표는 MVC 패턴과 Flux 패턴의 차이를 보여준다. Flux 패턴은 일방통행이다. 따라서 단방향 바인딩이라고 한다.

    그렇다면 React에서는 왜 MVC 패턴을 사용하지 않고 Flux 패턴을 사용하는 것일까? 다음 인용문을 읽어보면 답을 알 수 있다.

    문제는 페이스북과 같은 대규모 애플리케이션에서는 MVC가 너무 빠르게, 너무 복잡해진다는 것이다. 페이스북 개발팀에 따르면 구조가 너무 복잡해진 탓에 새 기능을 추가할 때마다 크고 작은 문제가 생겼으며 코드의 예측이나 테스트가 어려워졌으며 새로운 개발자가 오면 적응하는데만 한참이 걸려서 빠르게 개발할 수가 없었다. 소프트웨어의 품질을 담보하기가 힘들어졌다는 뜻이다. 이 같은 문제의 대표적인 사례가 바로 페이스북의 안 읽은 글 갯수(unread count) 표시이다. 사용자가 읽지 않았던 글을 읽으면 읽지 않은 글 갯수에서 읽은 글 수만큼 빼면 되는 일견 단순해보이는 기능인데도, 페이스북 서비스에서 이를 MVC로 구현하기는 어려웠다고 한다. 어떤 글을 ‘읽음’ 상태로 두면, 먼저 글을 다루는 thread 모델을 업데이트 해야하고 동시에 unread ​count 모델도 업데이트 해야한다. 대규모 MVC 애플리케이션에서 이 같은 의존성과 순차적 업데이트는 종종 데이터의 흐름을 꼬이게 하여 예기치 못한 결과를 불러일으킨다. (출처: Flux와 Redux, Webframeworks.kr )

    페이스북에서는 Flux라는 새로운 패턴을 만들어냈다. 이를 통해 복잡한 앱에서도 데이터 흐름에서 일어나는 변화가 보다 더 예측가능해지게 되었다.

    React의 아키텍쳐는 기존 MVC 패턴에서 View에 집중한 형태이다. 여기서 View는 스토어에서 데이터를 가져오는 한편, 자식 뷰로 데이터를 전달하기도 하므로 단순 View라기 보다는 View-controller에 가깝다.

    React에서는 State가 View를 업데이트 한다. 그러나 View는 State를 직접 업데이트 할 수 없다. View가 State의 정보를 업데이트하기 위해서는 callback을 통해 state를 바꿔야 하며, 이렇게 바뀐 Staterk View를 업데이트해 새롭게 정의한다. 실제로는 setState()를 통해 state를 업데이트 하며, State가 업데이트 되면 View는 다시 렌더링된다.

    2.2 Component 기반 구조

    React는 UI(혹은 View)를 여러 컴포넌트(Component) 쪼개서 만든다. 한 페이지 안에서도 Header, Footer 등 각 부분을 독립된 컴포넌트(Component)로 만들고, 컴포넌트들을 조립해 화면을 구성한다.

    컴포넌트 기반이라는 점은 React의 큰 장점이다. 여러 화면에서 재사용되는 코드를 반복해 입력할 필요 없이 컴포넌트만 임포트해 사용하면 된다. 또, 기능단위, UI단위로 쪼개어 코드를 관리하므로, 어플리케이션이 복잡해져도 코드의 유지보수가 용이하다.

    블로그

    위와 같은 어플리케이션이 있다고 하자. 이를 React로 만들게 되면 대략 다음과 같다.

    import React , { Component } from "react" ; import Header from "./component/Header" ; import Footer from "./component/Footer" ; import PostList from "./component/PostList" ; class App extends Component { render () { return ( < div > < Header /> < PostList /> < Footer /> ) } } export default App ;

    Header나 Footer PostList 등은 컴포넌트로 만들고, 이를 조립해서 루트 컴포넌트를 만드는 방식이다.

    2.3 Virtual DOM

    DOM은 Document Object Model의 약자이다. DOM은 html, xml, CSS 등을 트리 구조로 인식하고 데이터를 객체로 간주해 관리한다. html 코드를 브라우저에서 열게 되면 DOM이 브라우저에서 보이는 View를 만드는 식이다.

    JavaScript는 DOM을 조작할 수 있다. 이를 통해 눈에 보이는 값을 변경하는 등 웹을 동적으로 만든다.

    앞서 살펴보았듯이, 이벤트가 발생할 때마다 Virtual DOM을 만들고 실제 DOM과 비교하여 변경사항만 실제 DOM에 반영하여 앱의 효율성을 개선하게 된다. React가 여러 Component로 View를 쪼갠 이유도 이런 부분 업데이트를 원활하게 하기 위함이다.

    Virtual DOM과 실제 DOM의 차이는 Tree Diff Algorithm을 통해 계산된다. 일반적으로 트리를 다른 트리로 바꾸는 알고리즘은 O(n^3)의 시간복잡도를 가지게 된다. React는 그들만의 휴리스틱한 알고리즘을 만듦으로써 시간복잡도를 O(n)으로 개선하였다.

    2.4 JSX 문법

    JSX는 과거 페이스북이 PHP를 개량해 만들었던 XHP에 기원을 두고 있는 새로운 자바스크립트 문법이다. React는 JSX로 짜여진다. JavaScript가 아니다.

    JSX의 특징은 기본적으로 html과 유사하다. 다만 약간의 원칙이 더 존재한다.

    a. 두개 이상의 엘리먼트는 무조건 하나의 엘리먼트로 감싸져 있어야 한다.

    first line

    second line

    second block

    위 태그처럼 두개의 div가 병렬로 존재한다면 새로운 div 태그로 감싸거나 fragment를 React를 임포트 하는 라인에서 같이 임포트해서 fragment 태그로 감싸줘야 한다. fragment 태그는 React에서 div를 추가해 감싸고 싶지는 않지만 다른 태그를 감쌀 필요성이 있을 때 사용할 수 있도록 React에서 제공하는 태그이다.

    b. class 대신 className을 사용한다.

    c. 스타일 속성은 중괄호({}) 안에 객체 형태로 표시하며 단어 사이의 ‘-‘를 없애는 대신 카멜케이스(Camel Case)를 사용해 CSS 프로퍼티를 나타낸다.

    < div className = "container" style = {{ backgroundColor : "red" , fontSize : 16 }} / >

    d. 모든 태그는 반드시 닫혀 있어야 한다. 인풋 태그의 경우 html에서는 닫지 않고 사용하는 경우도 있으나, JSX에서는 단축문법으로라도 반드시 닫아야 한다.

    e. JSX 안에서 JavaScript 값을 사용할 때엔 중괄호를 사용한다. 중괄호 안에 변수명을 입력하거나 JavaScript 계산식, 값 등을 넣을 수 있다.

    {name}

    f. 주석은 {/**/}로 내용을 감싼다.

    3. 언제 React를 써야 하는가

    웹 기반 계산기를 만든다고 가정하자. 2+2의 답을 사용자에게 알려주는 데에는 굳이 서버를 거쳐야 할 이유가 없다. 브라우저도 충분히 연산을 해낼 수 있다. 따라서 계산의 내용을 서버로 보내고, 서버가 이를 기록한 후 계산 결과를 반환하는 방식은 비효율적이게 된다.

    한편, 블로그처럼 순수하게 정적인 사이트를 만든다면 서버에서 html을 일괄 생성하고 이를 클라이언트에게 전달하는 것이 단순하고, 로딩 속도를 개선할 수 있다.

    React는 정적인 사이트보다는 동적인 사이트에 필요하고 어울린다. 정적인 사이트에서도 React를 사용할 수 있지만 보일러 플레이트 코드를 구현하고, 서버 사이드 렌더링을 통한 SEO나 라우팅 등을 구현하는 것은 몸에 맞지 않는 큰 머리처럼 비효율적이다.

    반면, 사이트의 규모가 커지고 동적인 요소가 많아지면 단순 JavaScript나 jQuery로 상태(state)를 모두 관리하는 것은 거의 불가능에 가까워 진다. 예를들어, Netflix는 수많은 영상을 가지고 있고, 각 영상별로 특정 사용자의 취향과 일치할 확률을 계산한다. 이를 바탕으로 사용자가 선호할 영상들을 우선적으로 리스트업(list-up) 해 보여준다. 즉, 사용자마다 전부 다른 ‘개인화된’ 페이지를 가지게 된다. A와 B가 취향이 다르다면 메인페이지에서, 카테고리별 페이지에서, 심지어 영화 검색시에도 보여지는 결과물이 각각 다르다. 이로 인한 복잡한 상태들을 jQuery로 전부 관리한다는 것은 불가능하지는 않지만 엄청나게 비효율적이다. 유지보수가 어렵고 버그를 야기한다. 반면 React를 사용하면 Redux 등의 상태관리 도구를 이용해 상태를 모아 관리할 수 있다. 또, Component에 data가 흘러들어가 개인화된 웹페이지를 생성하게 되는 방식으로 플로우가 이해하기 쉽고 직관적이다. 유지보수에도 용이하다. 따라서 React는 프로젝트가 복잡하고 동적일수록 빛을 발한다.

    아쉽게도, 대부분의 웹은 계산기와 블로그의 어쩡쩡한 중간에 위치해 있을 것이다. 따라서 선택은 개발자 개개인의 몫이다. 완벽하게 정적인 웹도 완벽하게 동적인 앱도 존재하지 않으니 말이다. 다만, React는 웹 어플리케이션을 구축하는 접근방법을 새롭게 하고, 더 많은 생각할거리를 제공한다. React와 함께하는 웹개발은 더 역동적이고, 더 많은 즐거움을 준다(지극히 개인적인 감정이다).

    마치며

    React가 2018년에도 가장 핫한 프론트엔드 라이브러리/프레임워크에 등극했다. stateofjs.com 설문 결과에 따르면 64.8%가 React를 사용했고, 다시 사용할 것이라고 응답했다. Vue.js에서 같은 질문에 28.8%, Angular.js에서 23.9%가 같은 응답을 한 것으로 본다면 매우 강력한 호감이다. Angular의 경우 사용해봤지만 다시는 사용하지 않겠다는 응답이 33.8%였다.

    React는 단연컨데 가장 인기 있는 프론트엔드 라이브러리다. Vue가 가파르게 성장하고 있긴 하지만. Angular에 비해 러닝커브도 낮고, Vue에 비해 사용하는 곳도 많다. React와 함께하는 프론트엔드 개발은 편리하고 즐겁다. JSX 문법은 우아하고 직관적이며, Redux를 활용한 상태 관리는 예술에 가깝다.

    React를 시작하면 React를 사랑하게 될 것이다.

    반응형

    React란 무엇인가?

    글 작성자: 개발자 올라프

    개요

    리액트를 처음 다루게 되었는데 그전에 리액트가 무엇인지 이해하고 넘어가는 시간을 갖도록 한다.

    Why React?

    새로운 기술을 학습할 때는 이 기술이 어떤 철학을 가졌는지, 어떤 문제를 해결하기 위해서 만들어졌는지 이해하는 것이 중요하다.

    웹 역사는 1세대부터 3세대까지 발전하는데 이러한 기술의 발전과 새로운 기술을 만들어 내는 것은 많은 자원이 투입되는 행위이다. 그럼에도 기술이 계속 발전되는 이유는 그 시대 요구조건과 해결해야 하는 것들이 복잡해지기 때문이다. 웹에서 복잡해진다는 의미는 사람들과 상호작용하며 사용자들이 원하는 기능은 많아지고 개발자들이 처리할 UI가 많아진다는 것이다. 이러한 상황에서 프론트엔드 개발자들은 기술의 한계를 느끼고 새로운 기술인 Front-end Framework을 개발하게 된다. 웹이 발전함에 따라 프론트엔드 기술은 어떤 변화를 겪었는지 알아보자.

    1세대 프론트엔드 기술

    기본적인 HTML, CSS, JavaScript로 DOM을 조작하고 이벤트를 발생시켰다.

    2세대 프론트엔드 기술

    웹이 발전하여 DOM의 조작이 빈번하게 발생함에 따라 jQuery 기술이 등장하게 됐다. 결국 jQuery는 DOM을 조작한다는 행위에서 벗어나지 못해서 점점 복잡해지는 환경에서 한계에 도달하게 되었다.

    // Vanilla JavaScript const div = document.getElementById('myDiv'); for(let i=0; i<10; i++) { const p = document.createElement('p'); p.textContent = 'Hello World!'; div.appendChild(p); } // jQuery const div = $("myDiv"); for(let i=0; i<10; i++) { div.append("

    Hello World

    "); }

    3세대 프론트엔드 기술

    jQuery 한계 이후, 패러다임을 완전히 바꾸는 새로운 프레임워크를 요구하게 되었다.

    Framework Library Angular React Vue

    Angular

    2010년 Google에서 개발한 프레임워크로 TypeScript 기반으로 매우 안정적이고 잘 설계된 구조 내에서 개발이 가능하다. 프레임워크답게 다양한 기능이 내장되어 있지만 무겁고 배우기 어렵다.

    Vue

    2014년 Evan You라는 개인이 개발한 프레임워크로 Angular와 마찬가지로 Vue만의 문법과 규칙이 있다. Angular와 React가 개발되고 나서 장점을 흡수해 만들었기 때문에 문법과 규칙을 쉽게 만들어서 비교적 러닝 커브가 낮다. 마찬가지로 프레임워크답게 다양한 기능이 내장되어 있다.

    React

    2013년 Facebook에서 개발한 라이브러리로 "지속적으로 데이터가 변화하는 대규모 애플리케이션 구축"하는 것을 목표로 개발했다. Angular, Vue 등 다른 프레임워크와는 달리 리액트는 오로지 view만을 담당하는 라이브러리이다. 그만큼 내장되어 있는 기능이 부족해 third-party 라이브러리(react-router-dom, redux)를 함께 사용한다.

    ++ (참고) 프레임워크, 라이브러리

    프레임워크와 라이브러리는 기술을 분류하는 하나의 카테고리다.

    Framework Library 공통점 다른 사람이 만들어 둔 코드 차이점 다른 사람이 만든 틀 (Frame) 안으로 들어가서 작업하는 것 내 작업에 다른 사람이 만들어 둔 코드를 가져와서 사용하는 것

    쉽게 풀어서 설명하면 프레임 워크는 모든 환경과 도구들을 제공해주는 대신에 그것들만 사용해야 하며 해당 기술을 새롭게 익혀야 하므로 기술 활용을 하기 위한 러닝커브가 높다. 라이브러리는 목적을 위한 하나의 도구를 제공받는 것으로 우리가 원하는 내용을 선택할 수 있지만 다른 도구들을 기본적으로 제공하고 있지 않기 때문에 본인이 스스로 선택해서 조합해야 한다.

    React를 다루면 좋은 이유

    React는 자기만의 문법을 가진 Angular, Vue와 달리 자바스크립트 문법을 그대로 사용했다. 오픈소스 프로젝트이면서 페이스북의 지속적인 관리가 이루어지고 있으며 많은 사용자수를 기반으로 생태계가 활성화되어 있다. 컴포넌트를 비교적 더 단순하고 간단하게 정의할 수 있고 React Native 등의 웹이 아닌 플랫폼에서도 활용할 수 있는 기술로 확장하였기 때문이다.

    What is React?

    리액트는 사용자 인터페이스(UI)를 구축하기 위한 선언적이고 효율적이며 유연한 자바스크립트 라이브러리이다. 리액트와 같은 프론트엔드 라이브러리 혹은 프레임워크를 사용하는 가장 큰 이유 중 하나는 UI를 자동으로 업데이트 해준다는 점과 선언적인 개발이 가능하게 된다. UI를 자동으로 업데이트하는 과정에서 Vritual DOM을 통해서 최적화를 구현한다.

    선언형

    개발방식은 선언적 개발과 절차적 개발로 나눌 수 있다.

    절차적 방식은 길찾기를 예시로 스타벅스를 방문하는데 다음과 같은 과정을 거친다. "신대방 삼거리역 7호선 2번 출구로 나와서 상도로 길을 따라 도보로 400m 이동한 후 삼거리에서 오른쪽으로 꺾으세요." 목적을 이루기 위해서 어떻게(How)라는 측면에 맞추어서 진행한다. 만일 목적이 제대로 이루어지지 않는 문제가 발생했다면 어떤 과정에서 문제가 생겼는지 모든 과정을 되짚어 보아야 한다. 이는 코드가 길어질수록 유지보수가 어려워진다.

    function total(arr) { let total = 0; for(let i=0; i prev + current, 0); }

    Virtual DOM

    리액트가 화면을 업데이트 하는 과정을 조금 더 효율적으로 수행하기 위한 기술이다. 자세히 말하자면 DOM을 반복적으로 직접 조작하면 그만큼 브라우저가 렌더링을 자주 하게 되고, 그만큼 PC 자원을 많이 소모하게 되는 문제를 해결하기 위한 기술이다.

    예시로 좌측의 경우는 필요할 때마다 요청을해서 창고를 3번이나 가는 비효율적인 상황이고, 우측의 경우는 Virtual DOM이 계산을 하고 정리된 요청을 하여 창고를 한 번만 가는 경우이다.

    Node & NPM

    Node

    자바스크립트 실행환경으로 자바스크립트 코드는 따지고 보면 단순한 텍스트의 나열이다. 이 텍스트들이 의미를 가지려면 자바스크립트 코드를 읽어서 실제로 실행시킬 수 있는 도구들이 필요하다. 이렇게 자바스크립트를 읽어서 실행할 수 있는 도구들을 자바스크립트 실행환경 이라고 한다. 가장 유명한 자바스크립트 실행환경으로는 '브라우저'가 있다.

    웹 개발 시장이 커지고 자바스크립트를 다룰 수 있는 개발자가 늘면서 브라우저가 아닌 다른 환경에서도 자바스크립트로 개발하고 싶은 니즈가 생겼고, 이러한 니즈에서 탄생한 것이 Node이다. Node는 브라우저 밖에서도 자바스크립트를 실행할 수 있게 만드는 자바스크립트 실행환경이고 자바스크립트의 탈웹을 이뤄낸 도구라는 평가를 받고 있다.

    NPM

    Node Package Manager의 약자이다. 패키지는 노드를 실행할 수 있는 하나하나의 프로그램을 일컫는다. 우리가 배우는 React, Babel, WebPack 등이 모두 하나하나의 패키지이다. 이를 토대로 NPM을 해석하면 노드를 실행할 수 있는 여러 패키지들을 다운로드, 업데이트, 삭제할 수 있는 매니저의 역할을 하는 도구인 셈이다.

    Component

    재사용 가능한 각각의 독립된 모듈을 의미한다. 재활용 가능한 UI 구성단위, 즉 컴포넌트 단위로 UI를 구성할때의 장점으로는 코드 재활용성이 증가, 코드 유지보수가 용이, 해당 페이지가 어떻게 구성되어 있는지 파악 용이하다.

    Class Component

    초기에 많이 사용되던 컴포넌트 형태로 함수형에 비해 문법과 사용법이 복잡하다. 하지만 클래스형으로 작성되어 있는 기존 코드들도 많이 남아있기 때문에 읽고 해석할 수 있어야 한다.

    Function Component

    클래스형 컴포넌트에 비해 간단하고 단순하다. 초창기에는 state를 관리하지 못한다는 단점으로 인해 잘 사용되지 않았다. React 16.8 버전에서 hooks라는 기능이 추가되면서 state를 잘 관리할 수 있게 되어서 그 후로 자주 사용되고 있다.

    JSX(JavaScript Syntax Extension)

    자바스크립트 확장 문법으로 자바스크립트와 HTML을 합쳐놓은 듯한 형태이다. 마크업을 편리하게 작성하기 위한 문법으로 HTML에서 마크업 하고, 자바스크립트에서 로직을 연결하고 붙이는 과정을 하나의 자바스크립트 파일 내에서 편리하게 처리할 수 있다. JSX로 작성한 코드는 자바스크립트가 인식할 수 없는 문법이기에 Babel이라는 패키지를 이용해서 변환해줘야 한다.

    // 아래 문구를 작성하면

    Hello World

    // Babel은 아래처럼 해석한다. React.createElement('div', null, "Hello World")

    장점

    HTML tag를 그대로 사용하기 때문에 익숙하며, HTML 마크업과 JavaScript 로직을 같이 구현할 수 있다. 또한 JavaScript 문법을 이용해서 HTML을 생성할 수 있으며 기존의 DOM+Event 방식보다 훨씬 간편하게 UI를 구성할 수 있다.

    특징

    하나의 부모 태그를 가지며 모든 태그가 셀프 클로징이 가능하다.

    function Login() { const notify = () => alert("Hello"); return

    Login

    }

    [React] 😇 React.js란?

    이번 포스팅에서는 React가 무엇인지, 탄생 배경과 특징 그리고 정의를 구분지어 간단하게 정리해보려고 한다.

    ✔️ 1. React란?

    리액트(react.js)란 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다.

    페이스북과 개별 개발자 및 기업들 공동체에 의해 유지보수된다. 대규모 또는 복잡한 리액트 애플리케이션 개발에는 보통 라우팅, API통신 등의 기능이 요구되는데 리액트에는 기본적으로 제공되지 않기 때문에 추가 라이브러리를 사용해야 한다.

    1) 3세대 웹, 프레임워크? 라이브러리?

    시간에 따라 자연스럽게 기술이 발전하는 것이 아니라 해결해야 하는 문제의 복잡성이 증가함으로 인해 기술이 발전한다. 그렇다면 웹에서 문제의 복잡성은 무엇을 의미하는 걸까? 사용자들이 원하는 기능들이 점점 많아지고 개발자들이 처리해야 하는 유저의 interaction 또한 점점 늘어나게 된다. 이런 상황에서 프론트 엔드 개발자들은 기존의 기술에 한계를 느끼게 되고 새로운 기술을 개발하게 된다. 그 기술들이 Front-end Framework라고 통칭되고 있는 기술들이다.

    그렇다면 웹이 발전함에 따라 프론트엔드 기술들은 어떤 변환들을 거쳐 현재의 프레임 워크가 나온 것일까?

    📌 1세대 기술

    HTML / CSS

    JavaScript

    DOM

    Event

    📌 2세대 기술

    jQuery

    📌 3세대 기술

    Angular(Framework)

    Vue(Framework)

    React(Library)

    ✔️ 2. React / Vue / Angular

    1) Framework와 Library의 차이?

    📌 공통점

    다른 사람들이 만들어둔 코드이다

    📌 차이점

    프레임워크는 다른 사람들이 만들어둔 틀 속으로 내가 들어가는 것이지만 라이브러리는 내 작업에 다른 사람들이 만들어둔 코드를 가져와서 사용하는 것이다

    내가 불려가면 프레임워크, 내가 부르면 리액트!

    2) React / Vue / Angular

    📌 Angular

    2010년 구글에서 개발한 프레임워크

    TypeScript 기반으로 매우 안정적이고 잘 설계된 구조 안에서 개발이 가능

    프레임워크 답게 다양한 기능기 내장되어 있다

    무겁고 배우기 어렵다는 단점이 있다

    📌 Vue

    2014년 Even You라는 개인이 개발한 프레임워크

    Angular와 마찬가지로 Vue만의 문법과 규칙이 있다

    프레임워크 답게 다양한 기능이 내장되어 있다

    러닝커브가 낮다

    📌 React

    2013년 페이스북에서 개발한 라이브러리

    '지속적으로 데이터가 변화하는 대규모 애플리케이션을 구축하는' 목표로 개발

    Angular, Vue 등의 다른 프레임워크와는 달리 리액트는 오직 View만 담당하는 라이브러리

    그만큼 내장되어 있는 기능이 부족해 third-party 라이브러리(ex. React-Router, Redux)를 함께 사용한다

    3) 왜 리액트를 사용할까?

    리액트는 자바스크립트의 문법을 그대로 활용하기 때문에 편리성을 가지고 사용할 수 있다

    페이스북의 지속적인 관리와 함께 생태계가 활성화 되어있다

    리액트는 오픈소스 프로젝트이다. 즉, 누구나 코드를 볼 수 있고 수정 또는 새로운 기능을 제한할 수 있다

    페이스북에서 관리하기 때문에 퀄리티를 유지하고 있다

    Angular나 Vue에 비해 컴포넌트가 단순하고 간단하게 정의되어 있다

    ✔️ 3. React의 특징

    선언적

    Virtual-dom

    Node & NPM

    CRA

    Component

    JSX

    1) 선언적인 개발이란?

    개발 방식을 크게 두가지로 나누면 선언적 방식, 절차적 방식으로 나눌 수 있다. 아래 청소를 예시로 각각의 특징을 살펴보자

    📌 절차적(HOW?)

    청소기를 돌린다

    빨래를 한다

    걸레질을 한다

    쓰레기를 버린다

    => 목적을 이루기 위해 어떻게? 라는 측면에 중점을 두고 하나하나 절차를 밟으면서 진행한다

    📌 선언적(WHAT?)

    깨끗해진 방의 모습을 상상해서 그림을 그린다

    로봇에게 그림을 전달한다. 만들어줘~ (여기서 로봇은 리액트)

    => 무엇이 되면 되는지? 원하는 최종적인 결과를 선언하면 된다

    📌 디버깅 하는 과정

    절차적: 모든 절차를 되짚어보면서 문제가 무엇인지 확인해야 한다. 프로그램이 복잡해질수록 유지보수가 어렵다

    선언적: 우리가 선언한 모습이 우리가 기대한 모습과 어떻게 다른지 파악을 해보면 된다. 즉, 내가 그린 그림이 내가 실제 기대한 그림과 어떤 부분이 다른지 확인한 다음 그 부분만 고치면 된다. 그렇기 때문에 유지보수가 쉽다

    2) Virtual-dom

    virtual-DOM은 가상의 DOM(Document Object Model)을 말한다. DOM은 HTML 문서를 제어할 수 있는 API 트리 자료구조다. react에서 사용하는 가상 DOM 또한 실제 DOM에 기반하여 만들어진다.

    react가 가상 DOM을 사용하는 이유는 가상 DOM을 만들어 이벤트가 새로 발생할 때마다 실제 DOM과 비교하여 최소한의 변경사항만 반영하기 위함이다. 또한 실제 DOM에는 브라우저가 화면을 표현하는데 필요한 정보가 모두 들어있어 실제 DOM을 이용하여 작업을 하기엔 무거우며 속도가 느리다. 그래서 가상 DOM을 이용해 효율성과 속도를 개선할 수 있다.

    virtual-DOM은 리액트가 화면을 업데이트 하는 과정을 조금 더 효율적으로 수행하기 위한 구조이다.

    3) Node & NPM

    📌 Node란?

    노드는 자바스크립트 실행 환경이다. 우리가 작성하는 자바스크립트는 단순한 텍스트의 내열이다. 이러한 텍스트들이 실제 의미를 가지려면 자바스크립트를 읽어 실제로 실행시키는 도구들이 필요하다. 이들을 자바스크립트 실행환경이라 부른다. 가장 유명한 실행환경은 브라우저이다.

    웹개발 시장이 점점 커짐으로 브라우저가 아닌 다른 환경에서도 자바스크립트를 이용한 개발을 하려는 니즈가 생겨났고 이런 니즈속에서 탄생한것이 노드이다. 노트는 브라우저 바깥에서도 자바스크립트를 실행할수있도록 만들어주는 자바스크립트 실행환경이다.

    우리는 왜 노드를 알아야 하고 필요로 할까?

    우리는 리액트를 이용해서 프로젝트를 만든다. 그런데 우리가 프로젝트를 진행할 때는 실제 웹브라우저 안에서 작업을 하는 것이 아니라 우리의 컴퓨터 안에서 작업을 한다. 이 때 리액트를 구성하기 위해서는 리액트와 그 외에 자바스크립트로 구성된 여러 패키지들을 필요로 한다.

    실제로 리액트는 UI를 구성할 때 필요, 최신의 자바스크립트 문법을 모든 브라우저가 읽고 해석할 수 있는 과거의 문법으로 변환시켜주는 Babel, 작성한 자바스크립트 파일을 분석하여 분할하고 합쳐주는 역할을 하는 WebPack 또한 필요하다.

    이 외에도 수많은 패키지들이 프로젝트를 원할하게 진행하기 위해서 요구된다. 이런 여러 패키지들의 작업환경인 컴퓨터를 돌리기 위해서 우리의 컴퓨터에서도 자바스크립트를 실행할 수 있는 노드를 설치해야 한다.

    📌 NPM이란?

    NPM은 Node Package Manager의 약어이다. 여기서 말하는 패키지란 무슨 의미일까?

    패키지는 노드로 실행할 수 있는 하나하나의 프로그램이다. 우리가 배우는 리액트, 위에서 언급한 Babel, WebPack 패키지이다. 결과적으로 노드를 실행할 수 있는 여러 패키지들을 다운로드 받고, 업데이트 하고 삭제할 수 있는 매니저의 역할을 하는 도구가 바로 NPM이다.

    4) CRA

    Create React App의 약어이다. CRA는 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅 해주는 도구이다.(toolchain) 그렇다면 우리는 왜 CRA를 필요로 할까?

    리액트는 UI 기능만을 제공하는 라이브러리다. 그러나 실제 온전한 웹사이트를 구축하기 위해서는 UI 구성 외에도 여러가지 다른 도구들이 필요하다. 그래서 리액트로 프로젝트를 진행하기 위해서는 필요한 도구들을 toolchain이라고 부른다

    CRA는 리액트로 웹 애플리케이션을 만들기 위한 환경을 제공한다.

    CRA를 이용하면 하나의 명령어로 리액트 개발환경 구축이 가능하다.

    nax create - react - app

    5) Component

    Component는 재사용이 가능한 UI 구성 단위이다. Component를 사용했을 땐 여러 장점이 발생하는데 아래를 살펴보자

    코드 재활용성 증가 -> 우리가 컴포넌트 하나를 만들어 계속해서 재사용하고 있다는 것을 의미한다

    코드 유지보수가 용이해진다. 만약 백개의 형태를 변경해야한다는 가정하에, 하나의 컴포넌트를 사용했다면 원본이 되는 컴포넌트 구성만 바꾸면 모두가 바뀐다.

    해당 페이지가 어떻게 구성되었는지 파악하기 쉽다.

    컴포넌트는 단일 개념이 아디나. 또 다른 컴포넌트를 포함한다(부모 컴포넌트 - 자식 컴포넌트)

    6) JSX

    JavaScript Syntax Extension의 약어이다. 말 그대로 자바스크립트 확장 문법이다. 형태는 자바스크립트와 html을 합쳐놓은 듯한 문법이다. 또한 마크업을 편리하게 작성하기 위한 문법이며 JSX로 작성한 코드는 실제 자바스크립트가 인식할 수 없는 문법이기에 Babel이라는 패키지를 이용해서 변환해줘야 한다. 아래 특징과 장점을 함께 살펴보자.

    특징 모든 태그들은 하나의 부모태그로 감싸져 있어야 한다.

    모든 태그가 셀프 클로징이 가능하다.

    모든 property들은 camelCase로 사용해야 한다.

    자바스크립트 동작이 가능하다.

    장점 HTML 태그를 그대로 사용하기 때문에 사용감이 익숙하다.

    HTML 마크업과 자바스크립트 로직을 같이 구현할 수 있다

    자바스크립트 문법을 이용해서 HTML을 생성할 수 있다. 별도의 HTML 파일이 필요하지 않다.

    React란 무엇인가 – 자바스크립트 라이브러리

    지금쯤 React에 대해 들어보셨을 것입니다. 에 따라 State of JavaScript 2020 설문 조사에 따르면 React는 가장 인기 있는 JavaScript 버전입니다. 초기부터 프론트엔드 개발 공간을 장악했으며 현재 react는 220,000개 이상의 라이브 웹사이트에서 사용되고 있습니다. 그뿐만 아니라 Apple, Netflix, Paypal 및 기타 여러 업계 리더들은 이미 소프트웨어 애플리케이션에서 React JS를 사용하기 시작했습니다.

    그러나 목적이 무엇인지 아직 확실하지 않은 경우 다음을 살펴보겠습니다. what React is 그리고 그것이 어떻게 작동하는지.

    리액트란?

    React는 사용자 인터페이스에서 지속적으로 데이터를 보충하는 소프트웨어를 만드는 데 자주 사용되는 JavaScript 프레임워크입니다. 이 접근 방식을 사용하면 전체 화면을 다시 로드하고 모든 단일 코드 라인을 처리할 필요가 없습니다. React JS는 동적 앱 및 인터페이스를 만드는 데 사용되는 잘 알려진 스크립팅 언어인 JavaScript로 작성된 구성 요소를 설계하는 데 도움이 됩니다. 지속적으로 데이터를 변경하는 앱을 사용할 때 React는 JavaScript로 만들어졌을 가능성이 큽니다.

    React의 진화

    Facebook의 소프트웨어 엔지니어 Jordan Walke는 이 높은 평가를 받는 기술을 만들었습니다. 그들은 널리 사용 가능한 React JS를 만들고 세계에 소개하는 데 중점을 두었습니다. 자바스크립트 라이브러리 UI(사용자 인터페이스)를 구축하기 위한 것입니다. 그는 그것에 이름을 주었다 FaxSJ. 회사 Facebook은 모바일 앱을 개선하고 최적화하기 위해 이를 사용하기로 결정했습니다.

    React가 JavaScript 라이브러리로 알려진 이유는 무엇입니까?

    React는 주로 JavaScript 애플리케이션을 개발, 저장 및 사용하는 데 사용되기 때문에 JavaScript 라이브러리입니다. 이를 통해 사용자는 필요한 것을 선택하고 코드에 효과적으로 적용하여 동일한 스크립트를 수동으로 반복해서 불필요한 작성을 피할 수 있습니다. 스크립트 라이브러리로 은유적으로 보고 해석할 수 있습니다. 매우 다이내믹한 앱과 웹사이트를 빠르게 만들고 싶다면 여기가 바로 여기입니다.

    코드가 호환되는 한 React의 라이브러리를 활용하여 미리 작성된 기능, 애드온 및 스크립트를 추가하여 처리 중인 코드를 사용자 정의할 수 있습니다. 이 기술은 번창하는 오픈 소스 코드이므로 필요한 경우 다른 사용자로부터 지원과 지침을 더 쉽게 받을 수 있습니다. 새로운 스크립트는 인터넷(또는 React 웹사이트)에서 찾을 수 있으며 라이브러리에 추가할 수 있습니다.

    왜 반응합니까?

    이제 우리 앞에 닥친 핵심 질문은 누군가가 React를 사용해야 하는 이유입니다. Angular와 같이 프론트엔드 앱 개발에 더 쉽게 접근할 수 있도록 하는 수많은 오픈 소스 시스템이 있습니다. 여기에서 다른 경쟁 기술이나 프레임워크에 비해 React의 이점을 살펴보겠습니다. 프론트엔드 세계가 나날이 발전함에 따라 새로운 프레임워크를 배우는 데 시간을 소비하는 것은 어려운 일입니다. 특히 해당 프레임워크가 결국 막다른 골목이 될 수 있는 경우에는 더욱 그렇습니다. 세계에서 가장 인지도가 높은 브랜드를 포함하여 React JS를 사용하는 많은 회사에서 React는 몇 가지 놀라운 이점을 제공할 것입니다.

    React JS를 사용하면 많은 이점이 있습니다. React JS가 다른 프론트엔드 개발 프레임워크보다 뛰어난 이유를 알아보기 위해 React JS의 주요 장점을 살펴보겠습니다.

    1. 단순성

    ReactJS는 바로 이해하기 쉽습니다. 구성 요소 기반 아키텍처, 잘 정의된 수명 주기 및 일반 JavaScript만 사용하기 때문에 React는 매우 이해하기 쉽고 훌륭한 온라인(및 모바일) 앱을 구축하고 지원합니다. React는 HTML과 JavaScript를 혼합할 수 있는 JSX라는 고유한 구문을 사용합니다. 필요하지 않습니다. 개발자는 JSX가 더 사용자 친화적이지만 여전히 일반 JavaScript로 작성할 수 있습니다.

    2. 배우기 쉬움

    기본적인 프로그래밍 지식이 있는 사람은 누구나 React를 배울 수 있습니다. 그럼에도 불구하고 Angular와 Ember는 ‘도메인별 언어’로 선전되어 마스터하기가 더 어렵습니다. 이를 위해서는 CSS와 HTML에 대한 기본적인 이해만 있으면 됩니다.

    3. 네이티브 접근

    React는 모바일 애플리케이션을 빌드하는 데 사용할 수 있습니다(React Native). 그리고 React는 재사용성을 강력하게 지원하기 때문에 상당한 코드 재사용성을 제공합니다. 그 결과 iOS, Android 및 웹 애플리케이션을 한 번에 만들 수 있습니다.

    4. 데이터 바인딩

    React는 단방향 데이터 바인딩을 사용하며 플럭스로 알려진 애플리케이션 아키텍처는 디스패처로 알려진 단일 제어 지점을 통해 모듈로의 데이터 흐름을 관리합니다. 대형 ReactJS 앱의 자체 포함 모듈은 디버그하기가 더 간단합니다.

    5. 성능

    React에는 내장 종속성 컨테이너의 개념이 없습니다. Browserify, Require JS, Babel을 통해 활용할 수 있는 EcmaScript 6 모듈, ReactJS-di를 활용하여 종속성을 자동으로 주입할 수 있습니다.

    6. 테스트 가능성

    ReactJS 애플리케이션은 테스트하기가 매우 간단합니다. 우리는 ReactJS 보기에 제공한 상태로 플레이하고 출력, 관련 작업, 알림 및 작업을 검사할 수 있습니다.

    반응 기능

    JSX – JSX는 JavaScript용 구문 확장입니다. React 프로그래밍에서 JSX를 사용할 필요는 없습니다. 그러나 매우 권장됩니다.

    컴포넌트 – 이것은 React의 기초입니다. 모든 것을 구성 요소로 간주해야 합니다. 복잡한 프로젝트에서 작업할 때 코드를 유지 관리하는 데 도움이 됩니다.

    선형 데이터 흐름 및 흐름 – React는 단방향 데이터 흐름을 사용하므로 앱에 대해 쉽게 추론할 수 있습니다. Flux는 데이터의 단방향 흐름을 돕는 추세입니다.

    라이선스 – React는 Facebook Inc.의 조건에 따라 라이선스가 부여됩니다. 설명서는 Creative Commons Attribution 4.0 International License에 따라 게시됩니다.

    결론

    React는 최신 애플리케이션 개발을 위한 세계에서 가장 인기 있는 JavaScript UI 라이브러리입니다. React 및 기타 프레임워크는 JSX, 가상 DOM 및 구성 요소와 같은 React의 강력한 기능과 개념을 구별합니다.

    React를 이해할 때 처음에는 라이브러리에 대해 신경 쓸 필요가 없습니다. 먼저 React의 기본 사항과 다른 프레임워크 및 라이브러리와 어떻게 다른지 알아보세요. 몇 가지 기본 프로젝트 후에 특정 라이브러리를 사용하여 발전하고 싶은 충동을 느낄 것입니다. 수많은 라이브러리에서 거의 모든 문제를 해결할 수 있으므로 시작하려면 우수한 문서가 있는 라이브러리를 선택하십시오.

    React는 Angular 및 Vue와 같은 경쟁 라이브러리보다 더 큰 커뮤니티를 가지고 있습니다. React를 배우고자 하는 사람들을 위한 취업 시장은 많은 일자리가 있어 유망해 보입니다. React 프레임워크를 마스터하는 길은 쉽지 않지만 결국 보람이 있습니다. React는 배운 사람이 훌륭한 개발자가 될 수 있는 많은 기회를 제공하는 기술입니다.

    키워드에 대한 정보 리 액트 란

    다음은 Bing에서 리 액트 란 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

    이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

    사람들이 주제에 대해 자주 검색하는 키워드 React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식)

    • 동영상
    • 공유
    • 카메라폰
    • 동영상폰
    • 무료
    • 올리기

    React #기초 #0강 #: #리액트왜 #쓰는지 #알려줌 #(+ #수강시 #필요 #사전지식)


    YouTube에서 리 액트 란 주제의 다른 동영상 보기

    주제에 대한 기사를 시청해 주셔서 감사합니다 React 기초 0강 : 리액트왜 쓰는지 알려줌 (+ 수강시 필요 사전지식) | 리 액트 란, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

    Leave a Comment