← 포트폴리오 목록

여행 숏폼 자동 생성 여행정보 앱

세로형 숏폼 피드, 영상·사진 업로드와 방문·가격정보 입력, FFmpeg 템플릿 합성 기반 자동 숏폼 생성, 지도 연동 장소 상세까지 이어지는 여행자 흐름을 구현하는 맞춤 MVP 프로젝트입니다.

프로젝트 납품 요약

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

서비스 타입Web
업종플랫폼
기술 스택
FlutterFirebaseReactTypeScriptNode.jsExpressPostgreSQLPrismaFFmpeg
주요 기능
  • 세로형 숏폼 피드
  • 업로드·방문정보 입력
  • 자동 숏폼 생성
  • 장소 상세·지도

프로젝트 개요

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

세로형 숏폼 피드, 영상·사진 업로드와 방문·가격정보 입력, FFmpeg 템플릿 합성 기반 자동 숏폼 생성, 지도 연동 장소 상세까지 이어지는 여행자 흐름을 구현하는 맞춤 MVP 프로젝트입니다. 모바일 화면은 웹 데모로 구현하며, Flutter 클라이언트와 Firebase 인증·푸시 연동 구조를 함께 설계합니다.

작업 범위

  • 세로형 숏폼 피드: 최신·추천·지역별 탭으로 여행 숏폼을 세로 스와이프로 넘겨 보고, 장소명·가격·평점·방문일·한줄 리뷰가 영상 위에 오버레이로 표시됩니다
  • 업로드·방문정보 입력: 영상 1개와 사진 여러 장을 순서대로 선택하고, 장소·방문일·인원·카테고리와 메뉴별 가격, 실제 결제금액, 별점과 한줄 리뷰를 단계별로 입력합니다
  • 자동 숏폼 생성: 업로드가 끝나면 영상과 사진을 고정 템플릿에 합성해 오버레이와 전환 효과가 들어간 15~20초 9:16 숏폼을 자동으로 만들고, 진행 단계를 화면에서 확인합니다
  • 장소 상세·지도: 장소 기본정보와 지도 위치, 메뉴·가격정보와 실제 이용정보, 관련 숏폼 목록, 장소별 평점·리뷰를 한 화면에서 확인하고 My Trip에 저장합니다

주요 업무

  • 세로형 숏폼 피드 화면: 세로 스냅 스크롤 플레이어와 정보 오버레이, 탭별 동적 정렬 피드를 구현합니다
  • 업로드·방문정보 입력 화면: 다단계 스텝퍼 폼과 사진 순서 지정, 메뉴가·실결제가 분리 입력을 구현합니다
  • 자동 숏폼 생성 화면: FFmpeg 작업 큐, 템플릿 합성 필터 그래프, 진행 상태 스트리밍을 구현합니다
  • 장소 상세·지도 화면: 지도 API 연동 위치 표시와 실결제 가격 통계, 관련 콘텐츠 목록을 구현합니다
여행 숏폼 자동 생성 여행정보 앱
요구사항 정의

프로젝트 핵심 과제

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

사용자 영상의 해상도·길이·회전 정보가 제각각이므로 합성 전 정규화 단계와 실패 시 재시도 구조를 설계할 계획입니다

Flutter 실기기의 영상 선택·재생 특성은 웹 데모로 대체할 수 없으므로 플랫폼 채널 분리 구조와 실기기 검증 항목을 명시할 계획입니다

장소 등록 방식이 확정되지 않았으므로 사용자 선택형과 관리자 등록형을 모두 수용하는 장소 모델을 우선 설계할 계획입니다

Apple 로그인은 발주사 계정과 실기기 검증이 전제이므로 인증 어댑터를 분리해 테스트 모드로 흐름을 먼저 검증할 계획입니다

구현 내용

핵심 기능 상세

핵심 기능 1

세로형 숏폼 피드

최신·추천·지역별 탭으로 여행 숏폼을 세로 스와이프로 넘겨 보고, 장소명·가격·평점·방문일·한줄 리뷰가 영상 위에 오버레이로 표시됩니다.

  • CSS scroll-snap과 Intersection Observer로 화면에 들어온 영상만 자동 재생하고 나머지는 일시정지
  • 커서 기반 페이지네이션으로 지역·카테고리 필터와 최신·추천 정렬을 하나의 쿼리로 통합
  • 다음 영상 프리로드 큐를 두어 스와이프 전환 시 재생 지연을 줄이는 구조 설계

화면 진입 영상만 재생하는 플레이어와 커서 페이지네이션을 결합해, 피드 길이와 무관하게 동일한 스와이프 흐름을 유지하는 피드 구조를 구현합니다.

세로형 숏폼 피드
세로형 숏폼 피드 실제 화면
핵심 기능 2

업로드·방문정보 입력

