# 배포 준비와 UUP 전달

> 기준일: 2026-09-19
> 대상: 완성 영상을 SNS 게시 흐름으로 넘기는 회원, AI 상담 및 도움말 작성자

## KB-PUB-001 · Selvi와 UUP의 역할

**Selvi는 영상을 만들고 게시 내용·대상·방식을 검토해 UUP에 전달합니다. 실제 SNS 업로드·예약·게시와 댓글 자동화는 UUP가 실행합니다.**

Selvi 안에서도 **초안으로 저장**, **준비되는 대로 게시**, **예약 게시**를 선택할 수 있습니다. 따라서 “Selvi에서는 게시를 전혀 요청할 수 없다”는 설명은 부정확합니다. 반대로 “Selvi가 SNS에 직접 로그인해 자체적으로 게시한다”는 설명도 부정확합니다.

전달은 다음 단계로 구분합니다.

1. Selvi에서 최신 검증 영상과 게시 정보를 준비합니다.
2. 연결된 UUP 계정·게시 방식·채널별 설정을 선택합니다.
3. **전달 내용 확인**으로 로컬 검토 내용을 만듭니다. 이 시점에는 전송하지 않습니다.
4. **확인한 N개 계정에 자동 전달**을 눌러 검토한 내용을 전송합니다.
5. UUP가 자산을 검사하고 선택한 게시·자동화 흐름을 진행합니다.
6. 전송·게시·자동화 상태를 각각 조회합니다.

**UUP 접수 완료는 SNS 게시 완료와 다릅니다.** 초안은 초안이며 예약은 예약입니다. TikTok 편집함 전달은 TikTok 앱에서 게시를 마쳐야 합니다. 플랫폼 처리·심사·계정 권한·제한 때문에 최종 결과가 달라질 수 있습니다.

## KB-PUB-002 · UUP 연결 토큰 설정

**선행조건:** UUP에 사용할 SNS 계정이 연결되어 있고, 해당 계정을 허용한 API 토큰이 필요합니다. Selvi Google 로그인과 UUP 토큰 연결은 별개입니다.

1. Selvi의 **설정 → UUP 전달 → UUP 연결**을 엽니다.
2. **UUP에서 토큰 만들기**로 UUP 토큰 설정에 들어갑니다.
3. 사용할 계정과 필요한 권한을 허용한 토큰을 발급합니다.
4. Selvi의 **UUP 연결 토큰**에 붙여 넣습니다.
5. 보관 방법을 확인하고 **토큰 연결** 또는 **새 토큰으로 교체**를 누릅니다.
6. **연결 상태 확인**을 누르거나 제작 화면의 **연결·계정 새로고침**으로 현재 연결을 확인합니다.

권한별 역할은 다음과 같습니다.

- **영상 전송·초안 저장 권한:** 완성 영상을 UUP에 넘기는 데 필요합니다.
- **게시 실행 권한:** 준비되는 대로 게시·예약 게시에 추가로 필요합니다. 이 권한이 없으면 초안 저장을 사용합니다.
- **자동화 설정 권한:** 댓글 키워드 자동화에 필요하며 계정과 UUP 플랜의 사용 가능 상태도 확인합니다.

토큰 전체를 상담 채팅이나 오류 설명에 붙여 넣지 않습니다. 연결 오류를 문의할 때는 화면의 오류 문구와 선택한 게시 방식·채널만 전달하면 됩니다.

## KB-PUB-003 · 토큰 보관과 해제

- **이 기기에 안전하게 보관:** 운영체제 자격 증명 저장소에 보관합니다. 끄면 앱 종료 시 현재 기기의 세션 토큰이 사라집니다.
- **selvi.kr 계정에 저장:** 다른 PC에서 같은 계정으로 로그인할 때 연결을 복원하는 계정 사본입니다. 기기 보관 옵션과 별개입니다.
- **계정에서 불러오기**, **계정 보관 상태 확인:** 계정 사본의 복원·상태 확인에 사용합니다.
- **이 기기에서만 해제:** 현재 앱의 토큰만 제거하고 계정 사본은 남깁니다.
- **모든 기기에서 해제:** 계정 사본까지 제거하는 연결 해제 흐름입니다. selvi.kr 내 작업실에서도 관리할 수 있습니다.

