가이드
Sume 가이드: API, 포맷, 에이전트, 모델, 미디어 도구, 요금을 다룹니다. 답마다 날짜와 출처를 붙였습니다.

강의 녹음 텍스트 변환: 타임스탬프가 달린 노트로 정리하기
강의를 문장 타임스탬프와 함께 전사한 뒤, 언어 모델이 각 제목에 주제가 시작하는 지점을 표시한 노트로 바꾸게 하세요.

Java 음성 인식 API: HttpClient로 오디오를 텍스트로
JDK HttpClient와 Jackson으로 Java에서 음성 인식 API를 호출하세요. 오디오 URL을 POST하고 Job을 폴링한 뒤, 전사문과 단어별 시간을 읽습니다.

AI 아바타란 무엇인가요? 하는 일과 할 수 없는 일
AI 아바타는 얼굴과 목소리를 갖춘 디지털 진행자로, 직접 쓴 스크립트를 영상 속에서 말합니다. 하는 일, 만드는 방법, 한계를 정리했습니다.

AI 아바타는 어떻게 작동하나요? 얼굴, 목소리, 영상 단계별로
AI 아바타 영상은 얼굴, 그 얼굴에 맞는 목소리, 얼굴이 스크립트를 말하게 하는 움직임을 조합해 만듭니다. Sume에서 각 단계가 어떻게 작동하는지 설명합니다.

AI UGC란 무엇인가요? 뜻, 만드는 방법, 차이점
AI UGC는 AI로 만든 UGC 스타일 영상입니다. 생성된 진행자가 크리에이터가 휴대폰으로 찍듯 카메라를 보며 스크립트를 말합니다. 무엇이 다른지 정리했습니다.

토킹 헤드 영상이란 무엇인가요? 뜻과 만드는 방법
토킹 헤드 영상은 한 사람이 가슴 위쯤부터 잡힌 화면에서 카메라를 보고 말하는 영상입니다. 뜻과 쓰임새, AI로 만드는 방법을 정리했습니다.

토킹 헤드와 B-roll의 차이는 무엇인가요?
토킹 헤드는 카메라를 보고 말하는 사람의 샷이고, B-roll은 그 사람의 목소리가 계속 나오는 동안 잘라 넣는 영상입니다. 둘이 어떻게 맞물리는지 설명합니다.

립싱크와 더빙의 차이: 어느 쪽이 필요한가요?
더빙은 영상 속 음성을 바꾸고, 립싱크는 입 모양을 오디오에 맞춥니다. 립싱크 더빙은 둘 다 합니다. 각각의 뜻과 어느 쪽이 필요한지 정리했습니다.

AI 아바타와 AI 에이전트의 차이는 무엇인가요?
AI 아바타는 콘텐츠를 전달하는 얼굴과 목소리이고, AI 에이전트는 단계를 계획하고 도구를 쓰는 소프트웨어입니다. 둘의 차이와 만나는 지점을 정리했습니다.

FAQ 영상: AI 아바타로 만드는 방법
FAQ 영상은 자주 묻는 질문 하나에 짧은 클립으로 답합니다. AI 아바타로 세트를 만들 때는 질문마다 스크립트 하나, 렌더 하나를 쓰고 진행자는 끝까지 한 명으로 둡니다.

AI 기업 토킹 헤드 영상: CEO 메시지와 사내 공지 만들기
AI로 기업 토킹 헤드 영상을 만드는 방법입니다. 메시지 스크립트를 쓰고 진행자를 고른 뒤 16:9나 9:16으로 렌더링하고, 파일은 직원이 로그인하는 곳에 올리세요.

웹사이트용 AI 아바타: 홈페이지에 넣는 말하는 환영 영상
웹사이트용 AI 아바타는 짧은 진행자 영상입니다. 페이지 형태에 맞춰 자막을 입힌 말하는 클립을 렌더링한 뒤, 포스터 이미지와 함께 MP4를 임베드하세요.

의료 분야 AI 아바타: 환자 교육 영상 만들기
의료 분야에서는 AI 아바타를 일반적인 환자 교육에 쓰세요. 의료진이 검토한 짧은 영상에 대기실용 자막을 넣고, 환자 데이터는 담지 않습니다.

행사용 AI 아바타: 스크린과 로비 루프 영상을 맡는 AI 사회자
AI 아바타는 행사에서 대본이 정해진 부분의 사회를 볼 수 있습니다. 환영 인사, 안내 사항, 스폰서 감사, 세션 소개를 짧은 16:9 클립으로 만들어 이어 붙이거나 반복 재생합니다.

AI 아바타 UGC 영상 프롬프트: 필드마다 무엇을 쓰나요?
AI 아바타의 UGC 영상 프롬프트는 입력 하나가 아니라 세 개입니다. 크리에이터의 대사, 장소와 조명을 정하는 장면 프롬프트, 그리고 제품 이미지입니다.

