본문 바로가기

IT

[React] 배워보자 React

반응형

소개

React란?

React는 페이스북에서 개발한 JavaScript 라이브러리입니다. 사용자 인터페이스(UI)를 구축하기 위해 사용되며, 가볍고 성능이 우수하여 많은 개발자들이 선호하는 선택지입니다.

React의 장점

  • 가독성: JSX라는 특별한 문법을 사용하여 UI를 작성하므로 가독성이 좋습니다.
  • 재사용성: 컴포넌트라는 개념을 사용하여 UI를 모듈화하고 재사용할 수 있습니다.
  • 가상 DOM: 가상 DOM을 활용하여 효율적인 업데이트를 수행하여 성능을 향상시킵니다.
  • 커뮤니티: 활발한 개발자 커뮤니티와 다양한 오픈 소스 라이브러리가 존재하여 지속적인 지원과 확장성을 보장합니다.

기본 개념

컴포넌트

React에서 UI는 컴포넌트로 구성됩니다. 컴포넌트는 독립적인 모듈 단위로 UI 요소를 정의하는 것이며, 함수형 컴포넌트와 클래스형 컴포넌트 두 가지 형태로 작성할 수 있습니다.

가상 DOM

React는 가상 DOM(Virtual DOM)을 사용하여 실제 DOM과 동기화하여 업데이트 성능을 최적화합니다. 가상 DOM은 메모리에 존재하는 가벼운 복제본이며, 변경 사항을 비교하여 최소한의 DOM 조작만을 수행하여 효율적인 업데이트를 가능하게 합니다.

JSX

JSX는 JavaScript를 확장한 문법으로, React에서 UI를 작성하기 위해 사용됩니다. JSX는 HTML과 비슷한 구문을 가지고 있으며, JavaScript 표현식을 쉽게 삽입하여 동적인 UI를 구성할 수 있습니다.

상태(State)와 속성(Props)

상태(State)는 컴포넌트 내에서 관리되는 데이터입니다. 상태는 변경 가능하며, 컴포넌트의 업데이트에 따라 변할 수 있습니다. 속성(Props)은 부모 컴포넌트로부터 전달되는 읽기 전용 데이터입니다.

예제 코드

import React from 'react';

// 함수형 컴포넌트
const Greeting = () => {
  return <h1>Hello, React!</h1>;
};

// 클래스형 컴포넌트
class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0,
    };
  }

  incrementCount = () => {
    this.setState((prevState) => ({
      count: prevState.count + 1,
    }));
  };

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.incrementCount}>Increment</button>
      </div>
    );
  }
}

const App = () => {
  return (
    <div>
      <Greeting />
      <Counter />
    </div>
  );
};

export default App;

위 예제 코드는 함수형 컴포넌트와 클래스형 컴포넌트의 사용을 보여줍니다. 함수형 컴포넌트인 Greeting은 간단한 인사말을 렌더링하고, 클래스형 컴포넌트인 Counter는 버튼을 클릭하여 숫자를 증가시키는 카운터를 구현합니다. 이 두 가지 컴포넌트를 App 컴포넌트에서 사용하고 있습니다.

위 코드를 실행하면 React 애플리케이션이 실행되며, 화면에 "Hello, React!"과 카운터가 표시됩니다.

이와 같은 예제 코드를 통해 React의 기본 개념과 컴포넌트 작성 방법을 더 자세히 이해할 수 있습니다.

결론

React는 강력하고 유연한 JavaScript 라이브러리로, 사용자 인터페이스를 개발하기 위한 많은 기능과 도구를 제공합니다. 이 글에서는 React의 기본 개념과 장점, JSX 문법, 상태와 속성 관리 등을 소개했습니다. 예제 코드를 통해 실제로 React 컴포넌트를 작성하는 방법을 살펴보았습니다.

React를 처음 접하는 사람들을 위한 이 글을 통해 React를 배우고 익힐 수 있는 충분한 출발점이 되기를 바랍니다. 계속해서 공부하고 실제 프로젝트에 적용해보면서 React의 장점과 풍부한 생태계를 경험해보세요. React는 현대적인 웹 개발에서 필수적인 도구 중 하나이며, 지속적인 학습과 개발 노력을 통해 실력을 향상시킬 수 있습니다.

반응형