← 포트폴리오 목록

여행 숏폼 콘텐츠·장소 운영 백오피스

MVP 이후 확장으로 신고·콘텐츠 검수, 숏폼 생성 큐와 템플릿 관리, 장소·가격정보 관리, 회원 상태 관리를 하나의 관리 콘솔로 통합하는 확장 프로젝트입니다.

프로젝트 납품 요약

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

서비스 타입Web
업종플랫폼
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaRedisBull Queue
주요 기능
  • 신고·콘텐츠 검수
  • 숏폼 생성 큐·템플릿
  • 장소·가격정보 관리
  • 회원 관리

프로젝트 개요

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

MVP 이후 확장으로 신고·콘텐츠 검수, 숏폼 생성 큐와 템플릿 관리, 장소·가격정보 관리, 회원 상태 관리를 하나의 관리 콘솔로 통합하는 확장 프로젝트입니다. P1과 동일한 Node.js + Prisma 기반에 Redis와 Bull Queue를 더해 영상 생성과 알림 발송을 비동기로 구성합니다.

작업 범위

  • 신고·콘텐츠 검수: 신고 목록에서 항목을 선택하면 영상·사진·리뷰 원문과 신고 사유, 처리 이력이 우측 패널에 표시되고 삭제·비공개·반려를 처리합니다
  • 숏폼 생성 큐·템플릿: 자동 숏폼 생성 작업의 대기·합성·완료·실패 상태를 조회하고, 실패 작업 재처리와 고정 템플릿 활성·비활성을 관리합니다
  • 장소·가격정보 관리: 장소 등록·수정·비공개 처리와 메뉴·가격정보, 실제 이용정보 목록을 조회하고 수정·삭제합니다
  • 회원 관리: 회원 목록을 검색해 가입 경로와 콘텐츠 업로드 이력, 신고 이력을 확인하고 활동 정지·해제 같은 상태를 관리합니다

주요 업무

  • 신고·콘텐츠 검수 화면: 리스트-상세 구조의 검수 화면과 상태 전이 이력을 구현합니다
  • 숏폼 생성 큐·템플릿 화면: Bull Queue 작업 모니터링 테이블과 템플릿 설정 패널을 구현합니다
  • 장소·가격정보 관리 화면: 장소 편집 폼과 메뉴가·실결제가 목록, 변경 이력을 구현합니다
  • 회원 관리 화면: 회원 검색과 상세 패널, 상태 변경 이력을 구현합니다
여행 숏폼 콘텐츠·장소 운영 백오피스
요구사항 정의

프로젝트 핵심 과제

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

신고 콘텐츠의 삭제와 비공개 처리가 피드 캐시와 어긋나지 않

캐시 무효화 시점과 트랜잭션 경계 설계 필요

영상 생성 작업이 몰릴 때 대기열 적체를 구분해 보여주는 큐 상태 집계와 동시 처리 수 제한 정책 설계

메뉴가와 실결제가 수정 이력이 쌓이므로 변경 이력 조회 인덱스와 보관 정책 설계

회원 개인정보와 콘텐츠 원문 열람 범위를 관리자 권한별로 제한하고 열람 이력을 남기는 구조 설계

구현 내용

핵심 기능 상세

핵심 기능 1

신고·콘텐츠 검수

신고 목록에서 항목을 선택하면 영상·사진·리뷰 원문과 신고 사유, 처리 이력이 우측 패널에 표시되고 삭제·비공개·반려를 처리합니다. 리스트-상세 구조의 검수 화면과 상태 전이 이력을 구현합니다.

  • 신고 상태 전이(접수·검수 중·비공개·삭제·반려)를 Prisma 트랜잭션과 처리 이력 테이블로 기록
  • 동일 콘텐츠의 중복 신고를 묶어 신고 건수 순으로 정렬하는 집계 쿼리
  • 콘텐츠 비공개 처리 시 Redis 캐시를 무효화해 피드 노출 상태에 반영

신고 묶음 집계와 상태 전이 이력을 한 패널에 결합해, 검수 판단 근거가 이력으로 남는 콘텐츠 관리 구조를 구현합니다.

신고·콘텐츠 검수
신고·콘텐츠 검수 실제 화면
핵심 기능 2

숏폼 생성 큐·템플릿

