JJuiceCode

Project

Discovery Expedition 자체 쇼핑몰 전환 및 구축

F&F 웹플랫폼팀 FE지원 - SaaS 기반 서비스(카페24)를 자체 플랫폼으로 전환

  • React
  • Next.js
  • PagesRouter
  • TypeScript
  • Emotion
  • Redux
  • SWR
  • Axios
  • JWT
  • ContextAPI
  • CustomHook
discovery-expedition 메인 페이지

배포 링크

실제 서비스 환경으로 이동합니다.

POISITON

프로젝트 담당 영역 - ProductDetailPage (PDP)

  • 상품상세(PDP) 페이지의 핵심 컴포넌트와 상태 흐름을 설계 및 구현하여, 복잡한 상품 데이터 구조와 다양한 UI 요구사항을 안정적으로 처리했습니다.
  • Figma 기반 디자인을 반영한 반응형 UI를 구현하고, 사용자 인터랙션과 API 연동을 고려한 컴포넌트 아키텍처를 구축했습니다.
  1. 01

    상태관리 아키텍처 설계

    도메인·서버·액션 상태를 분리해 책임이 명확한 PDP 상태 구조를 설계

  2. 02

    Slot 기반 레이아웃 시스템 구축

    반응형 환경에 대응하는 모듈형 레이아웃 구조로 확장 가능한 UI를 구현

  3. 03

    구매 전환 중심 인터랙션 구현

    옵션 선택부터 구매까지 이어지는 흐름을 설계하고, 전환 중심 인터랙션을 구현

Technical deep-dive

기술 상세

영역을 선택하면 사용한 기술과 구체적인 구현·협업 내용을 확인할 수 있습니다.

Tech stack

  • React Hooks
  • React Context
  • Redux Toolkit
  • SWR
  • React Hook Form

Implementation & history

  • 상품상세 진입 시 페이지 단위 상태 컨테이너를 구성하여, 여러 컴포넌트가 공통 상태를 공유하도록 설계했습니다.
  • 상품 옵션 선택, 수량, 구매 타입 등 구매 흐름에 영향을 주는 상태를 별도 계층으로 관리하여 여러 UI 영역에서 일관되게 사용하도록 했습니다.
  • 상품 상세 메인 영역에서는 모달, 드로어, 스티키 UI, CTA 노출 등 다양한 UI 상태를 통합적으로 제어했습니다.
  • 장바구니/구매 관련 액션은 전역 상태 관리 계층에서 처리하고, 조회성 데이터는 캐싱 기반으로 필요한 컴포넌트에서 직접 가져오도록 분리했습니다.
  • 옵션 선택 상태가 여러 컴포넌트에 걸쳐 필요해지면서 props 기반 구조의 한계를 경험했고, 페이지 범위의 상태 공유 구조로 개선했습니다.
  • 백엔드 API 구조에 맞춰 주문 파라미터를 구성하고, 구매 정책(혼합 구매 제한, 로그인 복귀 등)을 상태 흐름에 반영했습니다.

Tech stack

  • MUI
  • CSS-in-js
  • ResizeObserver
  • useMediaQuery
  • Swiper

Implementation & history

  • 디바이스에 따라 레이아웃 구성이 달라지는 요구사항을 설정 기반으로 분리하여 관리했습니다.
  • MUI 컴포넌트를 활용해 모듈화된 레이아웃 시스템을 구축했습니다. 반응형 환경에 따라 자동으로 크기와 레이아웃을 조정하도록 useMediaQuery를 활용했습니다.
  • ResizeObserver를 사용해 뷰포트 크기 변화에 따라 동적으로 UI를 조정하고, CSS-in-js로 스타일을 동적으로 생성하여 유지보수성을 높였습니다.
  • CTA, 모달, 드로어 등 인터랙션 UI를 레이아웃 본문과 분리하여 구조를 단순화했습니다.
  • 화면 크기 및 요소 위치 정보를 기반으로 UI 배치를 동적으로 계산하는 로직을 구성했습니다.

Tech stack

  • ScrollAPI
  • Modal/Drawer UI
  • Storage API
  • Error Handling

Implementation & history

  • ScrollAPI를 사용해 스크롤 위치와 뷰포트 변화에 따라 동적으로 UI를 조정하고, 스크롤 위치를 저장하여 페이지 이동 시 유지되도록 했습니다.
  • Modal/Drawer UI를 구현하여 옵션 선택, 구매 타입 변경, 장바구니 뷰 등 다양한 인터랙션 UI를 구현했습니다.
  • Storage API를 사용해 옵션 선택 상태를 브라우저에 저장하여 페이지 새로고침 시 유지되도록 했습니다.
  • 모바일과 데스크톱 환경에 따라 다른 구매 진입 방식을 제공하고, 스크롤 상태에 따라 CTA 노출을 동적으로 제어했습니다.