← 튜토리얼 튜토리얼 · 영상·이미지 · 중급

편집 프로그램 없이 코드로 만드는 15초 쇼츠: 리모션과 클로드 코드 7단계

리모션(Remotion)은 리액트(React) 코드로 영상을 만드는 프레임워크입니다. 장면 코드를 Claude Code에게 맡기는 방법을 공식 문서 기준으로 정리하고, Claude Code에게 줄 프롬프트와 같은 조건으로 편집부가 직접 쓴 코드로 도형과 한국어 글자만 담은 릴스·쇼츠용 1080×1920 MP4를 렌더링해 확인했습니다.

SHIFT AI 편집부2026.10.27읽는 데 20분STEP 7개
리모션 스튜디오에서 연 15초 세로 영상 · SHIFT AI 직접 캡처(2026-10-27)
바쁘면 이것만
  1. 터미널에서 npx create-video@latest --yes --blank my-video로 프로젝트를 만들고, 그 폴더에서 npx remotion skills add로 공식 스킬을 넣습니다.
  2. Claude Code에게 1080×1920, 30fps, 450프레임(15초) 규격과 장면별 문구를 알려 주고, 움직임은 useCurrentFrame()을 기준으로 interpolate()와 spring()으로만 만들라고 합니다.
  3. npm run dev로 스튜디오에서 확인한 뒤 npx remotion render Shorts out/shorts.mp4로 뽑습니다. 비영리 단체가 아닌 회사나 팀에서 쓰고 전체 인원(파트타임·외주 포함)이 4명 이상이면 유료 회사 라이선스가 필요합니다.
통째로 맡기는 프롬프트Claude Code에 붙여 넣으면 이 글의 단계를 대신 진행합니다
역할: 너는 리모션(Remotion)으로 숏폼 모션 그래픽을 만드는 영상 개발자야. 맥락: 릴스·쇼츠에 올릴 15초 세로 영상을 코드로 만들고 싶어. 나는 코딩이 처음이고, 이미지나 영상 소스 없이 도형·색·한국어 글자만 쓸 거야. 입력: 제목 '[제목]', 항목 3개 '[항목 1]', '[항목 2]', '[항목 3]', 끝 문구 '[끝 문구]', 주요 색 [색 2~3개] 작업: 1) node -v로 Node.js 버전을 확인하고 npx create-video@latest --yes --blank my-video로 프로젝트를 만든다. 2) my-video 폴더에서 npx remotion skills add로 공식 스킬을 설치하고, 이후 작업은 그 스킬을 참고한다. 3) id가 Shorts이고 width 1080, height 1920, fps 30, durationInFrames 450인 컴포지션을 만들고, 장면 3개(0~4초, 4~9초, 9~15초)를 <Sequence>로 나눠 넣는다. 4) npm run dev로 스튜디오를 켜고 접속 주소를 알려 준다. 5) 내가 확인했다고 하면 npx remotion render Shorts out/shorts.mp4로 렌더링한다. 제약: 움직임은 useCurrentFrame()·interpolate()·spring()으로만 만들고 CSS transition·@keyframes·setTimeout은 쓰지 않는다. 외부 이미지·영상·음악 파일은 넣지 않는다. 명령을 실행하기 전에 무엇을 하는 명령인지 한 줄로 설명한다. 렌더링용 브라우저 다운로드가 실패하면 임의로 우회하지 말고 오류 내용을 그대로 보여 준다. 출력: 만들거나 바꾼 파일 목록, 장면별 시작·끝 프레임 표, 렌더링한 파일 경로와 크기. 검증: npx tsc --noEmit으로 타입 오류가 없는지 확인하고, npx remotion compositions 결과에 Shorts가 1080x1920, 450프레임(15.00 sec)으로 나오는지 보여 준다.
필요한 것Node.js가 설치된 PC(맥은 macOS 15 이상), 터미널, Claude Code 같은 코딩 에이전트(대부분 유료 구독)
걸리는 시간40분
왜 필요한가요편집 프로그램에서 글자 위치와 타이밍을 손으로 맞추면 문구 하나만 바뀌어도 처음부터 다시 손봐야 합니다. 리모션은 영상이 코드로 남아서, 문구나 색, 길이를 말로 고쳐 달라고 한 뒤 같은 규격으로 다시 뽑을 수 있습니다.
리모션에서는 영상 한 편을 컴포지션(Composition)이라는 리액트 컴포넌트로 만듭니다. 지금이 몇 번째 프레임인지에 따라 화면에 무엇이 보일지 코드가 정하고, 리모션이 브라우저로 프레임을 한 장씩 그려 MP4로 묶습니다. 코드를 직접 쓸 줄 몰라도 괜찮습니다. 리모션 공식 문서는 Claude Code 같은 코딩 에이전트로 영상을 만드는 방법을 따로 안내하고, 에이전트가 참고할 공식 스킬(Agent Skills)도 배포합니다. 이 글은 2026년 10월 27일에 리모션 4.0.539로 프로젝트를 만들고 스킬을 설치한 뒤, 스튜디오에서 미리 보고 15초짜리 MP4를 렌더링한 과정을 적었습니다. Claude Code는 편집부가 실행하지 않았고, 데모 장면 코드는 4단계 프롬프트와 같은 조건으로 편집부가 직접 썼습니다. AI로 만든 이미지나 영상 소스는 쓰지 않고 도형, 색, 한국어 글자만 썼습니다.