자동 숏폼 생성 작업의 대기·합성·완료·실패 상태를 조회하고, 실패 작업 재처리와 고정 템플릿 활성·비활성을 관리합니다. Bull Queue 작업 모니터링 테이블과 템플릿 설정 패널을 구현합니다.

  • Bull Queue 작업 상태를 API로 노출해 대기·진행·실패 건을 실시간 갱신
  • 실패 원인 코드(소스 손상·인코딩 오류·시간 초과)별 분류와 지수 백오프 재시도 정책
  • 템플릿 메타(전환 효과·오버레이 위치)를 JSON 설정으로 저장하고 활성 템플릿을 전환

작업 큐 상태와 템플릿 설정을 한 화면에 결합해, 어떤 생성 작업이 왜 실패했고 어떤 템플릿으로 재처리되는지 추적할 수 있는 운영 구조를 설계합니다.

숏폼 생성 큐·템플릿
숏폼 생성 큐·템플릿 실제 화면
핵심 기능 3

장소·가격정보 관리

장소 등록·수정·비공개 처리와 메뉴·가격정보, 실제 이용정보 목록을 조회하고 수정·삭제합니다. 장소 편집 폼과 메뉴가·실결제가 목록, 변경 이력을 구현합니다.

  • 장소 좌표 입력 시 지도 미리보기를 함께 표시하는 편집 폼
  • 메뉴가와 실결제가 목록의 인라인 수정과 변경 이력 기록
  • 장소 비공개 전환 시 연결된 콘텐츠의 노출 상태를 트랜잭션으로 함께 갱신

장소 상태와 연결 콘텐츠 노출을 하나의 트랜잭션으로 묶어, 비공개 처리 후에도 데이터 정합성이 유지되는 장소 관리를 구현합니다.

장소·가격정보 관리
장소·가격정보 관리 실제 화면
핵심 기능 4

회원 관리

회원 목록을 검색해 가입 경로와 콘텐츠 업로드 이력, 신고 이력을 확인하고 활동 정지·해제 같은 상태를 관리합니다. 회원 검색과 상세 패널, 상태 변경 이력을 구현합니다.

  • 복합 인덱스와 Prisma 동적 where 절로 이름·이메일·가입 경로 검색 조합 구현
  • 회원 상태 변경을 감사 로그 테이블에 기록하고 변경 주체를 함께 저장
  • 목록 화면에 서버 사이드 페이지네이션과 정렬 적용

검색 조건 조합과 상태 변경 감사 로그를 결합해, 누가 언제 회원 상태를 바꿨는지 추적할 수 있는 회원 관리 구조를 구현합니다.

회원 관리
회원 관리 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

검수 상태 모델 및 감사 로그 설계 · 2026.09

신고·콘텐츠·회원 상태 전이 모델과 처리 이력 테이블 설계

STEP 2

Bull Queue 생성 작업·알림 큐 구현 · 2026.09

숏폼 생성 작업 상태 API, 실패 원인 분류, 지수 백오프 재시도와 푸시 발송 큐 구현

STEP 3

검수·회원 관리 콘솔 개발 · 2026.09

리스트-상세 검수 화면, 회원 검색과 상태 관리 화면 구현

STEP 4

장소·가격정보 및 템플릿 관리 개발 · 2026.09

장소 편집 폼, 메뉴가·실결제가 목록, 템플릿 설정 패널 구현

개발 결과

신고 검수 상태 전이 감사 구조 구축접수·비공개·삭제·반려 전이를 Prisma 트랜잭션과 이력 테이블로 기록하고 중복 신고 집계와 결합
숏폼 생성 큐 운영 화면 설계Bull Queue 상태 API와 실패 원인 코드 분류, 지수 백오프 재처리를 관리 화면에 연결하는 구조 구현
장소 비공개 연동 노출 제어 구현장소 상태 변경과 연결 콘텐츠 노출을 단일 트랜잭션으로 갱신하고 Redis 캐시 무효화 적용
템플릿 설정 기반 합성 옵션 관리 설계전환 효과·오버레이 위치를 JSON 설정으로 저장하고 활성 템플릿 전환을 생성 작업에 반영

기술적 주안점

  • 신고 묶음 집계와 상태 전이 이력을 한 패널에 결합해, 검수 판단 근거가 이력으로 남는 콘텐츠 관리 구조를 구현합니다
  • 작업 큐 상태와 템플릿 설정을 한 화면에 결합해, 어떤 생성 작업이 왜 실패했고 어떤 템플릿으로 재처리되는지 추적할 수 있는 운영 구조를 설계합니다
  • 장소 상태와 연결 콘텐츠 노출을 하나의 트랜잭션으로 묶어, 비공개 처리 후에도 데이터 정합성이 유지되는 장소 관리를 구현합니다

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

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

프로젝트 문의