← 포트폴리오 목록

포근펫 정기배송 운영 관리 콘솔

쇼핑몰 MVP 이후 필요한 정기배송 회차 관리, 결제 실패 재처리, 맞춤 태그 검수, 직무별 권한과 변경 이력, 처리 현황 대시보드를 담은 관리자 콘솔을 구현하는 확장 프로젝트입니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종데이터 분석
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaRedisBull Queue
주요 기능
  • 처리 현황 대시보드
  • 정기배송 회차·결제 실패 재처리
  • 맞춤 태그 검수
  • 직무 권한·변경 이력

프로젝트 개요

범위: 개발, 디자인, 기획

쇼핑몰 MVP 이후 필요한 정기배송 회차 관리, 결제 실패 재처리, 맞춤 태그 검수, 직무별 권한과 변경 이력, 처리 현황 대시보드를 담은 관리자 콘솔을 구현하는 확장 프로젝트입니다. MVP와 같은 스택에 Redis와 작업 큐를 더해 설계합니다.

작업 범위

  • 처리 현황 대시보드: 처리 대기 주문, 정기배송 예정 건, 결제 실패 건을 한 화면에서 확인하고 해당 목록으로 바로 이동합니다
  • 정기배송 회차·결제 실패 재처리: 정기배송 회차별 상태를 목록에서 고르면 우측에서 결제 시도 이력을 보고 재시도·건너뛰기·대체 상품 지정을 처리합니다
  • 맞춤 태그 검수: 표준 맞춤 해시태그 사전을 관리하고, 상품별 태그 누락·과다·오류를 검수 목록에서 바로 고칠 수 있습니다
  • 직무 권한·변경 이력: 최고 관리자·상품·주문·물류·고객센터·입양 심사 직무별 권한을 설정하고, 가격·할인·적립 변경 이력을 추적합니다

주요 업무

  • 처리 현황 대시보드 화면: 직무별 위젯 구성 + 집계 뷰 + 이벤트 지표 화면
  • 정기배송 회차·결제 실패 재처리 화면: 스케줄러 + 빌링 키 결제 + 재시도 큐 + 중복 실행 방지
  • 맞춤 태그 검수 화면: 태그 사전 관리 + 검수 규칙 + 일괄 수정
  • 직무 권한·변경 이력 화면: 직무 권한 매트릭스 + 서버 단위 권한 확인 + 변경 이력 기록
포근펫 정기배송 운영 관리 콘솔
요구사항 정의

프로젝트 핵심 과제

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

스케줄러가 재시작되거나 중복 실행될 때 같은 회차가 두 번 결제되지 않

멱등 키와 락을 함께 설계해야 합니다

결제 실패 사유별로 재시도 가능 여부가 달라 상태 전이 규칙과 수동 재처리 경계를 명확히 정의해야 합니다

태그 사전을 바꿀 때 연결된 상품 수가 많아도 검수 목록이 일관되게 갱신되는 일괄 반영 구조가 필요합니다

직무별 권한이 화면·API·응답 필드 세 층에서 어긋나지 않

권한 정의를 한 곳에서 관리하는 구조가 필요합니다

구현 내용

핵심 기능 상세

핵심 기능 1

처리 현황 대시보드

처리 대기 주문, 정기배송 예정 건, 결제 실패 건을 한 화면에서 확인하고 해당 목록으로 바로 이동합니다. 직무별 위젯 구성 + 집계 뷰 + 이벤트 지표 화면.

  • PostgreSQL Materialized View로 처리 대기·예정·실패 건수를 집계하고 주기 갱신 구조 설계
  • 로그인한 직무에 따라 노출 위젯을 서버에서 결정하는 대시보드 구성 API 구현
  • GA4 이벤트 명세를 정의하고 프로필 등록·초대 가입 같은 지표를 조회하는 화면 구현

직무별로 보이는 위젯을 서버 단위로 결정해 권한이 없는 지표가 응답에 포함되지 않도록 설계합니다.

처리 현황 대시보드
처리 현황 대시보드 실제 화면
핵심 기능 2

정기배송 회차·결제 실패 재처리

정기배송 회차별 상태를 목록에서 고르면 우측에서 결제 시도 이력을 보고 재시도·건너뛰기·대체 상품 지정을 처리합니다. 스케줄러 + 빌링 키 결제 + 재시도 큐 + 중복 실행 방지.

  • Bull Queue와 Redis 락으로 회차별 자동 결제 작업을 한 번만 실행하는 중복 방지 구조 구현
  • 결제 실패 사유별 재시도 간격 정책을 설정 테이블로 분리하고 최대 시도 횟수 초과 시 수동 재처리 큐로 이동
  • 일시정지·재개·해지·회차 건너뛰기 상태 전이를 상태 머신 모듈로 정의