영상 1개와 사진 여러 장을 순서대로 선택하고, 장소·방문일·인원·카테고리와 메뉴별 가격, 실제 결제금액, 별점과 한줄 리뷰를 단계별로 입력합니다.

  • 스텝별 zod 스키마 검증과 React Hook Form 기반 단계 상태 유지
  • dnd-kit 드래그로 사진 순서를 지정하고 순서 값을 업로드 요청에 함께 전송
  • 메뉴가와 실결제가를 별도 테이블로 분리하는 Prisma 스키마와 입력 폼 매핑

메뉴가와 실결제가를 분리 저장하는 데이터 모델과 스텝퍼 폼을 연결해, 입력 단계에서부터 가격 정보의 출처가 구분되는 업로드 흐름을 설계합니다.

업로드·방문정보 입력
업로드·방문정보 입력 실제 화면
핵심 기능 3

자동 숏폼 생성

업로드가 끝나면 영상과 사진을 고정 템플릿에 합성해 오버레이와 전환 효과가 들어간 15~20초 9:16 숏폼을 자동으로 만들고, 진행 단계를 화면에서 확인합니다.

  • FFmpeg filter_complex로 영상·사진 클립 합성과 장소명·가격·평점 텍스트 오버레이, 전환 효과 구성
  • 클립 길이 합계에 맞춰 15~20초 범위로 트림과 재생 시간을 자동 조정하는 길이 계산 로직
  • 작업 진행 상태를 SSE로 전달해 대기·합성·인코딩·완료 단계를 실시간 표시

템플릿 필터 그래프와 길이 자동 조정 로직을 결합해, 입력 소재 구성이 달라도 동일한 9:16 규격의 숏폼 파일이 생성되는 합성 파이프라인을 설계합니다.

자동 숏폼 생성
자동 숏폼 생성 실제 화면
핵심 기능 4

장소 상세·지도

장소 기본정보와 지도 위치, 메뉴·가격정보와 실제 이용정보, 관련 숏폼 목록, 장소별 평점·리뷰를 한 화면에서 확인하고 My Trip에 저장합니다.

  • 지도 SDK 마커 표시와 장소 좌표 기반 주변 장소 조회 API 구현
  • 메뉴가와 사용자 실결제가를 나란히 보여주는 가격 비교 블록과 평균 집계 쿼리
  • 관심 장소 저장을 Optimistic UI로 반영하고 실패 시 롤백하는 My Trip 토글

메뉴가와 실결제가를 함께 집계해 보여주는 가격 블록과 지도 연동을 결합해, 여행자가 방문 전 실제 지출 수준을 확인하는 장소 상세를 구현합니다.

장소 상세·지도
장소 상세·지도 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

UGC 여행정보 모델링 및 가격 스키마 설계 · 2026.09

콘텐츠·장소·방문정보 ERD, 메뉴가와 실결제가 분리 테이블 설계

STEP 2

FFmpeg 숏폼 합성 파이프라인 구현 · 2026.09

고정 템플릿 필터 그래프, 오버레이, 15~20초 길이 조정, 9:16 인코딩 작업 구현

STEP 3

세로 피드 및 업로드 흐름 개발 · 2026.09

scroll-snap 피드 플레이어, 스텝퍼 업로드 폼, 사진 순서 지정 화면 구현

STEP 4

장소 상세·인증·통합 검증 · 2026.09

지도 연동 장소 상세, 소셜 로그인 흐름, 업로드부터 재생까지 E2E 시나리오 검증

개발 결과

FFmpeg 템플릿 합성 파이프라인 설계filter_complex 기반 클립 합성·오버레이·전환과 15~20초 자동 길이 조정, 9:16 인코딩 흐름 구현
메뉴가·실결제가 분리 가격 모델 구축두 가격을 별도 테이블로 분리하고 장소별 평균 집계 쿼리와 비교 블록으로 연결하는 구조 설계
세로 스냅 피드 플레이어 구현scroll-snap과 Intersection Observer로 자동 재생·일시정지, 다음 영상 프리로드 큐 적용
스텝퍼 업로드와 사진 순서 지정 설계zod 단계 검증과 dnd-kit 순서 지정, 생성 작업 SSE 진행 표시를 결합한 업로드 흐름 구현

기술적 주안점

  • 화면 진입 영상만 재생하는 플레이어와 커서 페이지네이션을 결합해, 피드 길이와 무관하게 동일한 스와이프 흐름을 유지하는 피드 구조를 구현합니다
  • 메뉴가와 실결제가를 분리 저장하는 데이터 모델과 스텝퍼 폼을 연결해, 입력 단계에서부터 가격 정보의 출처가 구분되는 업로드 흐름을 설계합니다
  • 템플릿 필터 그래프와 길이 자동 조정 로직을 결합해, 입력 소재 구성이 달라도 동일한 9:16 규격의 숏폼 파일이 생성되는 합성 파이프라인을 설계합니다

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

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

프로젝트 문의