Ch.11 React 입문 — 컴포넌트 사고방식

리스트 렌더링과 조건부 표시

map() 메서드로 배열 데이터를 리스트로 렌더링할 수 있다key props의 역할과 중요성을 이해한다삼항연산자, && 연산자, early return으로 조건부 렌더링을 구현할 수 있다

배열 데이터를 화면에 그리려면?

쇼핑몰 상품 목록, SNS 피드, 댓글 리스트 — 반복되는 데이터를 효율적으로 표시하는 방법

반복 UI를 일일이 작성하지 않으려면?

map()과 조건부 렌더링 — 데이터가 곧 UI가 되는 React의 선언적 방식입니다.


article

핵심 내용

배열의 각 요소를 JSX로 변환하면 리스트 완성!

const fruits = ["사과", "바나나", "포도", "딸기"];

function FruitList() {
  return (
    <ul>
      {fruits.map((fruit, index) => (
        <li key={index}>{fruit}</li>
      ))}
    </ul>
  );
}

// 결과:
// • 사과
// • 바나나
// • 포도
// • 딸기

map()의 핵심 패턴 `{배열.map(항목 => (<JSX key={고유값}>{항목}</JSX>))}` 배열의 각 요소를 JSX 요소로 변환하여 자동으로 리스트를 만듭니다. for문이 아닌 map() 을 쓰는 이유: JSX 안에서는 표현식만 가능하기 때문!

React에게 '이 요소가 어떤 것인지' 알려주는 신분증 = key

const products = [
  { id: 1, name: "노트북", price: 1200000 },
  { id: 2, name: "마우스", price: 35000 },
  { id: 3, name: "키보드", price: 89000 },
];

function ProductList() {
  return (
    <ul>
      {products.map(product => (
        // ✅ 고유한 id를 key로 사용
        <li key={product.id}>
          {product.name} — {product.price.toLocaleString()}원
        </li>
      ))}
    </ul>
  );
}

// ❌ index를 key로 쓰면 순서가 바뀔 때 문제!
// <li key={index}> → 삭제/정렬 시 버그 발생 가능

key를 써야 하는 이유 1. 성능: React가 변경된 요소만 찾아서 업데이트 (전체 다시 그리지 않음) 2. 정확성: 항목 삭제/추가/정렬 시 올바른 요소를 추적 3. 규칙: key는 형제 요소 사이에서 고유해야 함 ✅ 데이터의 id 사용 | ❌ 배열의 index 사용 (동적 리스트에서 위험)

조건에 따라 다른 UI를 보여주는 3가지 패턴을 알아봅시다

function StatusBadge({ isOnline }) {
  // 1️⃣ 삼항 연산자 — 둘 중 하나를 선택
  return (
    <span className={isOnline ? "online" : "offline"}>
      {isOnline ? "🟢 접속 중" : "⚫ 오프라인"}
    </span>
  );
}

function Notification({ count }) {
  // 2️⃣ && 연산자 — 조건이 true일 때만 표시
  return (
    <div>
      <h3>알림</h3>
      {count > 0 && (
        <span className="badge">{count}개의 새 알림</span>
      )}
    </div>
  );
}

function UserGreeting({ user }) {
  // 3️⃣ early return — 조건에 따라 완전히 다른 UI
  if (!user) {
    return <p>로그인해주세요.</p>;
  }

  return <h2>환영합니다, {user.name}님!</h2>;
}

React에서 배열을 리스트로 렌더링할 때 사용하는 메서드는?

리스트 렌더링에서 key는 배열의 index를 사용하는 것이 가장 안전하다

React에서 조건이 true일 때만 요소를 보여주려면 ___ 연산자를 사용한다

React 입문 완료!

key

핵심 용어

🔀

삼항 연산자

A ? B : C — 조건에 따라 A 또는 B 중 하나를 렌더링

&& 연산자

조건 && <JSX> — 조건이 true일 때만 렌더링 (false면 아무것도 표시 안 함)

↩️

early return

if (!조건) return <대체 UI>; — 조건에 따라 완전히 다른 컴포넌트 반환

edit_note

정리 노트

리스트 렌더링과 조건부 표시 정리

리스트 렌더링

map()
배열 데이터를 JSX 요소 배열로 변환하여 렌더링
key prop
각 리스트 아이템에 고유한 식별자 — React 성능 최적화의 핵심
key 규칙
안정적이고 고유한 값 사용 (인덱스는 비권장)

조건부 렌더링

삼항연산자
condition ? <A /> : <B /> — 두 가지 중 하나 표시
&& 연산자
condition && <A /> — 조건이 true일 때만 표시
early return
if (!data) return <Loading /> — 로딩 상태 처리

key는 React가 어떤 아이템이 변경됐는지 추적하는 '이름표'입니다.

check_circle

핵심 정리

  • 1map()으로 배열 데이터를 JSX 리스트로 변환
  • 2key = React가 각 요소를 식별하는 고유 값 (id 사용 권장)
  • 3조건부 렌더링: 삼항 연산자, && 연산자, early return
  • 4React 입문 완료! 다음은 상태 관리로 살아 움직이는 UI를 만들어봅시다

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작