ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리액트에서 컴포넌트란? 개념부터 활용까지 완벽 정리
    Developer 2025. 2. 1. 09:00
    728x90

     

    리액트(React)는 컴포넌트(Component) 기반의 UI 라이브러리입니다. 즉, 리액트 애플리케이션은 여러 개의 컴포넌트로 구성되며, 각 컴포넌트는 독립적이고 재사용 가능한 UI 요소를 의미합니다. 이번 포스팅에서는 리액트 컴포넌트의 개념, 종류, 작성 방법, 그리고 실전 활용법에 대해 알아보겠습니다.


    1. 리액트 컴포넌트란?

    컴포넌트(Component)란 UI의 특정 부분을 담당하는 독립적인 모듈입니다. 각 컴포넌트는 HTML, CSS, JavaScript 로직을 포함할 수 있으며, 이를 조합하여 복잡한 UI를 구성합니다.

    💡 리액트 컴포넌트의 특징

    1. 재사용 가능: 한 번 작성한 컴포넌트를 여러 곳에서 사용할 수 있습니다.
    2. 독립적: 각각의 컴포넌트는 자체적인 상태와 속성을 가질 수 있습니다.
    3. 계층적 구조: 부모-자식 관계를 형성하여 UI를 계층적으로 구성할 수 있습니다.

    예를 들어, 웹 페이지에서 헤더(Header), 네비게이션(Nav), 버튼(Button) 등이 하나의 컴포넌트가 될 수 있습니다.


    2. 리액트 컴포넌트의 종류

    리액트에서는 함수형 컴포넌트(Function Component)클래스형 컴포넌트(Class Component) 두 가지 방식으로 컴포넌트를 정의할 수 있습니다.

    1) 함수형 컴포넌트 (Function Component)

    최근 리액트에서는 함수형 컴포넌트를 주로 사용합니다. 이는 더 간결한 문법을 제공하며, React Hooks와 함께 사용하여 상태와 생명주기를 관리할 수 있습니다.

    import React from 'react';
    
    function Greeting(props) {
      return <h1>안녕하세요, {props.name}님!</h1>;
    }
    
    export default Greeting;

    2) 클래스형 컴포넌트 (Class Component)

    과거에는 클래스형 컴포넌트가 주로 사용되었지만, 최근에는 함수형 컴포넌트와 Hooks가 선호됩니다.

    import React, { Component } from 'react';
    
    class Greeting extends Component {
      render() {
        return <h1>안녕하세요, {this.props.name}님!</h1>;
      }
    }
    
    export default Greeting;

    3. 컴포넌트의 주요 개념

    1) Props (속성)

    • 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 방식입니다.
    • 읽기 전용으로 변경할 수 없습니다.
    function UserInfo(props) {
      return <p>사용자 이름: {props.name}</p>;
    }
    
    <UserInfo name="홍길동" />

    2) State (상태)

    • 컴포넌트 내부에서 관리하는 데이터입니다.
    • useState Hook을 사용하여 상태를 변경할 수 있습니다.
    import React, { useState } from 'react';
    
    function Counter() {
      const [count, setCount] = useState(0);
    
      return (
        <div>
          <p>카운트: {count}</p>
          <button onClick={() => setCount(count + 1)}>+</button>
        </div>
      );
    }

    3) 이벤트 핸들링

    • 리액트에서 이벤트는 CamelCase로 작성되며, 함수로 처리합니다.
    function Button() {
      const handleClick = () => {
        alert('버튼 클릭됨!');
      };
    
      return <button onClick={handleClick}>클릭</button>;
    }

    4. 컴포넌트 활용 사례

    1) 재사용 가능한 버튼 컴포넌트

    function Button({ label, onClick }) {
      return <button onClick={onClick}>{label}</button>;
    }
    
    <Button label="확인" onClick={() => alert('확인 버튼 클릭!')} />

    2) 컴포넌트 조합하기

    function App() {
      return (
        <div>
          <Header />
          <MainContent />
          <Footer />
        </div>
      );
    }

    5. 리액트 컴포넌트의 장점

    재사용성: 동일한 UI 요소를 여러 곳에서 활용 가능

    유지보수 용이: 코드가 모듈화되어 수정이 쉬움

    성능 최적화: 필요할 때만 업데이트할 수 있음

    가독성 향상: 명확한 구조로 코드 이해가 쉬움


    6. 결론

    리액트 컴포넌트는 UI를 구성하는 핵심 요소로, 재사용성과 독립성이 뛰어난 구조를 제공합니다. 함수형 컴포넌트와 Hooks를 활용하면 더 간결하고 효율적인 코드를 작성할 수 있습니다. 컴포넌트를 잘 설계하면 유지보수와 성능 최적화에도 큰 도움이 됩니다.

    728x90
Designed by Tistory.