토큰을 Selvi에서 해제해도 이미 UUP가 접수한 예약과 자동화가 자동 취소되는 것은 아닙니다. 기존 작업을 멈추려면 UUP에서 확인하고 중지합니다. 토큰이 만료되었다면 새 토큰을 연결하고 계정 목록을 새로고침하세요.

## KB-PUB-004 · 게시 정보 만들기

**선행조건:** [렌더링](05-render-thumbnail-and-carousel.md)을 마친 최신 검증 완성본이 있어야 전송할 수 있습니다. 게시 문구는 미리 준비할 수 있습니다.

1. 제작 화면의 **배포 준비·UUP 전달**을 엽니다.
2. **콘텐츠·옵션**에서 **제목·설명·해시태그 만들기**를 누르거나 직접 입력합니다.
3. AI 제목 후보가 표시되면 선택하고 **게시 제목**을 검토합니다.
4. **게시 본문 틀**을 확인하고 **게시 본문**을 다듬습니다. AI는 현재 대본과 입력된 상품 정보를 참고합니다.
5. **해시태그**, **제휴 링크 (선택)**, **광고·제휴 고지**를 확인합니다.
6. **검토·전송**의 영상 준비·대본·음성·최신 렌더·게시 정보 항목을 확인합니다.
7. 완성본 미리보기로 실제 영상이 맞는지 확인합니다. **완성본 폴더 열기**, **메타데이터 복사**도 사용할 수 있습니다.

화면 입력 한도는 게시 제목 120자, 게시 본문 2,200자, 해시태그 입력 300자입니다. 채널은 별도의 길이·형식 검사를 할 수 있으므로 이 입력 한도가 모든 플랫폼에서 동일한 허용 한도라는 뜻은 아닙니다.

영상 내 제목과 SNS 게시 제목은 서로 다릅니다. 대본이나 화면 제목을 바꿨다고 모든 채널 본문이 자동으로 의도에 맞게 바뀌었다고 가정하지 말고 최종 검토 내용을 읽으세요.

제휴 링크가 있으면 본문의 광고·제휴 고지가 잠기며, 영상 내 고지도 필요합니다. 영상 표시는 **비디오 → 브랜드·광고**, 게시 본문 고지는 이 단계에서 각각 확인합니다. 제휴 링크를 유지하면서 고지문만 지우는 방법을 안내하지 않습니다.

## KB-PUB-005 · 다중 계정과 게시 방식

1. **연결·계정 → 연결·계정 새로고침**을 눌러 현재 권한과 목록을 가져옵니다.
2. 전달할 계정을 체크합니다. **게시 가능한 계정 모두 선택**, **선택 해제**를 사용할 수 있습니다.
3. **게시 방식**을 선택합니다. 기본은 **초안으로 저장**입니다.
4. 예약을 선택했다면 **예약 시각 (한국 시간)**을 입력합니다.
5. **현재 설정할 계정**을 바꾸며 각 계정의 채널 설정과 자동화를 검토합니다.
6. 필요한 계정마다 제목·본문을 다르게 쓰려면 **채널 제목·본문 따로 지정 (선택)**을 펼칩니다. 비우면 공통 게시 정보를 사용합니다.
7. 지원 계정에는 **게시 직후 첫 댓글 (선택)**을 지정할 수 있습니다.
8. **선택한 N개 계정 전달 내용 확인**을 누릅니다.
9. 통합 확인에서 각 계정의 영상·게시 방식·제목·본문·썸네일·고지·자동화 대상을 검토합니다.
10. 실제로 실행하려면 **확인한 N개 계정에 자동 전달**을 누릅니다.

**초안으로 저장:** 영상과 정보를 UUP 초안으로 넘깁니다. 게시 완료가 아닙니다.

**준비되는 대로 게시:** 자산 검증 등 필요한 준비가 끝난 뒤 UUP가 게시 흐름을 시작하도록 요청합니다. 버튼을 누른 즉시 모든 플랫폼에 공개된다는 뜻은 아닙니다.

