React에서 리스트(List)와 Key는 컴포넌트가 여러 개의 요소를 효율적으로 렌더링할 때 꼭 필요한 개념입니다. 배열 데이터를 화면에 표시하거나 동적으로 업데이트하는 경우 리스트를 사용하며, 각 항목에는 고유한 key
값을 지정해야 합니다.
이번 글에서는 React에서 리스트를 다루는 방법과 Key의 역할 및 중요성을 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.
주요 키워드: React 리스트, 배열 렌더링, 동적 리스트, Key의 중요성, React map 함수
1. React에서 리스트(List)란?
리스트(List)는 여러 개의 데이터를 배열(Array) 형태로 저장하고, 이를 화면에 나열하는 구조입니다.
예를 들어, 쇼핑몰에서 상품 목록을 표시하거나, 댓글 목록을 출력할 때 리스트가 사용됩니다.
JSX에서는 map()
함수를 이용하여 배열 데이터를 리스트로 변환할 수 있습니다.
설명:
fruits
배열을map()
함수로 반복하여<li>
요소를 생성합니다.- 각 요소에
key
속성을 부여하여 React가 개별 항목을 구별할 수 있도록 합니다.
리스트 렌더링을 위해
map()
함수 사용이 필수적입니다.
2. 배열을 활용한 동적 리스트 렌더링
동적 리스트는 사용자가 입력한 데이터를 기반으로 실시간으로 변경됩니다.
예제: 사용자 입력을 받아 리스트 추가하기
설명:
useState
를 사용하여 할 일 목록(tasks
)을 관리합니다.- 사용자가 입력하면
setTasks([...tasks, input])
으로 새로운 항목을 추가합니다. map()
을 이용해tasks
배열을 리스트로 변환하고 화면에 표시합니다.
3. Key의 역할과 중요성
React에서 key
는 각 리스트 아이템을 고유하게 식별하는 역할을 합니다.
리스트가 변경될 때 React는 key
값을 기준으로 업데이트할 항목을 결정합니다.
예제: key
를 사용하지 않은 경우
경고 메시지:
Warning: Each child in a list should have a unique "key" prop.
위 코드에서는 key
속성이 없어 React가 리스트를 효율적으로 관리하지 못합니다.
올바른 key
사용법
하지만 index
를 key
로 사용하는 것은 최선의 방법이 아닙니다.
배열이 변경되면 React가 비효율적인 렌더링을 수행할 수 있기 때문입니다.
4. key
를 index
가 아닌 고유한 값으로 설정하기
React 공식 문서에서는 리스트의 key
로 고유한 ID 값을 사용하는 것이 좋다고 설명합니다.
아래 예제처럼 각 항목이 고유한 id
값을 가진다면 index
대신 id
를 key
로 설정하는 것이 좋습니다.
key
를 설정할 때 주의할 점
- 가능하면 고유한 ID 사용 (
id
, UUID 등) - 리스트가 자주 변경되는 경우
index
사용 지양 key
값이 변경되면 불필요한 리렌더링이 발생할 수 있음
5. 리스트와 Key를 활용한 실전 예제
예제: 고유한 ID를 가진 동적 리스트
설명:
- 각 항목이
id: Date.now()
를 가지므로 중복되지 않는key
를 설정할 수 있습니다. - 동적으로 리스트를 추가해도 React가 효율적으로 렌더링합니다.
6. 결론
React에서 리스트와 Key는 동적 데이터를 효율적으로 렌더링하기 위해 필수적인 개념입니다.
정리하면 다음과 같습니다.
map()
을 사용하여 리스트를 JSX로 변환
리스트의 각 항목에는 key
를 설정해야 함
가능하면 id
등 고유한 값을 key
로 사용
리스트 변경이 잦다면 index
를 key
로 사용하지 않기
React 프로젝트에서 올바른 리스트 렌더링과 Key 설정을 통해 최적화된 UI를 만들어 보세요!
댓글 없음:
댓글 쓰기