junsobi

매머드오더

매머드커피 매장 주문과 선불카드·선물 기능을 제공하는 고객용 앱입니다.

Fri Feb 06 2026

React
TypeScript
Vite
TanStack Query
Stackflow
Emotion
Storybook
매머드오더 앱 리뉴얼 소개 이미지
매머드오더의 리뉴얼 홈 화면
매머드오더의 주변 매장 검색 화면
매머드오더의 스탬프와 리워드 쿠폰 화면
매머드오더의 나만의 메뉴 등록 화면
매머드오더의 선불카드 충전 화면
매머드오더의 받은 선불카드 화면

프로젝트 요약

기간
2025.12–2026.02
소속과 역할
CirclePlatform · Frontend developer
담당 범위
리뉴얼에서 주문 내역·상세와 선불카드·선물함, 관련 공통 UI를 구현했습니다.
배경과 과제
주문 이력의 여러 상태를 한눈에 보여줘야 했습니다. 선불카드는 조회부터 등록·충전·관리·선물까지 이어지는 화면을 기존 앱 구조에 맞춰 구현해야 했습니다.

기술 기여

병합 PR
17개주문 내역·선불카드·공통 UI
주문 상태 표시
4단계결제·준비·완료·픽업
주문 내역 조회
6개월무한 스크롤·로딩·빈 화면
Google Play 다운로드
50만+

설계와 구현

  • 최근 6개월의 주문 내역은 무한 스크롤로 불러옵니다. 최초 로딩과 추가 로딩, 빈 화면은 각각 나눠 처리했습니다.
  • 주문 상세에서는 결제·준비·완료·픽업 단계를 시각화했습니다. 취소 주문은 별도 화면으로 구분했습니다.
  • 선불카드의 충전·등록 상태는 Context와 훅으로 분리했습니다. 조회와 변경 작업은 React Query의 쿼리 키를 기준으로 관리했습니다.

적용 결과

  • 주문 목록과 상세 화면을 구현하고 결제·제조·픽업·취소 상태에 맞는 정보를 보여줬습니다.
  • 선불카드 조회와 이용내역, 바코드, 등록·충전, 이름 변경, 삭제, 잔액 이전을 구현했습니다.
  • 선물함의 목록·상세·등록 기능과 Headless Carousel, Tabs Badge, Skeleton 같은 공통 UI를 개발했습니다.

관련 링크

매머드오더 전체가 아니라 리뉴얼에서 직접 맡은 주문 내역·상세와 선불카드·선물함을 소개합니다.

주문 내역과 상세

최근 6개월의 주문 내역을 무한 스크롤로 불러옵니다. 최초 로딩과 다음 페이지 로딩, 내역이 없는 상태는 각각 나눴습니다. 주문 카드와 스켈레톤의 크기를 맞춰 데이터를 불러오는 동안 화면이 크게 흔들리지 않도록 했습니다.

주문 상세에서는 결제·준비·완료·픽업 단계가 한눈에 보이도록 구성했습니다. 취소 주문은 별도 화면으로 구분했습니다. 결제 금액과 할인, 선불카드 사용액, 스탬프 적립 여부는 주문 정보에 따라 필요한 항목만 보여줬습니다.

선불카드 관리

보유 카드와 이용내역 조회부터 바코드, 등록, 충전, 이름 변경, 삭제, 잔액 이전까지 구현했습니다. 이용내역은 전체·차감·충전으로 구분했습니다. 6개월 이내의 충전 건은 취소할 수 있도록 구성했습니다.

충전과 등록은 여러 화면을 오가는 작업이라 필요한 상태를 Context와 훅으로 분리했습니다. 카드 정보가 바뀐 뒤에는 React Query의 쿼리 키를 기준으로 관련 데이터를 다시 불러오도록 정리했습니다.

선물함과 공통 UI

선불카드 선물함에는 최근 1년의 목록과 무한 스크롤, 빈 화면, 스켈레톤을 적용했습니다. 상세 화면에서는 카드 정보와 바코드, 메시지, 유의사항을 확인합니다. 받은 카드는 바로 등록할 수 있습니다.

선물 개수는 Tabs Badge로 표시했습니다. 선불카드 목록의 Carousel은 Compound Component 형태로 만들었습니다. 스크롤 스냅, 인디케이터, 커스텀 도트를 조합할 수 있으며, 각 사용 예시는 Storybook에 정리했습니다.