STEP 1프로젝트 만들기5분

이 단계에서는 공식 명령 한 줄로 빈 리모션 프로젝트를 만듭니다.

먼저 Node.js가 설치돼 있어야 합니다. 터미널에서 영상 프로젝트를 둘 폴더로 이동한 뒤 아래 명령을 실행하면 my-video 폴더에 빈(blank) 템플릿 프로젝트가 생기고 필요한 패키지까지 설치됩니다. npx가 create-video 패키지를 내려받아도 되는지 물으면 y를 누릅니다. 공식 문서 기준으로 맥은 macOS 15(Sequoia) 이상, 리눅스는 glibc 2.35 이상이 필요하고 알파인 리눅스와 NixOS는 지원하지 않습니다.

공식 문서의 최소 요구 사항은 Node 16(또는 Bun 1.0.3)이지만, 직접 만들어 본 빈 템플릿 프로젝트의 package.json에는 리모션 4.0.539와 함께 Node.js 버전 조건이 '^20.19.0 || ^22.13.0 || >=24'로 적혀 있었습니다. 이 템플릿으로 시작한다면 이 조건에 맞는 Node.js를 씁니다. 옵션 없이 npx create-video@latest를 실행하면 템플릿과 스킬 설치 여부를 고르는 마법사가 열립니다. 패키지 관리자는 실행한 명령에 따라 정해지므로, 다른 관리자를 쓰려면 pnpm create video, yarn create video, bun create video로 실행합니다.

용어 · 빈 템플릿(blank)장면이 하나도 없는 시작용 프로젝트입니다. 비어 있는 컴포지션 하나만 들어 있습니다.
터미널
npx create-video@latest --yes --blank my-video
cd my-video

확인설치가 끝나면 'Copied to my-video.'와 함께 다음에 실행할 명령(cd my-video, npm run dev)이 안내됩니다

STEP 2Claude Code에 리모션 스킬 붙이기5분

이 단계에서는 Claude Code가 리모션 코드를 쓸 때 참고할 공식 스킬을 프로젝트에 넣습니다.

프로젝트 폴더에서 npx remotion skills add를 실행합니다. 스킬은 리모션 팀이 관리하는 작업 지침 묶음으로, 프로젝트의 .agents/skills 폴더에 설치되고 Claude Code가 읽도록 .claude/skills 폴더에 연결(심볼릭 링크)됩니다. 직접 실행해 보니 remotion-create, remotion-markup, remotion-studio, remotion-render를 비롯해 12개가 설치됐습니다. 설치가 끝나면 새 터미널 창을 열어 같은 폴더에서 claude를 실행하고 Claude Code를 시작합니다.

