🐨CoalaCoding
DocsExamplesTry itBoardB반B반
🐨CoalaCoding

개발자를 위한 한국어 웹 기술 문서

문서

  • JavaScript
  • Web Publishing
  • React
  • Python

커뮤니티

  • 게시판
  • 예제 모음
  • Try it 에디터

기타

  • GitHub
  • 관리자
© 2026 CoalaCoding. All rights reserved.
  • React 학습 전 필수 JavaScript 문법
  • hook
  • React 소스 코드 수정, 배포 및 렌더링
  • 시작
  • JSX 문법과 컴포넌트
  • react-vite-설치
  • 이벤트 처리
  • 노코드리액트
  • Hook
  • csrssrreact-렌더링-참조글
  • useContext로 전역 상태 관리
  • 컴포넌트
  • CSS 리액트에 넣는 5가지 방법
  • 시작하기
  • Props (속성)
  • 2-scaffolding-react-project
  • React Router
  • props
  • React 개발 환경 이해
  • 3-웹문서-작성하기
  • 컴포넌트
  • map과컴포넌트
  • event
  • 4-리액트로-변경하기
  • 컴포넌트-데이터관리
  • composition
  • 앱제작-준비
  • 환경설정
  • 컴포넌트-전략
  • 리액트-네이버-로그인
  • 리액트교안
  1. 홈
  2. 문서
  3. React
  4. React 기초
  5. 컴포넌트-전략

컴포넌트-전략

코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.

구문

리액트의 컴포넌트 전략

리액트 컴포넌트 전략은 재사용성, 유지보수성, 성능을 극대화하여 효율적으로 애플리케이션을 구축하기 위한 다양한 설계 원칙과 패턴을 의미합니다. 다음은 대표적인 리액트 컴포넌트 전략입니다. 1. 컴포넌트 분리 원칙

  • 단일 책임 원칙(SRP, Single Responsibility Principle): 하나의 컴포넌트가 하나의 역할만 수행하도록 설계합니다. 예를 들어, 데이터 요청 로직과 UI 렌더링 로직을 분리하면 컴포넌트가 더 간결해지고 재사용성이 높아집니다.
  • 원자적 디자인(Atomic Design): UI를 원자(atoms), 분자(molecules), 유기체(organisms), 템플릿(templates), 페이지(pages)의 5단계로 나누어 계층적으로 컴포넌트를 설계합니다.
    • 원자(Atomic): 버튼, 입력창 등 더 이상 분해할 수 없는 가장 작은 단위.
    • 분자(Molecules): 원자를 조합하여 만든 검색창과 같은 단위.
    • 유기체(Organisms): 분자들을 조합하여 만든 헤더, 푸터와 같은 단위.
    • 템플릿(Templates): 유기체로 페이지의 레이아웃을 구성하는 단계.
    • 페이지(Pages): 실제 데이터가 적용된 최종 화면. 2. 컴포넌트 패턴
  • 컨테이너/프리젠테이셔널 패턴(Container/Presentational Pattern):
    • 프리젠테이셔널 컴포넌트: 데이터나 로직 없이 UI만 렌더링하는 역할.
    • 컨테이너 컴포넌트: 데이터 관리, 상태 로직 처리, API 호출 등을 담당하고, 프리젠테이셔널 컴포넌트에 props를 전달합니다.
  • 고차 컴포넌트(HOC, Higher-Order Component): 컴포넌트를 인수로 받아 새로운 컴포넌트를 반환하는 함수. 컴포넌트 간 로직을 재사용하는 데 유용하지만, 최신 React에서는 커스텀 훅이 더 선호됩니다.
  • 렌더 프롭스 패턴(Render Props Pattern): 자식 컴포넌트에게 props로 함수를 전달하여 로직을 공유하는 방식.
  • 컴파운드 컴포넌트 패턴(Compound Component Pattern): <Select>와 <Select.Option>처럼 함께 사용될 때 강력한 기능을 제공하는 컴포넌트 그룹을 만드는 패턴. Context API를 활용해 내부 상태를 공유합니다.
  • 커스텀 훅 패턴(Custom Hook Pattern): 여러 컴포넌트에서 재사용되는 로직을 use로 시작하는 함수로 분리하는 전략. 상태 관리, 비즈니스 로직 등 특정 기능을 추상화하여 코드의 재사용성을 높입니다. 3. 성능 최적화 전략
  • 렌더링 전략 선택:
    • 클라이언트 컴포넌트: 사용자와 상호작용이 필요한 동적 UI를 렌더링.
    • 리액트 서버 컴포넌트(RSC): 서버에서 미리 렌더링되어 클라이언트에 전송되는 컴포넌트. 자바스크립트 번들 크기를 줄여 초기 로딩 속도를 향상시킵니다.
  • 불필요한 리렌더링 방지:
    • React.memo: props가 변경되지 않으면 컴포넌트의 리렌더링을 건너뛰도록 합니다.
    • useMemo: 계산량이 많은 값의 결과를 메모이제이션하여 재계산을 방지합니다.
    • useCallback: 의존성이 변경되지 않으면 함수의 재생성을 방지하여 자식 컴포넌트의 불필요한 리렌더링을 막습니다.
  • 상태 끌어올리기(Lifting State Up): 여러 컴포넌트가 동일한 상태를 공유해야 할 때, 공통의 부모 컴포넌트로 상태를 이동시키는 전략.
  • 상태 관리: 컴포넌트 간 상태 공유가 복잡해질 경우, Context API 또는 Redux, Zustand 같은 전역 상태 관리 라이브러리를 사용합니다.

목차

  • 구문