**예약 게시:** 지정한 한국 시간에 게시하도록 요청합니다. 최종 확인 화면에도 KST 시각을 표시합니다. 실제 계정 상태와 예약 결과는 UUP에서 확인합니다.

선택한 계정 중 준비가 안 된 계정이 있으면 해당 안내를 해결해야 합니다. 목록에서 회색으로 비활성화된 계정은 UUP 연결·게시 가능 상태를 확인하세요.

## KB-PUB-006 · 채널별 차이

**Instagram:** 지원되는 연결에서는 만든 썸네일을 별도로 함께 업로드할 수 있습니다. 댓글 키워드 자동 DM 설정이 가능하지만 계정·권한·플랜 상태를 확인해야 합니다.

**YouTube:** 공개 범위(비공개·일부 공개·공개), 아동용 여부, 변경·합성 콘텐츠 고지를 설정합니다. 현재 연동에서 댓글 키워드 자동 DM은 제공하지 않습니다. 별도 커버 업로드는 쇼츠 조건의 영상에는 지원하지 않습니다.

**Threads:** 답글 허용 대상을 모든 사람·팔로우하는 계정·언급한 계정으로 지정합니다. 현재 연동에서 댓글 키워드 자동 DM은 제공하지 않습니다.

**Facebook:** 대상은 **Facebook 페이지**입니다. 계정 상태가 허용하면 댓글 키워드 자동화와 첫 댓글 등 표시되는 기능을 사용합니다. 개인 프로필 게시와 동일하다고 안내하지 않습니다.

**TikTok:** **TikTok 게시 설정 불러오기**로 선택 계정의 최신 설정을 가져옵니다. 현재 계정이 허용하는 영상 길이와 공개 범위 등 제한을 확인합니다. 즉시·예약 흐름은 최신 게시 설정과 업로드 동의가 필요하며 오래된 정보는 다시 불러와야 합니다.

- **편집함 전달 · TikTok 앱에서 게시 마무리:** 본문과 공개 범위 등 최종 게시를 TikTok 앱에서 끝냅니다. 편집함 도착을 공개 게시 완료로 설명하지 않습니다.
- **UUP에서 직접 게시:** UUP의 심사·연결 상태가 허용할 때만 선택할 수 있습니다. 현재 화면에서 바로 게시가 닫혔다고 안내하면 편집함 전달을 사용합니다.
- 직접 게시가 열려 있는 경우 허용된 공개 범위를 직접 선택하고 댓글·듀엣·이어붙이기, 유료 파트너십·내 브랜드, AI 생성 고지와 정책 동의를 확인합니다.

**TikTok Business:** 일반 영상 게시 계정 목록과 구분되는 자동화 연결입니다. TikTok 게시 계정을 골랐다고 Business 자동화 계정이 자동 확정되는 것은 아닙니다.

## KB-PUB-007 · 썸네일과 UUP 쇼핑 페이지 상품 카드

**게시용 썸네일:** 썸네일 단계에서 이미지를 만든 후 지원 채널에서 **만든 썸네일 함께 업로드**를 켭니다. UUP 서버가 해당 연동을 지원해야 하며, 확인 화면에 함께 전송할 이미지와 크기가 표시됩니다. 지원하지 않는 채널의 대표 이미지가 자동 적용된다고 안내하지 않습니다.

**상품 카드:** 연결 결과에 사용 가능한 UUP 쇼핑 페이지가 있으면 **UUP 쇼핑 페이지 상품 카드**가 표시됩니다.

1. **이 영상의 상품을 UUP 페이지에 카드로 등록**을 켭니다.
2. **등록할 쇼핑 페이지**를 선택합니다.
3. 상품 카드 제목, 쿠팡 HTTPS 링크, 상품 이미지 설명을 확인합니다.
4. 앞에서 만든 썸네일이 상품 이미지로 사용되는지 확인합니다.
5. 최종 전달 확인의 상품 카드 내용을 검토합니다.

여러 채널을 선택해도 같은 검토 상품 카드는 한 번 등록하는 흐름이며, 특정 SNS의 게시와 별개입니다. SNS 커버 업로드 미지원과 상품 카드용 이미지 전달을 혼동하지 않습니다. 카드가 등록되었다고 SNS 게시나 구매·수익이 보장되는 것은 아닙니다.