Claude Code 플러그인으로 설치하는 방법도 있습니다. 공식 문서는 터미널에서 리모션 마켓플레이스를 추가하고 플러그인을 설치한 뒤 Claude Code를 다시 시작하라고 안내합니다. 플러그인에도 같은 스킬이 들어 있어서, 영상을 만들 폴더에서 Claude Code 새 세션을 열고 /remotion:remotion-create 뒤에 원하는 영상을 적으면 프로젝트 만들기부터 맡길 수 있습니다. 편집부는 Claude Code를 실행하지 않아서 이 플러그인 설치와 /remotion:remotion-create 호출은 해 보지 못했습니다. npx remotion skills add로 스킬 설치가 끝날 때 화면에는 스킬이 에이전트 권한 그대로 실행되니 쓰기 전에 살펴보라는 안내가 나옵니다.

터미널 (my-video 폴더에서)
npx remotion skills add

확인설치된 스킬 목록(./.agents/skills/remotion-...)마다 'symlinked: Claude Code'가 표시되고 'Done!'으로 끝납니다

플러그인으로 설치할 때 (공식 문서의 명령, 이 글에서는 실행하지 않음)
claude plugin marketplace add remotion-dev/claude-code-plugin
claude plugin install remotion@remotion

확인공식 문서 기준으로, 설치한 뒤 Claude Code를 다시 시작합니다

STEP 3세로 화면 규격 정하기3분

이 단계에서는 릴스·쇼츠용 세로 화면 크기와 영상 길이를 컴포지션에 적습니다.

리모션 스튜디오에서 세로 컴포지션 미리 보기와 크기·프레임 속도·길이 정보가 보이는 화면
1080×1920 세로 컴포지션의 2초 지점과 오른쪽 Metadata 패널 · SHIFT AI 직접 캡처(2026-10-27)
리모션에서 영상의 크기와 길이는 <Composition>의 width, height, fps, durationInFrames 값으로 정합니다. 세로 9:16 화면은 width 1080, height 1920으로 두고, 15초를 30fps로 만들려면 durationInFrames는 15×30인 450입니다. id는 렌더링할 때 부르는 이름이라 영문, 숫자, 하이픈(-)만 쓸 수 있습니다. Claude Code에게 맡길 때도 이 네 값은 숫자로 정확히 알려 주는 편이 좋습니다.
용어 · 프레임(frame)영상을 이루는 그림 한 장입니다. 30fps는 1초에 30장을 보여 준다는 뜻입니다.
용어 · 컴포지션(Composition)렌더링할 수 있는 영상 하나를 등록하는 리모션 컴포넌트입니다. 스튜디오 왼쪽 목록에 id 이름으로 나옵니다.
src/Composition.tsx (등록 부분)
<Composition
  id="Shorts"
  component={ShortsTitle}
  durationInFrames={450}
  fps={30}
  width={1080}
  height={1920}
/>

확인스튜디오 오른쪽 Composition 패널에 Dimensions 1080 1920, Frame rate 30fps, Duration 00:15.00이 보입니다

STEP 4Claude Code에게 장면 맡기기10분

이 단계에서는 장면 구성과 문구, 지켜야 할 규칙을 한 번에 적어 Claude Code에게 코드를 맡깁니다.

장면마다 몇 초부터 몇 초까지 무엇이 나오는지, 들어갈 한국어 문구와 색을 구체적으로 적습니다. 리모션은 프레임을 한 장씩 따로 그리기 때문에 CSS 애니메이션(transition, @keyframes)이나 setTimeout으로 움직임을 만들면 렌더링할 때 깜빡이거나 빈 화면이 나올 수 있습니다. 공식 문서는 모든 움직임을 useCurrentFrame()으로 얻은 프레임 번호에서 계산하라고 안내하고, 그 예로 interpolate()를 보여 줍니다. 이 규칙도 프롬프트에 넣습니다.

