Q.
리엑트는 js의 한 종류인거야?
A.
아니요, **React(리액트)**는 JavaScript의 한 종류가 아닙니다. React는 JavaScript 라이브러리입니다. JavaScript 언어를 기반으로 만들어졌으며, 특히 **사용자 인터페이스(UI)**를 구축하는 데 중점을 둔 라이브러리입니다.
1. React란 무엇인가?
- React는 Facebook(현재 Meta)이 개발한 오픈소스 JavaScript 라이브러리입니다.
- 주로 **단일 페이지 애플리케이션(SPA)**에서 컴포넌트 기반으로 UI를 효율적으로 만들기 위해 사용됩니다.
- React의 핵심은 UI 구성 요소를 선언적으로 작성하고, 애플리케이션의 상태에 따라 UI를 자동으로 업데이트하는 기능입니다.
2. JavaScript와 React의 관계
- React는 JavaScript로 작성되었으며, JavaScript를 확장하고 도와주는 도구입니다.
- React를 사용하려면 JavaScript에 대한 기본적인 이해가 필요합니다.
- JavaScript를 사용하여 React 컴포넌트와 애플리케이션 로직을 작성합니다.
3. React의 특징
(1) 컴포넌트 기반
- React 애플리케이션은 여러 작은 컴포넌트로 나뉘며, 각 컴포넌트는 독립적으로 동작하고 UI의 특정 부분을 담당합니다.
- 예:
function HelloWorld() {
return <h1>Hello, World!</h1>;
}
(2) 선언적 UI
- React에서는 UI를 상태에 따라 자동으로 업데이트합니다.
- 예: 상태 변화에 따라 화면을 다시 그릴 필요 없이 React가 알아서 DOM을 업데이트합니다.
function App() {
const [count, setCount] = React.useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}
(3) 가상 DOM(Virtual DOM)
- React는 가상 DOM이라는 개념을 사용하여 성능을 최적화합니다.
- 변경 사항이 발생하면 가상 DOM에서 변경된 부분만 실제 DOM에 반영하여 속도를 높입니다.
(4) JSX
- React에서는 JavaScript와 HTML을 결합한 JSX(JavaScript XML) 문법을 사용합니다.
- JSX는 JavaScript로 변환되므로 브라우저가 실행할 수 있습니다.
const element = <h1>Hello, World!</h1>;
4. React는 JavaScript와 어떻게 다른가?
특징 JavaScript React
정의 | 프로그래밍 언어 | JavaScript 기반 UI 라이브러리 |
역할 | 웹 브라우저에서 로직 처리 및 동작 구현 | UI 구성 요소 작성 및 관리 |
사용 목적 | 다양한 목적의 프로그래밍 | UI를 선언적으로 구성 |
필요한 기술 | 기본 JavaScript 문법 | JavaScript + JSX |
5. React는 프레임워크인가?
아니요, React는 프레임워크가 아니라 라이브러리입니다.
- React는 오로지 **뷰(View)**를 만드는 데 중점을 둡니다.
- 라우팅, 상태 관리, HTTP 요청 처리 같은 기능은 추가 도구나 라이브러리(Redux, React Router 등)를 사용해야 합니다.
- 프레임워크(예: Angular, Vue.js)는 더 많은 기능(상태 관리, 라우팅 등)을 내장하고 있어 React와 차별화됩니다.
6. React를 사용하는 이유
- React는 재사용 가능한 컴포넌트를 쉽게 만들 수 있어 유지보수와 확장성이 뛰어납니다.
- 상태 변화에 따른 UI 업데이트를 간편하게 관리할 수 있습니다.
- 대규모 커뮤니티와 풍부한 생태계를 보유하고 있어 다양한 플러그인과 도구를 활용할 수 있습니다.
요약
React는 JavaScript의 확장 라이브러리로, UI를 효율적이고 선언적으로 구축하는 데 사용됩니다. React는 JavaScript의 일부가 아니라 JavaScript를 활용하는 도구입니다. JavaScript와 함께 사용하여 강력한 웹 애플리케이션을 개발할 수 있습니다.
추가적인 질문이 있으면 언제든지 물어보세요! 😊
'언어 및 도구들 공부 > React' 카테고리의 다른 글
JS 화살표 함수 복습 및 React 사전 공부 (2) | 2024.11.17 |
---|---|
클래스 인스턴스, 클래스 컴포넌트 (1) | 2024.11.17 |
화살표 함수, 익명함수, this 바인딩 차이 (0) | 2024.11.17 |
리엑트에서의 DOM 구조 (0) | 2024.11.17 |
NPM, yarn (0) | 2024.11.16 |