castad 프로젝트 : AI 마케팅 영상 제작 솔루션 프론트
Go to file
Haewon Kam 0ca2140b98 feat: 썰박스 DS 통일과 Poster to Video 통합, 진입 화면 네비게이션 개편
썰박스를 ADO2 디자인 시스템으로 맞추고, 포스터 파이프라인 두 종을 파이프라인
탭에 추가한다. 탭이 4개가 되면서 진입 화면 네비게이션도 함께 손봤다.

## 썰박스 DS 통일
시나리오별 팔레트(조선=파랑·삼국지=빨강·그리스=녹·오디세이=청)와 이모지, 앰버
강조색(--color-ssul-accent)을 걷어냈다. 선택 표시는 castad 표준 문법(민트 테두리
+ 민트 틴트), 스피너는 퍼플, CTA는 퍼플 단색으로 통일했다. 색으로 구분하던 것을
없앤 대신 상태(선택)만 색으로 남긴다.

## Poster to Video 통합 (내부 시연 범위)
- 무빙 포스터(F1): 업로드 → 분석 → **검수 게이트** → 생성 → 완성 5단계 위저드.
  검수에서 나레이션·모션·메타태그를 포스터와 대조해 고치고 승인해야 렌더가 이어진다.
- 포스터 스타일링(F2): 위저드가 아닌 한 화면 도구. 여러 스타일을 갈아 끼우며
  비교하는 작업이라 단계를 나누면 왕복만 늘어난다.