편집부는 Claude Code를 실행하지 않았고, 이 글의 데모는 아래 프롬프트와 같은 조건으로 편집부가 직접 쓴 코드로 만들었습니다. Claude Code가 이 프롬프트로 같은 결과를 내는지는 확인하지 못했습니다. 코드에는 리모션 기본 기능인 Sequence, interpolate, spring, useCurrentFrame만 썼습니다. 한글 글꼴은 컴퓨터마다 설치된 것이 달라서, 데모는 작업 환경(리눅스)에 있던 Noto Sans CJK 글꼴로 렌더링됐습니다. 어느 컴퓨터에서나 같은 글꼴로 뽑으려면 공식 문서가 안내하는 @remotion/google-fonts 패키지로 글꼴을 불러오는 방법이 있습니다. 패키지에는 Noto Sans KR과 'korean' 서브셋이 들어 있지만, 렌더링할 때 글꼴 파일을 fonts.gstatic.com에서 받아 오므로 인터넷이 막힌 곳에서는 쓸 수 없고, 편집부도 이 방법으로 렌더링해 보지는 못했습니다. 인터넷 없이 쓰려면 글꼴 파일을 public/ 폴더에 넣고 @remotion/fonts의 loadFont()로 불러옵니다.

이렇게 말고멋있는 15초 쇼츠 영상 만들어 줘
이렇게1080×1920, 30fps, 450프레임. 0~4초는 원이 커지며 제목 '영상도 코드로 만듭니다', 4~9초는 카드 3장이 차례로 등장, 9~15초는 숫자 카운트와 끝 카드. 움직임은 useCurrentFrame()을 기준으로 interpolate()와 spring()으로만 만들어 줘
복사해서 쓰는 프롬프트
리모션 스킬을 참고해서 src/Composition.tsx에 릴스·쇼츠용 세로 영상을 만들어 줘. - 규격: 1080×1920, 30fps, 15초(durationInFrames 450), 컴포지션 id는 Shorts - 장면 1(0~4초): 짙은 남색 배경에 주황색 원이 튀어나오듯 커지고, 아래에서 제목 '[제목 문구]'가 올라옴 - 장면 2(4~9초): '[항목 1]', '[항목 2]', '[항목 3]' 카드 3장이 왼쪽에서 0.4초 간격으로 들어옴 - 장면 3(9~15초): 숫자가 0에서 [숫자]까지 올라가고, 마지막에 '[끝 문구]'와 밑줄이 나옴 - 이미지·영상 파일은 쓰지 말고 도형, 색, 글자만 써 줘 - 움직임은 useCurrentFrame()과 interpolate(), spring()으로만 만들고 CSS transition·@keyframes·setTimeout은 쓰지 마 - 장면은 <Sequence>로 나누고, 초를 프레임으로 바꿀 때는 useVideoConfig()의 fps를 써 줘 - 한국어 글꼴은 '[글꼴 이름]'을 쓰고, 없으면 시스템 한글 글꼴로 대체되게 해 줘 끝나면 npx tsc --noEmit으로 타입 오류가 없는지 확인하고, 바꾼 파일과 장면별 시작 프레임을 알려 줘.

STEP 5스튜디오에서 미리 보고 고치기5분

이 단계에서는 리모션 스튜디오를 열어 장면과 타이밍을 브라우저에서 확인합니다.

리모션 스튜디오에서 장면 2의 카드 세 장과 아래쪽 타임라인이 보이는 화면
리모션 스튜디오에서 6초 지점(장면 2)을 연 화면, 아래 타임라인에 장면 세 개가 막대로 보입니다 · SHIFT AI 직접 캡처(2026-10-27)
프로젝트 폴더에서 npm run dev를 실행하면 리모션 스튜디오가 켜지고 브라우저가 열립니다. 왼쪽에는 컴포지션 목록, 가운데에는 미리 보기, 아래에는 <Sequence>마다 막대가 그려진 타임라인이 있어 장면이 몇 초에 바뀌는지 바로 보입니다. 타임라인을 눌러 원하는 시점으로 옮겨 가며 확인하고, 고칠 곳은 Claude Code에게 '장면 2에서 카드가 들어오는 간격을 0.2초로 줄여 줘'처럼 시점을 짚어 말합니다.