AI 아바타 프롬프트 작성법: 말하는 진행자 묘사하기
영상용 AI 아바타 프롬프트는 한 사람의 나이, 외모, 머리, 옷차림, 표정을 묘사합니다. 무엇을 쓸지, Sume가 무엇을 더하는지, 무엇은 정할 수 없는지 설명합니다.

AI 아바타 영상 편집: 렌더링 후에 바꿀 수 있는 것
AI 아바타 영상 편집: 트림, 자막, 음악, B-roll, 이어 붙이기는 완성된 MP4에서 할 수 있고, 새 대사, 새 목소리, 새 외모는 다시 렌더링해야 합니다.

curl Bearer 토큰: Authorization 헤더 보내는 법
curl에서 bearer 토큰은 $TOKEN이 확장되도록 큰따옴표로 감싼 Authorization: Bearer 헤더나 --oauth2-bearer로 보내세요. 401별 해결법도 담았습니다.

Retry-After 헤더: 429·503 후 얼마나 기다려야 하나요?
Retry-After는 재시도 전에 얼마나 기다릴지 클라이언트에 알려 주는 헤더로, 초 단위 숫자나 HTTP 날짜이며 429나 503과 함께 옵니다. 읽는 법과 대응 방법을 정리했습니다.

API가 404 Not Found를 반환하는 이유와 해결법
API는 경로나 메서드에 맞는 라우트가 없을 때, 또는 보낸 자격 증명으로는 그 ID가 없을 때 404를 반환합니다. 둘을 구별하고 각각 고치는 법을 알아보세요.

재시도 가능한 HTTP 상태 코드: 어떤 오류를 재시도해야 하나요?
네트워크 오류, 408, 429, 5xx는 백오프하며 재시도하고, 그 밖의 4xx는 대부분 재시도하지 마세요. POST는 멱등성 키가 있을 때만 재시도하고, API의 재시도 플래그를 읽으세요.

POST는 멱등한가요? 아니요, PUT과 DELETE는 멱등합니다
아니요, HTTP는 GET, HEAD, OPTIONS, TRACE, PUT, DELETE를 멱등하다고 정의하지만 POST와 PATCH는 아닙니다. 멱등성 키가 있으면 POST 재시도가 안전합니다.

웹훅과 API의 차이는 무엇인가요?
API 호출은 코드가 서버에 무언가를 요청하는 것이고, 웹훅은 어떤 일이 일어났을 때 서버가 내 URL을 호출하는 것입니다. 둘은 함께 동작합니다.

롱 폴링과 숏 폴링의 차이는 무엇인가요?
숏 폴링은 타이머에 맞춰 요청하고 즉시 답을 받습니다. 롱 폴링은 새 소식이 생기거나 타임아웃이 될 때까지 요청을 열어 두었다가 응답을 받으면 다시 요청합니다.

Bearer 토큰과 API 키의 차이는 무엇인가요?
API 키는 자격 증명의 한 종류이고, Bearer는 Authorization 헤더에 자격 증명을 담아 보내는 방식입니다. OAuth 토큰처럼 API 키도 bearer 토큰으로 보낼 수 있습니다.

API 키는 어디에 저장해야 하나요? 서버·CI·로컬 개발
API 키는 서버 쪽에만 두세요. 프로덕션은 시크릿 매니저로 채우는 환경 변수, 파이프라인은 CI의 시크릿 저장소, 노트북은 git이 무시하는 파일에 둡니다.

웹훅 보안 모범 사례: 수신기 체크리스트
HTTPS로만 받고, 원본 본문의 HMAC을 상수 시간으로 검증하고, 오래된 타임스탬프는 거부하고, 이벤트 ID로 중복을 제거하고, 2xx로 빠르게 응답하세요.

HMAC과 디지털 서명의 차이: 웹훅에서 각각 무엇을 증명하나요?
HMAC은 송신자가 공유 시크릿을 가졌음을 증명합니다. 디지털 서명은 개인 키로 만들고 공개 키로 확인하며, 부인 방지까지 더합니다.

cron 표현식 6자리: 맨 앞이 초인가요, 맨 끝이 연도인가요?
표준 cron은 필드가 5개입니다. 6자리 cron 표현식은 맨 앞에 초를 더하거나(Spring, Quartz, Azure Functions) 맨 끝에 연도를 더합니다(AWS).

PowerShell Invoke-RestMethod로 JSON POST 요청하기
해시테이블을 ConvertTo-Json -Depth로 바꾼 뒤 Bearer 헤더를 넣어 Invoke-RestMethod -Method Post -ContentType 'application/json'으로 보내세요.

Python requests 재시도: 백오프·Retry-After·POST
Requests는 기본적으로 재시도하지 않습니다. urllib3 Retry(백오프, status_forcelist)를 Session에 마운트하고, POST는 Idempotency-Key가 있을 때만 재시도하세요.

