본문 바로가기

IT/AI 자동화

remotion 네이티브 설치방법! 도커 설치와 비교

맥의 하드웨어 성능을 100% 활용하기 위해서는 도커(Docker)보다는 네이티브(Native) 설치를 강력하게 추천.

맥에는 비디오 인코딩/디코딩을 전담하는 **미디어 엔진(Media Engine)**과 강력한 GPU가 탑재되어 있습니다. 도커는 가상화 레이어를 거치기 때문에 이러한 하드웨어 가속 자원을 리모션(Remotion)이 직접적으로 사용하는 데 한계가 있어 성능 손실이 발생합니다.


🏎️ 네이티브 vs 도커 비교 (M4 맥미니 기준)

항목 도커(Docker) 방식 네이티브(Native) 방식
렌더링 속도 가상화 오버헤드로 인해 보통 M4 GPU 및 Metal 가속으로 매우 빠름
하드웨어 접근 하드웨어 가속기 접근이 제한적임 미디어 엔진 및 GPU 자원 즉시 활용
파일 관리 볼륨 마운트 설정이 필요함 맥의 로컬 폴더를 직접 읽고 쓰기 쉬움
명령어 구조 docker exec ... 등 복잡함 npx remotion ...으로 단순함

🛠️ 네이티브 환경으로 전환해야 하는 기술적 이유

  1. 브라우저 가속: 리모션은 내부적으로 크로미움(Chromium) 브라우저를 사용해 영상을 렌더링합니다. macOS 네이티브 환경에서는 크로미움이 애플 실리콘의 Metal API를 직접 사용하여 그래픽 처리를 훨씬 효율적으로 수행합니다.
  2. FastAPI와의 연동: FastAPI에서 도커 명령어를 실행하려면 도커 데몬과의 통신이 필요하지만, 네이티브 환경에서는 파이썬이 터미널 명령어를 직접 호출하므로 반응 속도가 빠르고 관리가 편합니다.
  3. 리소스 효율: 도커 실행에 필요한 메모리와 CPU 할당량을 따로 설정할 필요 없이, M4 맥미니의 통합 메모리(Unified Memory)를 필요한 만큼 유동적으로 사용할 수 있습니다.

🚀 네이티브 설치 및 이동 방법

Homebrew를 사용 중이라면 네이티브 환경 구축은 매우 간단하다

1. Node.js 설치

Bash
brew install node

2. 프로젝트 폴더에서 가상환경 및 fastAPI 설치

Bash

#프로젝트 폴더(fastapi-project) 생성
mkdir fastapi-project && cd fastapi-project

#가상화 환경 구성
python3 -m venv venv

#가상화 환경 접속
source venv/bin/activate

#fastapi 설치
pip install "fastapi[standard]"

관련 포스트 : 2026.01.05 - [IT/AI 자동화] - 맥에서 fastAPI 설치하는 방법

 

맥에서 fastAPI 설치하는 방법

맥의 시스템 무결성을 유지하면서 개발 효율을 극대화할 수 있는 FastAPI 최적 설치 및 설정 방법시스템 전역 도구는 Homebrew로 관리하고, 프로젝트별 라이브러리는 **가상환경(venv)**으로 격리하는

servertrix.com

 3. 리모션(remotion) 자동 설치

Bash
# fastapi-project폴더에서 바로 설치를 진행합니다.
npx create-video@latest .

⚠️ 설치 중 질문 대응 가이드:

  • "The directory is not empty. Continue?": 반드시 **y (Yes)**를 입력하세요.
  • Template 선택: 화살표 키로 이동하여 **Blank**를 선택하고 엔터를 누르세요. (가장 가벼운 템플릿입니다.)

 4. 한글 폰트 설치

 기본 템플릿에는 한글 폰트와 미디어 도구가 포함되어 있지 않습니다. 터미널에서 아래 명령어를 입력하여 설치하세요.

