React는 Facebook에 의해 출시되었고 현재까지 꾸준한 인기를 누리고 있다.
Facebook은 매우 복잡한 사용자 인터페이스를 가지고 있으며, 수많은 컴포넌트로 구성되어 있다.
기존의 방식보다 빠른 UI 렌더링과 반응성 등 페이스북의 성능 요구사항을 충족시키기 위해 React를 만들었다.
리액트(React, React.js 또는 ReactJS)는 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다.
출처 : 위키백과
DOM(Document Object Model)
DOM은 문서 객체 모델(Document Object Model)의 약어로 웹 페이지 문서를 트리 구조의 노드로 표현한다. Javascript를 사용하여 이러한 노드를 조작할 수 있다. DOM은 웹 페이지의 요소에 동적으로 접근하고 수정하는 데 사용되며, 웹 애플리케이션의 동적인 기능을 구현하는 데 중요한 역할을 한다.
바벨(babel)이란?
React에서 JSX를 사용할 수 있게 JSX를 JavaScript로 변환하는 역할을 하는 것이 바벨 (babel)이다.
// 실제 작성할 JSX 예시
function App() {
return (
<h1>Hello</h1>
);
}
// 위와 같이 작성하면, 바벨이 다음과 같이 자바스크립트로 해석하여 준다.
function App() {
return React.createElement("h1", null, "Hello");
}
JSX 문법
return {
<>
<h1>Hello</h1>
<h2>World</h2>
<h3>Hello</h3>
<h4>React</h4>
</>
}
const name = "DevLog";
return {
<>
<div>제 이름은 {name} 입니다.</div>
</>
}
return {
<div className="example"></div>
}
DOM은 웹 개발자들의 영원한 숙제다. 이 DOM을 효과적으로 다루는 것이 꽤나 힘들다는 것이다.
DOM에 대한 완전히 새로운 접근
import React, { useState } from 'react';
function HelloMessage({ name }) {
const [chatName, setChatName] = useState(''); // 초기값을 빈 문자열로 설정
return (
<div>
<div>Hello {name}</div>
<div>I am {chatName}</div>
</div>
);
}
export default HelloMessage;
왜 이렇게 번거로운 비교작업을 거치는 것일까? 바로 DOM을 직접 바꾸면 안 될까?
브라우저에게 DOM을 해석하고 렌더링 하는 것은 굉장히 비싼 작업이다. Virtual DOM은 그 작업을 미리 최적화시켜 줄 뿐만 아니라, 컴포넌트 단위로 묶어서 관리할 수 있게 해주는 것이다.
1. Node.js는 자바스크립트 실행 환경이기 때문이다.
- Javascript
Javascript는 HTML에 종속되어 있는 언어이며, HTML 조작과 변경을 위해 사용한다.
정적언어인 HTML을 조작하여 웹페이지를 동적으로 바꿔주는 기능을 하는 게 Javascript다.
그렇다면 Javascript 해석은 누가 하는가? 브라우저
- 브라우저
브라우저에는 Javascript 엔진이 있기 때문에 인터넷 브라우저 위에서 Javascript를 실행할 수 있었다.
- Node.js
Node.js는 브라우저 말고도 다른 환경에서 Javascript를 사용할 수 있게 해 준다.
따라서 Node.js를 설치하면 브라우저를 켜지 않아도 Javascript를 컴퓨터에서 수행할 수 있다.
Node.js설치 후 명령 프롬프트(CMD)에 node 실행 후 console.log(”xxx”)를 출력해 보자.
2. NPM(Node Package Manager)을 사용하기 위해
NPM(Node Package Manager)은 자바스크립트 패키지 매니저다.
NPM을 통해 React 개발에 필요한 다양한 모듈과 라이브러리를 쉽게 다운로드하고 관리할 수 있다.
NPM은 React 개발에 필요한 Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI(Command Line Interface)를 제공한다.
NPM은 Node.js를 설치할 때 함께 설치되기 때문에 Node.js를 설치하는 이유이기도 하고 NPM을 CLI로 실행시키고 싶다면 Node.js가 필요하다.
3. JSX를 사용하기 위해
NPM이 필요하면 NPM만 설치하면 되지만 굳이 Node.js를 설치하는 이유는 Node.js가 있으면 바벨(Babel)이라는 컴파일러 도구를 추가로 다운로드하여 자바스크립트 대신에 JSX를 사용하는 것이 가능하기 때문이다.
다음글
React axios 모듈화 (0) | 2025.02.07 |
---|---|
React-Router-Dom 정리 (0) | 2025.02.06 |
React Hook 기본 정리 / Custom Hook (1) | 2025.02.05 |
React CORS 설정 - 프록시 (http-proxy-middleware) (7) | 2025.01.31 |
React 설치 및 실행 / 프로젝트 구조 정리 (3) | 2025.01.30 |
댓글 영역