React/컴포넌트/Lesson 03
컴포넌트 기초
30분·theory
이 챕터
1/4
JavaScript
컴포넌트 기초
💡 왜 배워야 할까요?
🎯
React의 가장 핵심 개념이며 모든 것의 기초입니다.
💼
큰 화면을 작은 부품으로 나누어 관리할 수 있습니다.
⚡
같은 UI를 여러 곳에서 재사용하여 개발 속도를 높입니다.
🏢 실무에서는
실무에서는 Header, Footer, Sidebar, ProductCard 같은 컴포넌트를 만들어 조립합니다. 예를 들어 쇼핑몰에서 상품 카드 컴포넌트를 한 번 만들면 수백 개의 상품 목록에서 재사용할 수 있습니다.
컴포넌트 — 레고 블록처럼 조립하는 UI
실생활 비유: 레고 블록
레고로 집을 만들 때 벽/창문/지붕 블록을 조립합니다.
React 컴포넌트도 Button/Card/Header처럼
작은 UI 조각을 조립해 화면을 만듭니다.
왜 배우나요?
- ▸재사용: 한 번 만든 Button을 수백 곳에서 사용
- ▸분리: 각 컴포넌트가 독립적 → 유지보수 쉬움
- ▸테스트: 작은 단위로 테스트 가능
컴포넌트 규칙
1. 이름은 반드시 대문자로 시작 (Button ✅, button ❌)
2. JSX를 반환해야 함
3. 하나의 루트 요소 반환 (또는 Fragment <> >)
함수형 컴포넌트 기본 형태
💡 💡 컴포넌트 설계 팁
- ▸작게 유지: 100줄 이하가 이상적
- ▸Props 타입: TypeScript interface 필수
- ▸기본값: default parameter 활용
- ▸합성 패턴: Card.Header 같은 서브 컴포넌트
이 개념은 React 컴포넌트 개발에서 핵심적입니다. 리액트의 선언적 UI 패러다임을 이해하고, props와 state의 차이를 명확히 구분하세요. 컴포넌트는 입력(props)에 대해 항상 동일한 출력(JSX)을 반환하는 순수 함수처럼 동작해야 합니다.
⚛️ React 패턴 — 컴포넌트 기초
컴포넌트 기초을 React에서 어떻게 쓰는지 코드와 함께 단계별로 익혀보세요.
1
🧩
1. 컴포넌트 정의
함수가 곧 컴포넌트
function Greeting({ name }) {
return <h1>안녕, {name}!</h1>;
}
↓
2
📤
2. Props 전달
부모 → 자식으로 데이터 단방향 흐름
<Greeting name="홍길동" />
↓
3
🔁
3. 재사용
같은 컴포넌트, 다른 props로 여러 번
<Greeting name="Alice" />
<Greeting name="Bob" />
↓
4
💡
4. 단방향 데이터 흐름
자식이 부모 state를 바꾸려면 콜백 함수를 props로 받음
🧩 컴포넌트 합성
코드를 직접 수정하면 0.7초 후 자동 반영됩니다. React 18 + Babel로 브라우저에서 즉시 실행.
🖥️ 실행 결과 — 렌더링된 React 컴포넌트
✏️ React 코드 수정하기 (클릭해서 열기)
⚛️ React 18 + Babel Standalone — 결과 먼저 확인 후 코드 편집기에서 직접 수정해볼 수 있습니다.
확인 퀴즈
React 컴포넌트 이름의 규칙은?