Bash

#추가 패키지 설치(한글폰트 pretendard)
npm install pretendard @remotion/media-utils

 5. 템플릿 영상 목록 생성

Bash
# 렌더링할 수 있는 영상(템플릿)확인
npx remotion compositions my-video/src/index.ts
 
⚠️ 오류 발생 시

(venv) Macmini:fastapi-project macmini$ npx remotion compositions
npm error could not determine executable to run

터미널에 아래 명령어를 복사해서 입력해 주세요.

npm install @remotion/cli remotion

설치가 완료되면 다시 아래 명령어 실행

npx remotion compositions my-video/src/index.ts

⚠️ 오류 발생 시

(venv) Macmini:fastapi-project macmini$ npx remotion compositions my-video/src/index.ts
Bundling code        ━━━━━━━━━━━━━━━━━━ 100%
Error: Module build failed (from ./node_modules/css-loader/dist/cjs.js):
Error: Can't resolve 'tailwindcss' in

터미널에서 아래 명령어 실행

#tailwindcss설치
npm install tailwindcss postcss autoprefixer

설치가 완료되면, 다시 목록 확인 명령어를 실행

npx remotion compositions my-video/src/index.ts
my-video/src 경로에 HelloWorld 폴더가 생성됐다

 6. 영상 렌더링! 생성해보자

npx remotion render my-video/src/index.ts HelloWorld out/test.mp4

my-video/out 경로에 test.mp4가 생성됐다

 

(추가) 맥미니 재기동시 자동으로 실행되게 하는 2가지 방법!

1. 오토메이터로 'FastAPI 서버 앱' 만들기

  1. 오토메이터 실행: Command + Space를 누르고 Automator를 검색해서 엽니다.
  2. 문서 유형 선택: **'응용 프로그램(Application)'**을 선택하세요.
  3. 동작 추가: 왼쪽 검색창에 **'쉘 스크립트 실행(Run Shell Script)'**을 검색한 뒤, 오른쪽 작업 영역으로 드래그합니다.
  4. 스크립트 입력: 아래 내용을 복사해서 넣으세요.
  5. Bash
     
    export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
    #실제fastap-project가 있는 전체 경로
    cd /Volumes/Storage/Data/service/fastapi-project
    source venv/bin/activate
    python -m uvicorn main:app --host 0.0.0.0 --port 8000
  6. 저장: Command + S를 눌러 이름을 **FastAPI-Server.app**으로 정하고 적당한 곳(예: 응용 프로그램 폴더)에 저장합니다.

🚀 로그인 항목에 등록하기

이제 직접 만든 이 '앱'을 로그인 항목에 넣기만 하면 됩니다.

  1. 시스템 설정 > 일반 > 로그인 항목으로 이동합니다.
  2. '+' 버튼을 누르고, 방금 만든 **FastAPI-Server.app**을 선택합니다.

2.실행 전용 앱(스크립트) 만들기

텍스트 편집기를 열고 아래 내용을 복사해서 넣으세요.

Bash
#!/bin/bash
cd /Volumes/Storage/Data/service/fastapi-project
source venv/bin/activate
# 터미널 창을 띄우지 않고 백그라운드에서 실행
nohup python -m uvicorn main:app --host 0.0.0.0 --port 8000 > /dev/null 2>&1 &
  • 이 파일을 fastapi-project 폴더 안에 **run_server.command**라는 이름으로 저장

2. 파일에 실행 권한 주기

터미널에서 이 파일이 '프로그램'처럼 돌아갈 수 있게 권한을 딱 한 번만 줍니다.

chmod +x /절대경로/fastapi-project/run_server.command

3. '로그인 항목'에 추가하기

  1. 시스템 설정 > 일반 > 로그인 항목으로 이동합니다.
  2. '+' (추가) 버튼을 누릅니다.
  3. 방금 만든 run_server.command 파일을 선택하면 끝!