기능 구현 내용
💡 로그인 / 회원가입 구현
Firebase Authentication를 통해 이메일 인증 회원가입 기능 구현, 구글 소셜 로그인 구현
Context API와 Firebase 인증 정보 리스너를 이용해 사용자 정보 전역 상태 관리
전자인증 가이드라인에 따른 유효성 검사 구현
input value 상태 값 관리의 복잡도를 줄이고자 react-hook-form 도입, register로 데이터를 관리함으로써 가독성을 향상시킴
💡 판매 상품 CRUD 구현
판매자 계정만 접근할 수 있는 상품 관리 페이지에서 상품 CRUD 기능 구현
등록 시 상품 정보는 Firestore, 이미지는 Cloud Storage에 저장하여 최적화된 데이터 관리
판매자별 등록 상품 조회 페이지네이션을 위해 useInfiniteQuery로 무한 스크롤 구현
💡 장바구니 CRUD 구현
윈도우 우측의 슬라이딩 드로어 형태로 장바구니 구현
장바구니 DB 변화에 따라 내비게이션 바의 수량 표시와 장바구니 아이템 내용의 즉각적인 UI 반응을 제공하고자 useMutation을 활용한 Optimistic Update 구현
💡 구매 및 결제 기능 구현
아임포트(포트원) 결제 SDK을 연동해 가상 결제를 진행
장바구니에서 선택된 상품과 수량 정보를 로컬 스토리지로 관리한 후 구매 과정에 사용
안전한 재고 관리 트랜잭션을 위해 임시 재고 DB를 추가로 구축하여 저장해두었다가 복구하는 방식 채택
상품 내역의 바로 구매 버튼으로 접근하여 단독 상품 주문 기능 구현
주문서 정보를 받는 Modal 컴포넌트에 Compound component 패턴을 적용하여 재사용성을 높이고 편리하게 사용할 수 있도록 구현함
💡 E2E 테스트 코드 작성
커머스 서비스의 핵심인 구매 프로세스에 대한 유저 플로우 및 서비스 로직 테스트
Cypress 테스트 케이스를 구성하여, 코드 수정 시마다 기능들이 예상대로 작동하는지 확인하는 용도로 사용
💡 사이트 배포
AWS S3, CloudFront를 이용한 https 환경으로 배포
GitHub Actions를 이용해 빌드 및 캐시 무효화 등 배포 과정 자동화
Last updated