fetch 타임아웃 설정: AbortSignal.timeout과 재시도
fetch()에는 timeout 옵션이 없습니다. signal: AbortSignal.timeout(ms)를 넘기고 TimeoutError를 잡은 뒤, 네트워크 오류와 429, 5xx는 백오프로 재시도하세요.

crontab에서 curl로 매일 API 호출하기: % 이스케이프
crontab 줄은 curl을 /bin/sh로 실행하고, 이스케이프하지 않은 %는 줄바꿈이 됩니다. %는 \%로 이스케이프하고, 전체 경로를 쓰고, 출력을 로그로 남기고, 요청 키는 날짜로 만드세요.

Jenkins Build periodically: cron 문법과 H 기호
Jenkins의 Build periodically는 cron 필드 5개에 H를 더해 받습니다. H는 작업 이름의 해시로 시작 시각을 분산하며, H 20 * * *는 오후 8시대에 한 번 실행됩니다.

Azure DevOps 예약 파이프라인: UTC 기준 매일 밤 cron
파이프라인 YAML에 UTC 기준 cron을 담은 schedules 블록을 추가하고, 코드 변경이 없어도 실행되게 always: true를 설정하고, 유료 API 호출은 날짜로 키를 만드세요.

Cloud Scheduler로 Cloud Run 작업 예약: 재시도 대비
cron과 시간대를 지정해 Cloud Run 작업에 Cloud Scheduler 트리거를 추가하세요. 실패한 태스크는 기본적으로 3번 재시도되므로 유료 호출은 날짜로 키를 만드세요.

Firebase 예약 함수: 유료 API를 하루 한 번 호출하기
onSchedule과 cron, timeZone으로 Firebase 예약 함수를 선언하고, API 키는 secrets에 두고, 유료 호출마다 scheduleTime으로 키를 만드세요.

Celery 태스크 재시도: 유료 API 호출용 백오프와 지터
autoretry_for, retry_backoff, max_retries로 Celery 태스크를 재시도하고, 429에는 retry-after만큼 기다리고, 재시도마다 같은 Idempotency-Key를 보내세요.

BullMQ 재시도: 유료 API 작업의 지수 백오프
BullMQ 작업에 attempts와 지수 백오프를 설정하고, UnrecoverableError로 일찍 멈추고, 유료 API 호출마다 작업을 기준으로 키를 만들어 재시도가 원래 실행을 재전송하게 하세요.

Sidekiq 재시도: 백오프, 재시도 횟수, 유료 API 호출
Sidekiq은 기본적으로 실패한 작업을 약 20일간 25번 재시도합니다. 횟수를 제한하고, sidekiq_retry_in으로 retry-after만큼 기다리고, 같은 Idempotency-Key를 재사용하세요.

Slack API 파일 업로드: files.upload 대신 세 번 호출
files.upload 지원 중단 뒤에는 files.getUploadURLExternal, upload_url에 바이트 POST, channel_id와 files.completeUploadExternal 순입니다.

Discord 웹훅 파일 전송: files[0]에 영상 첨부하기
네. 웹훅 URL로 multipart/form-data를 POST하고 파일은 files[0], 텍스트는 payload_json에 넣으세요. 기본 한도인 20 MiB를 넘으면 링크를 게시하세요.

Teams Incoming Webhook 종료: Workflows로 전환
Microsoft는 Teams의 Office 365 커넥터를 May 18~22, 2026에 비활성화하기로 했습니다. 대신 Workflows 웹훅 URL을 만들고 Adaptive Card를 POST하세요.

Rust HMAC-SHA256: axum에서 웹훅 서명 검증하기
Rust에서는 hmac·sha2 크레이트로 HMAC-SHA256을 계산합니다. axum에서는 Bytes로 받아 timestamp.body에 MAC을 적용하고 각 항목을 verify_slice로 확인하세요.

Hono 웹훅: 원본 본문(raw body)으로 서명 검증하기
c.req.text()로 원본 본문을 읽어 HMAC 서명을 검증한 뒤, 그 문자열을 JSON.parse하고 204로 응답하세요. Workers, Bun, Deno, Node에서 동작합니다.

Rails 웹훅: 컨트롤러에서 HMAC 서명 검증하기
request.raw_post를 읽고 그 액션만 CSRF를 건너뛴 뒤, OpenSSL::HMAC.hexdigest를 각 sume-v1 항목과 secure_compare로 비교하고 head 204로 응답하세요.

J컷과 L컷이란? 차이와 만드는 방법
J컷은 다음 샷의 소리를 그 화면보다 먼저 들려주고, L컷은 한 샷의 소리를 다음 화면 아래로 계속 이어 갑니다. 각각 만드는 방법을 알아봅니다.

영상을 반으로 자르는 방법: 같은 길이로 나누기
영상을 반으로 자르려면 길이 ÷ 2 지점에서 파일 두 개로 나누세요. N등분이라면 조각 i는 i × 길이 ÷ N에서 시작합니다. 단계, 정밀도, 한도를 정리했습니다.