## KB-PUB-008 · 댓글 키워드 자동화

**Instagram·Facebook:** **자동 DM 사용 · 게시한 영상의 댓글 키워드에 응답**을 켜고 키워드, 일치 방식, 첫 DM 문구, 상품 HTTPS 링크, 선택적 공개 답글을 설정합니다. 실제 게시된 이 영상의 새 댓글을 대상으로 합니다.

- 키워드는 쉼표로 구분해 최대 10개를 입력합니다.
- 일치 방식은 **댓글에 포함** 또는 **댓글과 정확히 일치**입니다.
- 첫 DM은 상품 링크를 포함한 텍스트이며 화면은 링크 포함 1,000바이트 기준을 안내합니다.
- 게시 본문에서 댓글을 유도한 문구와 키워드를 맞춥니다. 기본 예시는 “나도”입니다.

**TikTok Business:** **TikTok Business 댓글 키워드 자동 답글**을 사용하고 자동화할 Business 계정을 명시적으로 선택합니다. 이 흐름은 DM이 아니라 공개 답글이며 선택한 Business 계정의 **전체 영상 댓글**에 적용됩니다. 새로 전달하는 영상 하나만으로 범위를 좁히는 기능으로 안내하지 않습니다. 포함 일치와 링크 포함 1,200자 공개 답글을 사용합니다.

자동화는 권한과 계정·플랜이 준비되어야 하며 실제 실행은 UUP가 담당합니다. 영상 게시 완료와 자동화 활성 상태는 따로 확인합니다. 기존 댓글 전부에 소급 발송되거나 모든 댓글에 반드시 메시지가 전달된다고 보장하지 않습니다.

## KB-PUB-009 · 전달 상태와 이력 읽기

**UUP 전달 이력 → 이력 불러오기**에서 이 프로젝트의 기록을 확인합니다. 승인된 기록은 **상태 조회**로 원격 결과를 갱신합니다.

- **검토 중 · 아직 전송하지 않음:** 확인 내용을 만들었지만 실행 승인 전입니다.
- **승인됨 · 접수 결과 확인 필요:** 전송 승인은 기록되었으나 UUP 접수 결과를 아직 확정하지 못했습니다.
- **UUP 접수 완료:** 원격에서 전달을 접수한 상태입니다. 게시 완료 여부는 별도의 게시 상태를 읽습니다.
- **전송 대기 / 검증 대기 / 검증 중 / 검증 완료:** 영상 자산의 처리 단계입니다.
- **초안 저장 / 예약됨 / 게시 준비 중 / 게시 중 / 게시 완료:** 게시 처리 단계입니다.
- **공개 제한 / 게시 결과 확인 필요:** 최종 공개 결과를 별도로 확인해야 합니다.
- **TikTok 편집함 전달 · 앱에서 게시 필요:** TikTok 앱에서 게시를 마무리합니다.
- **다시 확인 필요 / 실패 / 취소됨 / 검증 실패:** 해당 원인과 UUP 상태를 확인합니다.

전송률 조회 실패와 로컬 이력 조회 실패는 게시 실패와 같은 뜻이 아닙니다. 화면에서도 별도로 표시합니다. 조회 실패가 났다는 이유만으로 새 전달을 무작정 반복하지 않습니다.

## KB-PUB-010 · 실패·중단·재시도

**토큰 만료·권한 부족:** 새 토큰 또는 필요한 권한을 설정하고 **연결·계정 새로고침**을 실행합니다. 즉시·예약 권한이 없다면 초안 저장을 선택할 수 있습니다.

**검토 후 프로젝트 또는 썸네일이 변경됨:** 이전 확인 내용으로 보내지 말고 **전달 내용 확인**을 다시 실행합니다. 영상에 영향을 주는 변경은 먼저 렌더링을 다시 마칩니다.

**전송 응답이 끊김:** 기존 이력에서 **상태 조회**로 접수 여부를 먼저 확인합니다. 허용되는 기록에 **같은 전달 이어가기**가 표시되면 기존 전달을 이어갑니다. 새 전달을 만드는 대신 같은 식별자의 기록을 사용하는 재시도 흐름입니다.