회차 단위 멱등 키로 결제 요청을 보내 같은 회차가 두 번 청구되지 않도록 하고, 모든 상태 변경을 이력 테이블에 남기도록 설계합니다.

정기배송 회차·결제 실패 재처리
정기배송 회차·결제 실패 재처리 실제 화면
핵심 기능 3

맞춤 태그 검수

표준 맞춤 해시태그 사전을 관리하고, 상품별 태그 누락·과다·오류를 검수 목록에서 바로 고칠 수 있습니다. 태그 사전 관리 + 검수 규칙 + 일괄 수정.

  • 표준 태그 사전과 상품 태그 연결 테이블을 분리해 사전 변경이 상품에 일괄 반영되는 구조 설계
  • 누락·과다·오류 검수 규칙을 규칙 객체로 정의하고 상품 목록에 대해 일괄 평가하는 검수 모듈 구현
  • 엑셀 일괄 업로드 시 행 단위 검증 결과를 반환하는 업로드 API 구현

검수 규칙을 코드와 분리된 설정으로 두어 규칙 추가 시 화면 수정 없이 검수 목록에 반영되도록 설계합니다.

맞춤 태그 검수
맞춤 태그 검수 실제 화면
핵심 기능 4

직무 권한·변경 이력

최고 관리자·상품·주문·물류·고객센터·입양 심사 직무별 권한을 설정하고, 가격·할인·적립 변경 이력을 추적합니다. 직무 권한 매트릭스 + 서버 단위 권한 확인 + 변경 이력 기록.

  • 직무×기능 권한 매트릭스를 DB로 관리하고 Express 미들웨어에서 요청마다 서버 단위로 확인
  • Prisma 미들웨어로 가격·할인·적립 변경 전후 값을 이력 테이블에 자동 기록
  • 이력 목록에 변경자·시각·항목 필터를 제공하는 감사 로그 조회 API 구현

화면에서 메뉴를 숨기는 데서 끝나지 않고 API 단계에서 직무 권한을 확인하며, 변경 이력은 수정·삭제할 수 없는 추가 전용 구조로 설계합니다.

직무 권한·변경 이력
직무 권한·변경 이력 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

직무 권한 모델·이력 구조 설계 · 2026.10

직무×기능 권한 매트릭스와 추가 전용 변경 이력 테이블을 Prisma로 설계합니다

STEP 2

회차 스케줄러·재시도 큐 구현 · 2026.10

Bull Queue와 Redis 락 기반 회차 결제 작업, 실패 사유별 재시도 정책을 구현합니다

STEP 3

태그 사전·검수 모듈 개발 · 2026.10

표준 태그 사전, 검수 규칙 평가기, 일괄 업로드 검증 API를 구현합니다

STEP 4

마스터-디테일 콘솔 UI 구현 · 2026.10

목록 레일과 상세 패널 중심의 운영 화면, 직무별 대시보드 위젯을 구현합니다

개발 결과

회차 결제 중복 실행 방지 구조 설계회차별 멱등 키와 Redis 락으로 같은 회차의 결제 작업이 한 번만 실행되도록 Bull Queue 작업을 설계합니다
결제 실패 사유별 재처리 큐 구축실패 사유 분류와 재시도 간격 설정 테이블, 최대 횟수 초과 시 수동 처리 큐 이동 흐름을 구현합니다
서버 단위 직무 권한 체계 구현6개 직무 권한 매트릭스를 미들웨어에서 요청마다 확인하고 응답 필드도 직무별로 제한합니다
가격·할인·적립 변경 이력 자동 기록Prisma 미들웨어로 변경 전후 값을 추가 전용 이력 테이블에 기록하고 조회 API를 구현합니다

기술적 주안점

  • 직무별로 보이는 위젯을 서버 단위로 결정해 권한이 없는 지표가 응답에 포함되지 않도록 설계합니다
  • 회차 단위 멱등 키로 결제 요청을 보내 같은 회차가 두 번 청구되지 않도록 하고, 모든 상태 변경을 이력 테이블에 남기도록 설계합니다
  • 검수 규칙을 코드와 분리된 설정으로 두어 규칙 추가 시 화면 수정 없이 검수 목록에 반영되도록 설계합니다

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

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의