데브허브 | DEVHUB | Multi-Step Wizard - React Coding Interview QuestionMulti-Step Wizard - React Coding Interview Question
- React 다단계 마법사 구현: 이름, 국가 입력 및 검토 화면으로 구성된 3단계 마법사를 React로 구축하는 과정을 다룹니다. 🧙♂️
- 중앙 집중식 상태 관리:
Wizard 컴포넌트에서 useState를 사용하여 name과 country 데이터를 중앙에서 관리합니다. 🏛️
- 불변성(Immutable) 상태 업데이트:
updateField 헬퍼 함수를 통해 key와 value를 받아 기존 상태를 불변적으로 업데이트하여 코드 중복을 방지합니다. 🔄
- 데이터 영속성(Persistence): 사용자가 이전/다음 단계로 이동해도 입력된 이름과 국가 데이터가 유지되도록 상태를 관리합니다. 💾
- 조건부 렌더링 및 버튼 제어: 현재 단계에 따라 '뒤로' 및 '다음' 버튼의 활성화/비활성화 상태를 제어하고, 단계 표시기를 렌더링합니다. 🚦
- 국가 입력 필터링 로직:
useMemo를 활용하여 입력된 쿼리 문자열에 따라 countries.js 파일에서 최대 5개의 일치하는 국가를 실시간으로 필터링하여 보여줍니다. 🔍
- 제어 컴포넌트(Controlled Components): 모든 입력 필드를 React 상태와 연결하여 제어 컴포넌트로 구현하고,
onChange 이벤트를 통해 상태를 업데이트합니다. ✍️
- 테스트 ID 유지: 테스트 자동화를 위해
data-test-ID 속성을 수정하지 않고 유지하는 중요성을 강조합니다. 🏷️
- 핵심 React 개념 적용: 이 문제는 컴파운드 컴포넌트, 조건부 렌더링, 상태 관리, 불변성 업데이트,
useMemo 등 다양한 React 핵심 개념을 통합적으로 적용하는 좋은 예시입니다. ✨