**다중 계정 일부만 진행됨:** 계정별 접수·게시 상태를 확인합니다. UUP 검증을 기다린다는 안내가 있으면 상태를 조회하고 남은 계정 전달을 이어갑니다. 모든 계정이 동시에 성공했다고 결론 내리지 않습니다.

**이미 중단되거나 거절된 기록:** 모든 실패 기록에 이어가기 버튼이 표시되는 것은 아닙니다. UUP의 상세 오류와 계정 상태를 먼저 해결합니다.

**게시 완료인데 자동화 실패:** 전송·게시·자동화 중 무엇이 실패했는지 구분합니다. 이어가기가 허용된 기존 기록 또는 UUP에서 자동화 상태를 확인합니다.

**예약이나 자동화를 취소하고 싶음:** UUP에서 중지합니다. Selvi 토큰 삭제·프로젝트 화면 닫기만으로 이미 접수한 작업이 취소된다고 안내하지 않습니다.

관련 문서: [설정·계정·데이터](07-settings-account-and-data.md), [문제 해결](08-troubleshooting.md).

## KB-PUB-011 · 자주 묻는 질문

**Q. UUP 없이 영상을 저장할 수 있나요?**

A. 네. 영상 렌더링과 로컬 완성본 저장은 UUP 연결과 구분됩니다. SNS 게시·예약 연동에 UUP가 필요합니다.

**Q. 전달 내용 확인을 누르면 바로 게시되나요?**

A. 아닙니다. 검토 내용을 만든 뒤 **확인한 N개 계정에 자동 전달**을 눌러야 전송합니다. 이후 동작은 선택한 초안·즉시·예약 방식에 따릅니다.

**Q. UUP 접수 완료인데 영상이 안 보여요.**

A. 자산 전송 상태와 게시 상태를 각각 조회하세요. 초안·예약·처리 중·공개 제한·TikTok 편집함 전달은 공개 게시 완료와 다릅니다.

**Q. 하나의 영상을 여러 계정으로 보낼 수 있나요?**

A. 게시 가능한 계정을 여러 개 선택할 수 있습니다. 게시 방식은 함께 정하고 채널별 본문·옵션·자동화를 각각 검토합니다.

**Q. TikTok 자동화도 그 영상에만 DM을 보내나요?**

A. 현재 TikTok Business 연동은 선택한 Business 계정 전체 영상 댓글에 대한 공개 답글입니다. Instagram·Facebook의 영상별 자동 DM과 다릅니다.

**Q. 앱 연결을 해제하면 예약도 지워지나요?**

A. 이미 UUP가 접수한 예약·자동화는 UUP에서 별도로 중지해야 합니다.

## 구현 근거

- `frontend/src/main.ts`: `renderHandoff`, `renderHandoffRenderSummary`, `renderTitleCandidates`; 게시 정보·최신 완성본·화면 절차.
- `frontend/src/uup.ts`: `renderUUPSettings`, `renderUUPDestination`, `renderUUPHandoff`, `preparationIssue`, `receiptState`, `canResume`, `renderRecord`; 보관 옵션, 권한·계정·다중 전달, 채널 차이, 상태 표시.
- `app_uup.go`: `ConnectUUP`, `GetUUPConnection`, `GetUUPCreatorInfo`, `PrepareUUPHandoff`, `SendUUPHandoff`, `RefreshUUPHandoff`, `uupCaption`; 검토 저장과 실행 분리, 변경 검사, 자산 전송·재시도·상태 갱신.
- `internal/uup/contract.go`: `Manifest`, `SupportsCover`, `PostOptions`, `AutomationInput`; 전달 계약과 지원 커버 조건.
- 기준일의 Selvi 화면과 연동 구현을 확인했다. 이 문서는 모든 UUP 계정·플랜 또는 외부 SNS의 현재 승인을 실시간 확인한 결과가 아니며, 실제 계정의 최신 연결 응답과 게시 상태가 우선한다. 이번 문서 정비에서는 실제 게시·DM 발송을 실행하지 않았다.
