CoDream

리액트(React) 본문

React/React 이론

리액트(React)

코잠 2024. 5. 31. 09:27
728x90
반응형

리액트(React)

페이스북에서 개발한 자바스크립트 라이브러리로, 사용자 인터페이스를 구축하기 위해 사용됩니다.

리액트는 컴포넌트 기반 아키텍처를 제공하여 재사용 가능한 UI 컴포넌트를 쉽게 만들 수 있습니다.

리액트의 사용 방법

1. 리액트 설치

리액트를 설치하는 방법은 여러 가지가 있지만, 가장 일반적인 방법은 Create React App이라는 명령줄 도구를 사용하는 것입니다.

npx create-react-app my-app
cd my-app
npm start

2. 기본 컴포넌트 작성

리액트 컴포넌트는 함수형 컴포넌트와 클래스형 컴포넌트로 나눌 수 있습니다.

함수형 컴포넌트

import React from 'react';

function MyComponent() {
  return <h1>Hello, world!</h1>;
}

export default MyComponent;

클래스형 컴포넌트

import React, { Component } from 'react';

class MyComponent extends Component {
  render() {
    return <h1>Hello, world!</h1>;
  }
}

export default MyComponent;

3. 상태 관리

리액트에서 상태를 관리하는 방법은 여러 가지가 있습니다. 대표적인 방법으로는 useState 훅을 사용하는 방법과 useReducer 훅을 사용하는 방법이 있습니다.

useState 훅

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

export default Counter;

useReducer 훅

import React, { useReducer } from 'react';

function reducer(state, action) {
  switch (action.type) {
    case 'increment':
      return { count: state.count + 1 };
    case 'decrement':
      return { count: state.count - 1 };
    default:
      throw new Error();
  }
}

function Counter() {
  const [state, dispatch] = useReducer(reducer, { count: 0 });

  return (
    <div>
      <p>Count: {state.count}</p>
      <button onClick={() => dispatch({ type: 'increment' })}>+</button>
      <button onClick={() => dispatch({ type: 'decrement' })}>-</button>
    </div>
  );
}

export default Counter;

4. Props를 통한 데이터 전달

컴포넌트 간에 데이터를 전달할 때는 props를 사용합니다.

import React from 'react';

function Greeting(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return <Greeting name="John" />;
}

export default App;

리액트의 장단점

장점

  1. 컴포넌트 기반 아키텍처: 리액트는 UI를 재사용 가능한 컴포넌트로 나누어 개발할 수 있게 합니다. 이는 유지보수성과 확장성을 높여줍니다.
  2. 가상 DOM: 리액트는 가상 DOM을 사용하여 실제 DOM 조작을 최소화하고, 효율적으로 업데이트를 수행합니다. 이는 성능 향상에 도움이 됩니다.
  3. 단방향 데이터 흐름: 데이터는 부모에서 자식으로만 흐르기 때문에 데이터의 흐름을 추적하고 이해하기가 쉽습니다.
  4. 커뮤니티와 생태계: 리액트는 큰 커뮤니티와 풍부한 생태계를 가지고 있어 다양한 라이브러리와 도구를 쉽게 사용할 수 있습니다.
  5. React Native: 리액트를 사용하여 모바일 애플리케이션을 개발할 수 있는 React Native도 지원합니다.

단점

  1. 학습 곡선: JSX 문법과 최신 자바스크립트 기능에 익숙하지 않다면 리액트를 처음 배우는 데 시간이 걸릴 수 있습니다.
  2. 빠른 변화: 리액트와 관련된 도구와 라이브러리는 빠르게 변화합니다. 이를 따라가려면 지속적인 학습이 필요합니다.
  3. 구성 요소 관리: 대규모 애플리케이션에서는 컴포넌트의 상태 관리와 데이터 흐름을 관리하는 것이 복잡해질 수 있습니다. 이를 해결하기 위해 추가적인 상태 관리 라이브러리(예: Redux)를 사용해야 할 수도 있습니다.

리액트는 강력하고 유연한 라이브러리로, 다양한 웹 애플리케이션을 효과적으로 개발할 수 있는 도구입니다. 하지만 프로젝트의 요구사항에 맞는 올바른 도구를 선택하는 것이 중요합니다.

728x90
반응형

'React > React 이론' 카테고리의 다른 글

node_modules 없는 상황에서? 해결방법  (0) 2024.05.31