P2V 서버(:8010)를 castad 백엔드가 아니라 **직접 호출**한다. 검증된 scripts를
subprocess로 감싼 단일 워커라 castad 백엔드에 흡수하려면 실행 환경(Higgsfield
CLI·ffmpeg·모델 키)을 통째로 이식해야 하기 때문이다. 호출은 utils/p2vApi.ts 한
파일에 격리했다 — 대외 공개 시 castad 백엔드에 /p2v/* 프록시를 세우고 카카오 인증·
크레딧 차감을 얹을 때 갈아끼울 지점이 여기 하나다.

인증은 단일 팀 키(P2V_ACCESS_KEY)다. 다른 오리진이라 쿠키가 실리지 않아 정적
산출물(영상·이미지·다운로드)은 p2vFile()이 ?key= 로 태운다.

F2는 영화 포스터 레퍼런스가 저작권 자산이라 **결과물의 외부 공개·상업 사용을
금한다**(퍼블릭 도메인 명화 제외). 화면 상단 고지 + 템플릿별 배포 등급 배지 +
내부 전용을 고른 순간에만 뜨는 경고로 표시한다.

## 진입 화면 네비게이션
- 밑줄 탭 → 아이콘 타일 + 기능명. 탭이 4개가 되자 "무빙 포스터"와 "포스터 스타일링"이
  글자로는 갈라지지 않아, 형태로 구분되게 했다. 아이콘은 ADO2 Design System 규칙
  (24×24 · fill none · stroke currentColor 2 · round)을 따르고 색은 넣지 않는다.
- 고른 기능의 한 줄 설명을 탭 아래에 붙였다.
- 간격 체계를 8px 그리드로 다시 잡았다(묶음 안 8~12 / 묶음 사이 20 / 섹션 28~32).
  이전에는 전부 10~24px이라 근접성으로 구조가 읽히지 않아 답답했다. 타일 간격은
  터치 타겟 최소 8dp를 지킨다.

## 버그 수정
- 진입 화면 세로 넘침 잘림: justify-content:center + overflow:hidden 조합이라
  콘텐츠가 길어지면 위로 넘친 부분에 스크롤로도 닿을 수 없었다(무빙 포스터에서
  로고 밴드 47px 잘림). 자식의 margin:auto 0 중앙정렬로 바꿔 해소.
- 사라진 P2V 잡: 404를 문구가 아니라 상태 코드로 판정한다(P2vNotFoundError).
  서버에서 지워진 잡 ID가 남으면 빈 진행 화면에서 멈췄다.
- 검수 화면 모바일: 좌우 여백 0(부모 위저드 컨테이너에 패딩이 없다) → 16px 부여.
  대조할 포스터를 편집 위로 올리고, 승인 CTA를 하단 탭바 위에 sticky로 고정.
- 한글 단어 중간 줄바꿈("애니메이/션") → word-break: keep-all.
- 입력·안내·제출 박스 높이를 48px로 통일.

## 카피
가게→업체, 크롤링→수집으로 어휘 통일.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 12:55:06 +09:00
.claude 스케줄 페이지 작업 완료 . 2026-03-05 15:25:23 +09:00
public fix: 공통으로 공유하기 사용하도록 변경 2026-08-18 14:56:38 +09:00
src feat: 썰박스 DS 통일과 Poster to Video 통합, 진입 화면 네비게이션 개편 2026-08-20 12:55:06 +09:00
test 준비중 삭제 . 2026-03-06 12:01:18 +09:00
.gitignore chore: .env 파일 gitignore 추가 및 .env.example 추가 2025-12-23 11:08:31 +09:00
docker-compose.yaml castad front 작업 2025-12-23 11:01:31 +09:00
Dockerfile castad front 작업 2025-12-23 11:01:31 +09:00
index.html feat: 썰박스 DS 통일과 Poster to Video 통합, 진입 화면 네비게이션 개편 2026-08-20 12:55:06 +09:00
metadata.json castad front 작업 2025-12-23 11:01:31 +09:00
package-lock.json feat: 썰박스 DS 통일과 Poster to Video 통합, 진입 화면 네비게이션 개편 2026-08-20 12:55:06 +09:00
package.json feat(ssulbox): 썰박스 진입 탭·생성 플로우와 통합 콘텐츠 목록 분기 2026-08-11 14:57:33 +09:00
README.md feat: 썰박스 DS 통일과 Poster to Video 통합, 진입 화면 네비게이션 개편 2026-08-20 12:55:06 +09:00
tsconfig.json castad front 작업 2025-12-23 11:01:31 +09:00
vite.config.ts 브랜드 분석 페이지 수정중 . 2026-01-26 16:18:45 +09:00

CASTAD - Marketing Automation Frontend

마케팅 자동화를 위한 React 기반 프론트엔드 애플리케이션. CASTAD 프론트엔드 프로젝트 입니다.

기술 스택

  • React 19
  • TypeScript
  • Vite 6

처리 흐름

1. Landing Page
   └── URL 입력 → 비즈니스 분석 시작

2. Loading
   └── URL 크롤링 및 데이터 수집

3. Analysis Result
   └── 크롤링 결과 확인 (이미지, 비즈니스 정보)

4. Login
   └── 사용자 인증

5. Generation Flow (Dashboard)
   ├── 새 프로젝트 만들기
   ├── 비즈니스 설정
   ├── 에셋 관리
   ├── 사운드 스튜디오
   └── 콘텐츠 생성 완료

로컬 실행

# 의존성 설치
npm install

# recharts 설치 (대시보드용 차트 라이브러리)
npm install recharts

# 개발 서버 실행 (http://localhost:3000)
npm run dev

# 프로덕션 빌드
npm run build

# 빌드 미리보기
npm run preview

환경 변수

변수 기본값 설명
VITE_API_URL http://40.82.133.44 castad 백엔드 (ADO2·썰박스)
VITE_P2V_URL http://localhost:8010 Poster to Video 서버 (포스터 영상·스타일링)

포스터 파이프라인 (Poster to Video)

'포스터 영상'(F1)·'포스터 스타일'(F2) 탭은 castad 백엔드가 아니라 별도 P2V 서버를 직접 호출한다(src/utils/p2vApi.ts). 붙이려면 세 가지가 필요하다:

  1. P2V 서버 기동 — 저장소는 o2o-ado2-poster-to-video, 기본 포트 8010
  2. 서버의 P2V_ALLOWED_ORIGINS 에 이 프론트 오리진 추가 (예: http://localhost:3000)
  3. 첫 진입 시 화면에 뜨는 입력창에 서버의 P2V_ACCESS_KEY 입력 (브라우저에 저장된다)

인증이 단일 팀 키라 내부 시연 범위다. 대외 공개 시에는 castad 백엔드에 /p2v/* 프록시를 세워 카카오 인증·크레딧 차감을 얹고, 프론트는 p2vApi.ts 한 파일만 그쪽으로 돌리면 된다.

포스터 스타일링(F2)은 영화 포스터 레퍼런스가 저작권 자산이라 결과물의 외부 공개·상업 사용을 금한다(퍼블릭 도메인 명화 제외). 화면 상단과 템플릿 배지로 등급을 표시한다.

Docker 실행

# 이미지 빌드 및 컨테이너 실행
docker-compose up --build

# 백그라운드 실행
docker-compose up -d --build

# 컨테이너 중지
docker-compose down

접속 URL: http://localhost:3000