← 포트폴리오 목록

쿠폰 발급·적용 통합 커머스 앱

기존 Flutter 앱의 소스코드를 인수한다는 전제로, 로그인/비로그인 연동과 쿠폰 발급·조회·적용, FCM 푸시 알림을 웹 환경의 반응형 데모로 재현합니다.

쿠폰 발급 원자성 트랜잭션 설계PostgreSQL 트랜잭션과 행 단위 잠금으로 쿠폰 발급 수량 제한을 처리해, 동시 요청에서도 초과 발급 없이 정합성을 유지하는 구조를 구현합니다.
로그인/게스트 통합 세션 설계JWT 액세스·리프레시 토큰과 게스트 임시 토큰을 분리 발급하고, 로그인 시 게스트 데이터를 자동 병합하는 세션 아키텍처를 구현합니다.
FCM 알림 재발송 큐 구축Firebase Cloud Messaging 발송 실패 건을 별도 재시도 큐로 순환시켜, 알림 유실을 최소화하는 큐 아키텍처를 설계합니다.
서비스 타입Web
업종이커머스
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaFirebase Cloud Messaging (FCM)Flutter (모바일 UI 레퍼런스)
주요 기능
  • 로그인·비로그인 통합 홈
  • 쿠폰 발급·조회·적용
  • 쿠폰 적용 주문 체크아웃
  • FCM 푸시 알림 센터
Overview

프로젝트 개요

범위: 개발, 디자인, 기획
기존 Flutter 앱의 소스코드를 인수한다는 전제로, 로그인/비로그인 연동과 쿠폰 발급·조회·적용, FCM 푸시 알림을 웹 환경의 반응형 데모로 재현합니다. 실제 모바일 앱의 화면 흐름과 톤앤매너를 유지하면서, 스토어 출시 전 최종 점검용 데모로도 함께 활용할 수 있도록 설계합니다.
쿠폰 발급·적용 통합 커머스 앱
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

쿠폰 동시 발급 요청 시 재고 초과가 발생하지 않

트랜잭션 격리 수준과 잠금 전략을 설계할 필요가 있습니다

로그인 이전 게스트 상태에서 담은 쿠폰과 장바구니를 로그인 후 정확히 병합하는 로직 설계가 필요합니다

FCM 토큰 만료·재발급 주기를 관리하지 않으면 알림 유실이 누적될 수

토큰 수명 관리 전략이 필요합니다

쿠폰 중복 적용과 최소 주문 금액 조건이 얽히는 체크아웃 검증 로직을 서버·클라이언트 양쪽에서 이중화할 필요가 있습니다

핵심 기능 1

로그인·비로그인 통합 홈

회원 로그인과 비회원 게스트 모드를 하나의 홈 화면에서 자연스럽게 전환할 수 있도록 구성합니다. 기존 Flutter 앱의 인증 플로우를 웹 환경에서 JWT 기반 세션과 게스트 토큰 발급 로직으로 재구성합니다
로그인·비로그인 통합 홈
핵심 기능 2

쿠폰 발급·조회·적용

사용자가 검색과 카테고리 필터로 쿠폰을 탐색하고, 발급 즉시 보관함에서 조회·적용할 수 있습니다
쿠폰 발급·조회·적용
핵심 기능 3

쿠폰 적용 주문 체크아웃

장바구니에 담긴 상품에 보유 쿠폰을 적용해 최종 결제 금액을 확인하고 주문을 완료합니다. 쿠폰 중복 적용 규칙과 최소 주문 금액 조건을 검증하는 체크아웃 로직을 구현합니다
쿠폰 적용 주문 체크아웃
핵심 기능 4

FCM 푸시 알림 센터

쿠폰 발급, 만료 임박, 주문 상태 변경 등을 실시간 푸시와 인앱 알림 목록으로 함께 제공합니다. Firebase Cloud Messaging 토큰 등록/갱신과 알림 이력 저장을 서버에서 통합 관리합니다
FCM 푸시 알림 센터
구현 과정

프로젝트 진행 단계

STEP 1

기존 코드 구조 분석 및 DB 스키마 설계

Flutter 앱 화면 흐름 분석, 쿠폰·주문·알림 테이블 12개 설계 및 관계 매핑

STEP 2

인증/쿠폰 API 개발

Express 기반 로그인·게스트 세션, 쿠폰 발급/적용 API 18개 엔드포인트 구현

STEP 3

쿠폰 갤러리 UI 및 체크아웃 화면 개발

React 기반 쿠폰 갤러리, 퀵뷰 drawer, 체크아웃 등 8개 화면 구현

STEP 4

FCM 알림 연동 및 통합 테스트

Firebase Cloud Messaging 연동, 알림 재발송 큐 구현, API 통합 테스트 32개 케이스 작성

프로젝트 성과
쿠폰 발급 원자성 트랜잭션 설계PostgreSQL 트랜잭션과 행 단위 잠금으로 쿠폰 발급 수량 제한을 처리해, 동시 요청에서도 초과 발급 없이 정합성을 유지하는 구조를 구현합니다.
로그인/게스트 통합 세션 설계JWT 액세스·리프레시 토큰과 게스트 임시 토큰을 분리 발급하고, 로그인 시 게스트 데이터를 자동 병합하는 세션 아키텍처를 구현합니다.
FCM 알림 재발송 큐 구축Firebase Cloud Messaging 발송 실패 건을 별도 재시도 큐로 순환시켜, 알림 유실을 최소화하는 큐 아키텍처를 설계합니다.
쿠폰 검색 필터 갤러리 UI 구현카테고리 chips와 검색어를 결합한 반응형 카드 그리드를 구현해, 화면 크기별로 3~5열 그리드를 자동 전환하는 레이아웃을 설계합니다.
Review

기술적 주안점

  • 로그인/비로그인 두 경로를 단일 상태 머신으로 관리해, 게스트로 담은 쿠폰함이 로그인 시 계정으로 자동 이관되는 구조를 설계합니다
  • 발급-조회-적용 3단계를 하나의 트랜잭션 경계 안에서 관리해, 동시 요청에도 초과 발급이 발생하지 않는 구조를 구현합니다
  • 쿠폰 적용부터 결제 요청까지 하나의 체크아웃 세션으로 묶어, 클라이언트와 서버 양쪽에서 금액을 이중 검증하는 구조를 설계합니다

유사한 프로젝트를 기획하고 계신가요?

FIRSTPIP이 개발 범위와 로드맵을 함께 정리해드립니다

무료 상담 시작하기