스튜디오 창을 닫아 버렸다면 npm run dev가 켜져 있는 터미널에서 s 키를 누르면 다시 열린다고 공식 문서가 안내합니다. 확인이 끝나면 그 터미널에서 Ctrl+C를 눌러 스튜디오를 끕니다.

터미널 (my-video 폴더에서)
npm run dev

확인'Server ready - Local: http://localhost:3000'처럼 접속 주소가 나오고, 'Built in ...ms'가 뜬 뒤 스튜디오를 쓸 수 있습니다

STEP 6MP4로 렌더링하기5분

이 단계에서는 완성한 컴포지션을 H.264 코덱의 MP4 파일로 내보냅니다.

리모션 스튜디오의 렌더 설정 창, 코덱 H.264와 저장 이름 out/Shorts.mp4가 보임
스튜디오의 Render 버튼을 눌러 연 렌더 설정 창, 코덱 H.264와 프레임 범위 0~449, 저장 이름 out/Shorts.mp4가 보입니다 · SHIFT AI 직접 캡처(2026-10-27)
터미널에서 npx remotion render 뒤에 컴포지션 id와 저장할 경로를 적습니다. 경로를 빼면 out 폴더에 저장되고, id까지 빼면 어떤 컴포지션을 렌더링할지 고르는 목록이 나옵니다. 스튜디오에서는 미리 보기 아래 도구 줄 오른쪽의 Render 버튼을 누르고 설정을 확인한 뒤 Render video를 누르면 되고, 진행 상황은 오른쪽 Jobs 탭에 나옵니다. 기본 코덱은 H.264이고, 공식 문서는 대부분의 경우 H.264가 잘 맞는다고 안내합니다.

리모션은 렌더링에 쓸 크롬 헤드리스 셸(Chrome Headless Shell)을 프로젝트의 node_modules 안에 자동으로 내려받습니다. 회사망처럼 다운로드가 막힌 곳에서는 여기서 멈출 수 있는데, 이미 설치된 크롬이나 크로미움 경로를 --browser-executable 옵션으로 알려 주면 그 브라우저로 렌더링합니다. 이 글의 작업 환경도 다운로드가 막혀 있어서, 미리 설치된 크로미움 헤드리스 셸 경로를 지정해 렌더링했습니다. 리눅스라면 공식 문서의 리눅스 의존성 목록에 있는 라이브러리도 설치해야 합니다.

터미널 (my-video 폴더에서)
npx remotion render Shorts out/shorts.mp4

확인'Rendered 450/450'과 'Encoded 450/450'이 지나간 뒤 out/shorts.mp4 경로와 파일 크기가 나옵니다. 처음 렌더링할 때는 크롬 헤드리스 셸을 먼저 내려받습니다(편집부 데모는 아래 --browser-executable 명령으로 렌더링했고, 620.2 kB, 작업 환경에서 약 1분이었습니다)

브라우저 다운로드가 막혔을 때
npx remotion render Shorts out/shorts.mp4 --browser-executable=[크롬 실행 파일 경로]

확인새로 내려받지 않고 지정한 크롬으로 렌더링합니다

STEP 7결과 확인하고 썸네일 뽑기5분

이 단계에서는 렌더링한 MP4를 처음부터 끝까지 재생해 보고, 표지로 쓸 장면을 이미지 한 장으로 저장합니다.

