🐨CoalaCoding
Docs▾
JavaScriptReactHTML & CSSBackendAI & LLMDev ToolsCreative
B반1
👾숏츠
🙉B반2
게시판
🐨CoalaCoding

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

문서

  • JavaScript
  • React
  • HTML & CSS
  • Backend
  • AI & LLM
  • Dev Tools
  • Creative

커뮤니티

  • 게시판
  • 예제 모음

기타

  • 관리자

정책

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

24. 컴포넌트-전략

리액트의 컴포넌트 전략

리액트 컴포넌트 전략은 재사용성, 유지보수성, 성능을 극대화하여 효율적으로 애플리케이션을 구축하기 위한 다양한 설계 원칙과 패턴을 의미합니다. 다음은 대표적인 리액트 컴포넌트 전략입니다. 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 같은 전역 상태 관리 라이브러리를 사용합니다.

목차

  • 리액트의 컴포넌트 전략