피드로 돌아가기
My First React Project (Part 3): Reusable Components, Framer Motion Animation, and Key Lessons Learned
Dev.toDev.to
Frontend

Conditional Rendering과 Framer Motion을 통한 확장 가능 UI 설계

My First React Project (Part 3): Reusable Components, Framer Motion Animation, and Key Lessons Learned

Ayra Austine Baet2026년 6월 6일6beginner

Context

단순 UI 요소 단위의 재사용성을 넘어 페이지 전체 섹션의 구조적 유사성을 발견한 상황. 반복되는 Markup 작성으로 인한 코드 중복과 유지보수 효율 저하 문제를 해결하고자 함.

Technical Solution

  • Conditional Rendering을 적용한 Section 컴포넌트 설계로 Features와 Articles 섹션의 공통 구조 통합
  • backgroundColor, title, description을 Props로 추상화하여 섹션별 가변 데이터 처리
  • useState Hook과 onLoad 이벤트를 결합한 이미지 로딩 상태 기반의 CSS 클래스 동적 제어
  • Framer Motion의 variantsstaggerChildren 설정을 통한 선언적 Staggered Animation 구현
  • whileInView 속성과 viewport 옵션을 활용해 Intersection Observer API의 수동 구현 비용 제거
  • useReducedMotion 훅을 통한 OS 수준의 reduced-motion 설정 반영으로 접근성 최적화

- UI 섹션 간 구조적 유사성 분석을 통한 고차원 Component 추상화 검토 - 단순 CSS Animation 대신 이미지 로딩 시점과 연동된 상태 기반 애니메이션 트리거 적용 - 복잡한 Scroll-spy 로직 대신 Framer Motion과 같은 선언적 라이브러리의 `whileInView` 활용 고려 - `prefers-reduced-motion` 미디어 쿼리를 고려한 애니메이션 예외 처리 설계

원문 읽기