렌더링한 15초 MP4에서 뽑은 네 장면, 원과 제목, 카드 세 장, 15초 숫자와 SHIFT AI 끝 카드
렌더링한 MP4에서 2초, 6초, 11.5초, 14.5초 지점 프레임을 뽑아 나란히 붙인 것 · SHIFT AI 직접 캡처(2026-10-27)
MP4를 열어 글자가 화면 밖으로 잘리지 않는지, 장면이 바뀌는 순간 빈 화면이 끼지 않는지 확인합니다. 특정 장면을 PNG로 저장하려면 npx remotion still에 --frame 옵션으로 프레임 번호를 넣습니다. 프레임 번호는 0부터 시작하고, 옵션을 빼면 0번 프레임, -1을 넣으면 마지막 프레임이 저장됩니다. 30fps 영상에서 2초 지점은 60번 프레임입니다.

같은 틀에 문구만 바꿔 여러 편을 만들 계획이라면 Claude Code에게 문구를 컴포지션의 defaultProps로 빼 달라고 합니다. 공식 문서에 따르면 스튜디오가 defaultProps 값을 보고 입력 칸을 만들어 주므로, 코드를 열지 않고 문구를 바꿔 볼 수 있습니다.

터미널 (my-video 폴더에서)
npx remotion still Shorts out/thumb.png --frame=60

확인'Rendered 1/1'이 나오고 1080×1920 크기의 out/thumb.png가 저장됩니다

보너스 · 렌더링 전 체크리스트
  1. 스튜디오 오른쪽 패널에서 1080×1920, 30fps, 00:15.00인지 확인했습니다
  2. 움직임에 CSS transition, @keyframes, setTimeout을 쓰지 않았습니다
  3. 한글 글꼴이 내 컴퓨터에 있는지, 다른 컴퓨터에서 렌더링해도 같은 글꼴이 나오는지 확인했습니다
  4. Claude Code가 설치한 스킬과 실행한 명령을 한 번 훑어봤습니다
  5. 회사 업무라면 회사 전체 인원을 확인하고 회사 라이선스가 필요한지 봤습니다
솔직히 한계
  • 리모션은 개인, 전체 인원 3명 이하의 회사나 팀, 비영리 단체, 상업적으로 쓰기 전 평가 단계에서만 무료입니다. 인원은 리모션을 쓰는 사람만이 아니라 모든 인력(파트타임·외주 포함)을 세고, 같은 리모션 프로젝트를 함께 운영하는 협력사가 있으면 그 인원도 합칩니다. 그래서 20명 회사에서 한 명만 써도 회사 라이선스(Company License)가 필요합니다. 무료 라이선스로도 상업적으로 쓸 수 있고 기능 차이는 없습니다.
  • 2026년 10월 27일 공식 FAQ 기준으로 회사 라이선스 중 영상 제작용 'Remotion for Creators'는 리모션 코드를 직접 또는 코딩 에이전트로 쓰는 사람 1명당 월 25달러입니다. 렌더링 명령이나 API를 코드로 자동 호출하는 파이프라인은 'Remotion for Automators'에 해당해 렌더 1회당 0.01달러(월 최소 100달러)입니다. 가격과 조건은 바뀔 수 있고, 리모션 5.0에서 라이선스가 조금 바뀐다고 예고돼 있습니다.
  • Claude Code는 편집부가 직접 실행하지 않았습니다. 데모 영상은 4단계 프롬프트와 같은 조건으로 편집부가 쓴 코드로 렌더링한 것이고, 2단계의 Claude Code 플러그인 설치 명령과 /remotion:remotion-create 호출도 공식 문서에서 옮겼을 뿐 실행해 보지 않았습니다. Claude Code를 비롯한 코딩 에이전트는 대부분 유료 구독이 필요하다고 공식 문서가 안내합니다. 에이전트가 쓴 코드는 스튜디오에서 처음부터 끝까지 재생해 직접 확인해야 합니다.
  • 맥은 macOS 15 이상만 지원하고, 리눅스는 glibc 2.35 이상과 추가 라이브러리가 필요하며 알파인 리눅스와 NixOS는 지원하지 않습니다.
SHIFT AI 팔로우

영상으로 보고, 기사로 자세히 읽기

30초 영상은 인스타그램과 유튜브 쇼츠에, 짧은 글과 토론은 쓰레드에 올립니다. 새 소식은 그쪽에 가장 먼저 올라옵니다.