Swift로 처음부터 만든 macOS 네이티브 영상 편집기. 타임라인 안에서 생성형 AI로 영상·이미지·오디오를 만들고, 내장 MCP 서버 하나로 Claude·Cursor·Codex 같은 AI 에이전트가 타임라인을 직접 편집한다. "AI 런치 영상"을 만들던 YC 스타트업이, 웹에서 생성→다운로드→임포트→재편집을 무한 반복하던 고통에서 출발해 만들었다. (저장소: palmier-io/palmier-pro · Swift 99% · 약 4.3만 줄 · macOS 26 Tahoe · GPLv3)
"영상 편집기를 사람과 AI 에이전트가 함께 쓰는 작업대로."
보통 AI 영상 제작은 이렇게 흐른다 — 웹 서비스에서 클립을 생성하고, 노트북에 내려받고, 편집 프로그램으로 임포트하고, 잘라 붙이고, 다시 마음에 안 들면 웹으로 돌아가 또 생성한다. Palmier Pro는 이 왕복을 없앤다. 편집기 자체가 단일 진실원(single source of truth)이 되어, 생성·편집·재생성이 전부 한 타임라인 안에서 일어난다. 게다가 편집기를 MCP 서버로 열어, Claude 같은 에이전트가 "이 장면 뒤에 3초짜리 전환 영상 만들어 넣어줘"를 직접 실행한다.
먼저 핵심 용어 MCP부터 풀어두자. AI 에이전트(Claude·Cursor 등)는 기본적으로 "글을 읽고 쓰는" 능력만 있다. 외부 프로그램을 조작하려면 표준화된 연결 통로가 필요한데, 그게 MCP(Model Context Protocol)다. Palmier Pro는 앱을 켜면 자기 자신을 MCP 서버로 노출한다 — 즉 "영상 편집기를 조작하는 도구 모음"을 에이전트에게 제공하는 것이다.
http://127.0.0.1:19789/mcp에 MCP 서버를 띄운다.중요한 구분 하나. 오픈소스는 "편집기 + MCP 서버 + 에이전트 챗"까지다. 영상·이미지를 실제로 만들어내는 생성형 AI 처리 부분만 클로즈드(유료)다. 그래서 AI 없이 그냥 무료 영상 편집기(CapCut·프리미어 대용)로 써도 되고, 내 Anthropic API 키를 꽂아 에이전트 편집까지 공짜로 써볼 수도 있다. 라이선스는 GPLv3, 만든 곳은 YC 스타트업 Palmier, Inc.다.
"생성형 AI"와 "영상 편집기" 사이의 단절을, 타임라인을 중심에 두고 메운다.
2026년 현재 생성형 영상 모델(Seedance·Kling·Veo 등)은 폭발적으로 좋아졌다. 그런데 정작 그걸로 "제대로 된 영상 한 편"을 만들려면 고통이 시작된다. 모델은 대부분 웹에 살고, 편집은 별도 프로그램에서 해야 하기 때문이다.
한 컷을 고치려고 매번 웹↔편집기를 오간다. 프로젝트가 커지면 각 샷의 v1·v2·v3 파일이 폴더에 쌓여 이름을 손으로 관리해야 하고, 맥락은 여기저기 흩어진다(스크립트는 Claude에, 생성은 웹 서비스 챗에). 컨텍스트 스위칭만으로 하루가 간다.
모든 소재가 같은 프로젝트 안에 산다. 임포트/익스포트 왕복 없이 클립을 제자리에서 재생성·교체한다(in-line replace). 그리고 내 AI 에이전트가 곧 편집 조수가 된다 — 스크립트 작성·생성·타임라인 편집을 한 대화에서 시킨다.
트렌딩을 끌어올린 진짜 한 방은 따로 있다. "비디오 편집기를 MCP 서버로 열었다"는 점이다. 이건 단순 기능이 아니라 철학이다 — 만든 사람들은 Palmier Pro를 "사람과 에이전트가 동시에 쓰는 UI"로 본다. 같은 타임라인을, 사람은 마우스로 만지고 에이전트는 도구 호출로 만진다.
기존 = 주방(생성)과 식탁(편집)이 다른 건물 — 요리 하나 고치려면 매번 길을 건너야 한다.
Palmier Pro = 오픈 키친 — 만드는 곳과 차리는 곳이 한 공간이라, 셰프(나)와 보조(AI 에이전트)가 같은 도마 위에서 바로바로 고친다.
| 구분 | 일반 편집기(프리미어·CapCut) | 웹 생성 서비스 | Palmier Pro |
|---|---|---|---|
| AI 생성 통합 | 약함(플러그인) | 강함(본업) | 타임라인 내장 |
| 에이전트 조작 | 불가 | 제한적 | MCP로 전체 개방 |
| 구현 | 네이티브/무거움 | 웹 | 네이티브 Swift(가벼움) |
| 소스 공개 | 클로즈드 | 클로즈드 | 오픈소스(GPLv3) |
| 가격 | 구독 | 종량/구독 | 편집기 무료(생성만 유료) |
물론 솔직한 한계도 README가 명시한다. 아직 효과·전환·색보정·마스킹·그래픽이 없다. 만든 팀도 "AI 영상 만들기엔 충분했지만, AI를 빼면 꽤 단출한 편집기"라고 인정하며, 그래서 무료·오픈소스로 풀어 커뮤니티와 함께 키우겠다고 한다. 즉 지금 주목 포인트는 "완성된 편집기"가 아니라 "에이전트-네이티브 편집기라는 새 카테고리"다.
UI는 SwiftUI+AppKit, 영상은 AVFoundation, AI는 MCP+Anthropic, 백엔드는 Convex. 전부 Swift 한 언어로.
Palmier Pro는 약 4.3만 줄의 Swift(99%)로 된 단일 언어 프로젝트다. 의존성은 SPM(Swift Package Manager)으로 관리하며, 직접 의존성이 9개뿐일 만큼 군더더기가 적다. 영역별로 "무엇이 무엇을 담당하는지" 지도를 보자.
| 레이어 | 핵심 기술 | 역할 |
|---|---|---|
| 언어·플랫폼 | Swift 6.2 · macOS 26 Tahoe · arm64 전용 | 전체 코드. 비샌드박스 Developer ID 앱(io.palmier.pro). |
| UI 골격 | SwiftUI + AppKit 하이브리드 | NSApplication을 직접 띄우고(@main 없음), 창은 AppKit, 화면 내부는 SwiftUI 뷰. |
| 상태 관리 | @Observable + @MainActor | 애플의 최신 Observation 프레임워크. ObservableObject·TCA 안 씀. |
| 영상 엔진 | AVFoundation(AVMutableComposition·AVPlayer·AVAssetExportSession) | 재생·합성·내보내기. 커스텀 렌더러 없이 AV 합성으로 처리. |
| 그래픽(좁게) | Metal · CoreImage · CoreAnimation | 알파 영상 정규화, 이미지→영상 변환, 자막 오버레이 등 국소적 용도. |
| AI 에이전트 | MCP Swift SDK 0.12 · Anthropic Messages API | MCP 서버 + 인앱 챗. 둘이 같은 도구·프롬프트 공유. |
| 백엔드·인증 | Convex(리액티브 RPC) · Clerk(인증) | 생성 작업 제출/구독, 모델 카탈로그, 크레딧, 로그인. |
| 온디바이스 ML | Apple Speech(SpeechAnalyzer) · SigLIP2 CoreML · swift-transformers | 자막/전사(transcription), 의미 기반 영상 검색. 클라우드 불필요. |
| 운영 도구 | Sparkle 2(자동 업데이트) · Sentry(에러) · Lottie · DSWaveformImage | 업데이트 배포, 크래시 리포팅, 로티 애니메이션, 오디오 파형 썸네일. |
| 테스트 | Swift Testing(XCTest 아님) | 60개 파일·약 9.7천 줄. @Suite/@Test/#expect 신문법. |
AVPlayer), 여러 클립을 한 타임라인으로 합치기(AVMutableComposition), 파일로 내보내기(AVAssetExportSession)를 다 담당한다. Palmier Pro의 영상 심장.설계의 영리함은 "무거운 일은 전부 애플의 온디바이스 프레임워크에 맡기고, 클라우드는 생성에만 쓴다"는 배치다. 전사·검색은 기기 안에서(프라이버시 ↑), 영상 합성은 AVFoundation이(직접 렌더러 안 만듦), 오직 "실제 생성형 AI 연산"만 Convex 백엔드로 보낸다. 그래서 앱 본체가 가볍다.
먼저 전체 그림 한 장 → 그다음 "에이전트 명령 한 줄이 편집이 되기까지"와 "타임라인이 화면이 되기까지"를 따라간다.
Palmier Pro의 중심에는 하나의 타임라인 데이터(Timeline)가 있고, 그것을 세 종류의 입력이 만진다 — (1) 사람의 마우스, (2) 외부 에이전트(MCP), (3) 인앱 챗. 만져진 타임라인은 AVFoundation 영상 엔진이 미리보기·내보내기로 바꾼다. 숲을 먼저 보자.
핵심은 가운데의 Timeline이 모두가 공유하는 단 하나의 진실이라는 점이다. 누가 만지든(사람·MCP·챗) 결국 같은 데이터를 바꾸고, 영상 엔진은 그 데이터만 보고 화면을 만든다. 이제 두 줄기를 손으로 따라가자.
# 앱을 켜면 MCP 서버가 자동으로 뜬다 (AppDelegate가 startMCPService 호출)
1. 연결 claude mcp add --transport http palmier-pro \
http://127.0.0.1:19789/mcp
2. 파악 에이전트가 먼저 get_timeline / get_media / list_models 호출
→ 현재 트랙·클립·쓸 수 있는 AI 모델을 파악
3. 편집 명령 "마지막 컷 뒤에 3초 전환 영상 만들어 넣어줘"
→ 에이전트가 generate_video → add_clips 도구를 순서대로 호출
4. 실행 ToolExecutor가 각 도구를 Timeline 변경으로 번역(되돌리기 1묶음)
5. 검증 inspect_timeline 으로 합성된 프레임을 렌더해 "정말 들어갔나" 확인
여기서 배울 점이 셋이다. (가) 서버는 loopback(127.0.0.1) IPv4에만 묶인다 — 같은 컴퓨터 안에서만 닿고 외부 네트워크에선 절대 안 보인다(의도된 보안 결정). (나) HTTP 서버를 NIO 같은 큰 라이브러리가 아니라 애플 기본 Network.framework(NWListener/NWConnection)로 직접 짰다 — 연결마다 별도 Server를 붙이는 actor 구조다. (다) 같은 32개 도구를 MCP 서버와 인앱 챗이 공유한다 — 차이는 UX와 과금뿐.
127.0.0.1은 "내 컴퓨터 자신"을 가리키는 주소다. 여기에만 서버를 묶으면 같은 기기의 프로그램(내 Claude Code)만 접속할 수 있고, 같은 와이파이의 옆 사람조차 닿지 못한다. 그래서 인증 없이도 로컬 도구를 안전하게 열 수 있다.| 분류 | 대표 도구 | 하는 일 |
|---|---|---|
| 읽기·검사 | get_timeline · inspect_timeline · search_media | 현재 타임라인/미디어 파악, 합성 프레임 렌더, 의미 기반 소재 검색. |
| 타임라인 편집 | add_clips · split_clip · move_clips · set_keyframes | 클립 배치·분할·이동, 키프레임(애니메이션) 설정. |
| 리플·삭제 | ripple_delete_ranges · undo | 구간 잘라내고 빈틈 메우기(필러·정적 제거), 에이전트 편집만 되돌리기. |
| 자막·텍스트 | add_texts · add_captions | 자막/타이틀 오버레이, 온디바이스 전사 기반 자동 캡션. |
| 생성형 AI | generate_video · generate_image · generate_audio | 텍스트/이미지→영상, 이미지 생성, TTS·음악 생성("돈이 드는·되돌릴 수 없는" 작업). |
| 미디어 관리 | import_media · list_folders · rename_media | 외부 소재 임포트(다른 MCP 서버와의 다리), 라이브러리 정리. |
# Preview/CompositionBuilder.swift — 합성의 핵심(846줄)
1. 트랙→합성 타임라인의 각 트랙을 AVMutableComposition 트랙으로 변환
클립의 trim 구간만 잘라 삽입 (배속은 scaleTimeRange로 별도 트랙)
2. 레이어 클립마다 위치·불투명도·크롭을
AVVideoCompositionLayerInstruction 으로 지정
3. 배경 맨 아래에 불투명 검정 트랙 → 빈 영역이 투명 대신 검정으로
4. 텍스트 미리보기는 CATextLayer 오버레이,
내보내기는 AVVideoCompositionCoreAnimationTool 로 굽기
5. 재생 AVPlayer가 결과를 재생 — 프레임 단위 정확 탐색
(스크럽 중엔 활성 레이어 수에 맞춰 tolerance를 키워 ~30Hz로)
가장 인상적인 설계는 "커스텀 Metal 렌더러를 안 만들었다"는 것이다. 보통 영상 편집기는 GPU 렌더 파이프라인을 직접 짜는데, Palmier Pro는 AVFoundation의 합성 기능(layer instruction)에 거의 다 맡긴다. Metal/CoreImage는 알파 영상 정규화·이미지→영상 변환·로티 굽기 같은 좁은 보조 작업 4곳에서만 쓴다. 덕분에 코드가 단순하고, 애플이 하드웨어 가속을 알아서 해준다.
커스텀 렌더러 = 주방을 통째로 직접 설계·시공 — 강력하지만 배관·전기까지 다 책임진다.
AVFoundation 합성 = 시스템 키친(빌트인)을 조립 — "여기에 이 클립을, 이 위치·투명도로"라는 지시서(layer instruction)만 써주면 애플이 가스·후드까지 알아서 돌린다.
코드를 처음 열면 낯선 관례가 몇 개 보인다. 미리 알면 길을 덜 잃는다. (가) 거대한 뷰모델 EditorViewModel 하나를 기능별 확장 파일 약 28개로 쪼갰다(+ClipMutations·+Keyframes·+Tracks…). 한 클래스, 여러 파일. (나) Timeline 자체는 관찰 대상이 아니라 순수 값 타입(Codable 구조체)이고, 바뀔 때마다 리비전 카운터를 올려 재렌더를 부른다. (다) 에이전트 백엔드는 AgentClient 프로토콜 뒤에 두 구현이 있다 — 내 키로 직접 Anthropic을 부르는 BYOK 경로와, Clerk 토큰으로 Convex를 거치는 구독 경로.
본체 파일만 열면 메서드가 거의 없어 당황한다. 실제 로직은 Editor/ViewModel/ 폴더의 EditorViewModel+OOO.swift 확장 파일들에 흩어져 있다. "기능 하나 = 확장 파일 하나"가 이 레포의 규칙이다. 클립 편집을 찾으려면 +ClipMutations, 키프레임은 +Keyframes를 열어야 한다.
폴더 이름이 곧 책임이다. "AI 두뇌(Agent)"와 "영상 엔진(Preview)"이 양대 축.
모든 소스는 Sources/PalmierPro/ 아래 기능별 폴더로 나뉜다. 처음 본다면 Agent/(에이전트 두뇌)와 Preview/(영상 엔진) 두 폴더만 잡아도 절반은 이해한 것이다.
| 위치 | 한 줄 역할 |
|---|---|
| App/main.swift | 진입점. @main 대신 NSApplication을 손수 띄우고 MCP 서버를 시작. |
| Agent/MCP/ | loopback HTTP+MCP 서버. Network.framework로 직접 구현, 연결마다 별도 Server. |
| Agent/Tools/ | 32개 도구 정의 + 실행기 + 시스템 프롬프트. MCP·인앱 챗 공유. |
| Preview/CompositionBuilder.swift | 합성 심장. 타임라인→AVMutableComposition + 레이어 지시. |
| Models/Timeline.swift | 데이터 모델(540줄). 프레임 기반 트랙·클립·키프레임 값 타입. |
| Editor/RippleEngine.swift | 리플 편집(뒤 클립 밀기) 엔진. 전용 단위 테스트 다수. |
| Generation/GenerationBackend.swift | Convex로 생성 작업 제출 → 구독으로 진행률·결과 URL 수신. |
| Search/ · Transcription/ | 온디바이스 ML 두 축 — 시각 검색(SigLIP)과 음성 전사(Speech). |
이 레포 하나로 "Swift MCP 서버 + AVFoundation 합성 + 타임라인 모델링 + 모던 동시성 + 온디바이스 ML"을 한꺼번에.
Palmier Pro는 단일 기술 예제가 아니라 현대 macOS AI 앱의 부품이 다 모인 교과서다. 분야별로 무엇을 건질지 짚는다.
공식 modelcontextprotocol/swift-sdk로 도구(Tool)와 리소스를 정의하고, HTTP 서버를 애플 Network.framework로 직접 짜는 전 과정을 본다. loopback 전용 바인딩·연결별 서버·OAuth 리소스 발견 엔드포인트까지, "앱을 MCP로 노출하는 법"의 압축판이다.
실습: Agent/MCP/MCPHTTPServer.swift에서 왜 127.0.0.1에만 묶는지, GET /mcp(SSE 킵얼라이브)와 POST /mcp(요청 처리)를 어떻게 가르는지 따라가기.
AVMutableComposition에 트랙·클립을 삽입하고, AVVideoCompositionLayerInstruction으로 위치·불투명도·크롭을 주고, 배속은 scaleTimeRange로, 텍스트는 미리보기(CATextLayer)와 내보내기(CoreAnimationTool)에서 다르게 굽는다. 영상 편집기의 합성 파이프라인을 가장 적은 코드로 배우는 예제.
실습: Preview/CompositionBuilder.swift에서 맨 아래 "불투명 검정 배경 트랙"을 왜 까는지(빈 영역이 투명이 되지 않게) 확인.
Models/Timeline.swift는 전부 Codable/Sendable 값 타입이다. 클립은 반열린 구간 [startFrame, startFrame+durationFrames)를 차지하고, 트림·배속을 거쳐 소스↔타임라인 좌표를 변환한다. 키프레임은 클립 기준 상대 위치라 클립이 움직이면 같이 따라온다. 영상·애니메이션 데이터 모델링의 정석.
실습: 클립 길이를 줄이면 키프레임이 어떻게 재조정되는지, 트림과 배속이 소스 프레임 계산에 어떻게 곱해지는지 추적.
애플의 새 Observation(@Observable)과 @MainActor를 전면 사용한다(72개 파일). strict concurrency(엄격 동시성) 아래에서 Sendable·actor·nonisolated를 실전에서 어떻게 쓰는지, 거대한 뷰모델을 기능별 확장 28개로 쪼개는 조직법까지 본다.
실습: EditorViewModel 본체와 확장 파일들을 비교해, "왜 하나의 클래스를 여러 파일로 나눴나"의 장단점을 정리.
애플의 새 SpeechAnalyzer(macOS 26)로 자막을 만들고, SigLIP2 CoreML로 "장면 의미 검색"을 인터넷 없이 한다. 그리고 Agent/AgentService.swift의 고전적 도구 사용 루프(스트리밍 → tool_use 만나면 실행 → tool_result 붙여 다시 호출 → end_turn까지)를 읽으면 에이전트가 실제로 어떻게 도는지가 손에 잡힌다.
실습: AgentService.runLoop()에서 중단·고아 tool_use 처리·스트리밍 델타가 어떻게 다뤄지는지 따라가기.
"애플 실리콘 맥 + macOS 26"이 절대 조건. 편집은 무료, 생성만 키/구독.
Palmier Pro는 최신 애플 환경에 단단히 묶여 있다. macOS 26(Tahoe)의 새 API(SpeechAnalyzer 등)와 Metal을 쓰기 때문에, 구형 맥이나 인텔 맥에서는 돌지 않는다.
| 항목 | 요구사항 |
|---|---|
| 운영체제 | macOS 26 (Tahoe) 전용. 그 이하 버전 불가(Sparkle minimumSystemVersion=26.0). |
| CPU/칩 | 애플 실리콘(arm64)만. 인텔 맥 미지원. |
| 설치(사용자) | 로그인 없이 PalmierPro.dmg 받아 실행. 비샌드박스 Developer ID 서명 앱. |
| 영상 편집(무료) | 추가 비용·계정 없음. CapCut·프리미어처럼 그냥 씀. |
| 에이전트 편집(무료) | MCP 서버 무료. 내 ANTHROPIC_API_KEY(BYOK)를 Keychain에 넣으면 인앱 챗도 사용. |
| 생성형 AI(유료) | 영상·이미지·음악 생성은 크레딧 차감(구독 또는 BYOK). "돈이 드는·되돌릴 수 없는" 작업으로 명시. |
| 빌드(개발자) | Xcode/Swift 6.2 툴체인. swift build / swift run, 테스트는 swift test. .app 조립은 scripts/bundle.sh. |
학습 목적이라면 가장 가벼운 출발점은 "소스를 클론해 swift build로 빌드해보기"다(애플 실리콘 맥 + macOS 26 필요). 생성형 AI까지 체험하려면 Anthropic API 키를 꽂으면 되고, 모델 카탈로그·과금은 Convex 백엔드에서 내려오므로 키만으로 도구 호출 흐름을 따라갈 수 있다.
"MCP 연결"은 10분, "소스 빌드·코드 읽기"는 한나절, "도구 추가"는 주말 프로젝트. 난이도 순.
DMG를 받아 앱을 켠 뒤, 터미널에서 claude mcp add --transport http palmier-pro http://127.0.0.1:19789/mcp를 실행한다. Claude Code에서 도구 목록에 palmier-pro의 32개 도구가 뜨는지 확인한다.
Claude에게 "지금 타임라인 상태 알려줘"(→ get_timeline), "이 클립을 절반 지점에서 잘라"(→ split_clip), "필러·정적 구간 제거해"(→ ripple_delete_ranges)를 시켜본다. 도구 호출이 실제 화면 변경으로 이어지는 걸 관찰한다.
git clone 후 swift build로 빌드하고(애플 실리콘+macOS 26), Agent/MCP/MCPHTTPServer.swift를 정독한다. "어디서 포트 19789에 바인딩하는지", "왜 IPv4 loopback만 허용하는지" 주석을 찾아 표시한다.
Palmier Pro를 참고해, 별도 작은 프로젝트에서 영상 2개를 AVMutableComposition으로 이어 붙이고 AVVideoCompositionLayerInstruction으로 한쪽을 반투명하게 겹친 뒤 AVAssetExportSession으로 내보낸다.
Agent/Tools/ToolDefinitions.swift에 도구를 1개 정의하고(예: "모든 클립 볼륨을 X로"), ToolExecutor+OOO.swift에 실행 로직을 붙여 Timeline 변경으로 번역한다. 빌드 후 Claude가 그 도구를 호출하는지 확인한다.
Palmier Pro를 100% 소화하는 8주 코스(주당 6~8시간 가정). Swift 기초가 있다는 전제.
| 주차 | 주제 | 학습 자료 / 할 일 |
|---|---|---|
| 1주차 | Swift 6.2 · 모던 동시성 | @Observable·@MainActor·Sendable·actor 개념. strict concurrency 감 잡기. |
| 2주차 | SwiftUI + AppKit 하이브리드 | NSApplication 수동 부팅·NSDocument. App/·Project/ 정독. |
| 3주차 | AVFoundation 기초 | AVPlayer·AVMutableComposition·CMTime. 실습 4 전반. |
| 4주차 | 합성·내보내기 심화 | CompositionBuilder.swift 정독. layer instruction·CoreAnimationTool. |
| 5주차 | 타임라인 데이터 모델 | Models/Timeline.swift·Keyframe. 프레임 좌표·트림·배속 계산. |
| 6주차 | MCP 프로토콜 · Swift SDK | MCP 개념·modelcontextprotocol/swift-sdk. Agent/MCP/ 정독. 실습 1~3. |
| 7주차 | 에이전트 루프 · 도구 설계 | AgentService.swift·ToolDefinitions.swift. 실습 5. |
| 8주차 | 온디바이스 ML · 백엔드 | Apple Speech 전사 · SigLIP CoreML 검색 · Convex/Clerk 연동 읽기. |
이 문서와 레포에 등장한 용어를 한자리에.
| 용어 | 의미 |
|---|---|
| Palmier Pro | Swift로 만든 macOS 네이티브 AI 영상 편집기. 타임라인 내장 생성 + MCP 서버. |
| MCP | Model Context Protocol. 에이전트가 외부 도구에 접근하는 표준 규약("AI의 USB-C"). |
| MCP 서버 / 클라이언트 | 도구를 제공하는 쪽(앱) / 도구를 쓰는 쪽(Claude·Cursor·Codex). |
| AVFoundation | 애플의 영상·오디오 표준 프레임워크. 재생·합성·내보내기 담당. |
| AVMutableComposition | 여러 클립·트랙을 하나의 가상 타임라인으로 합치는 AVFoundation 객체. |
| LayerInstruction | 합성 시 클립의 위치·불투명도·크롭을 지정하는 "지시서"(AVVideoCompositionLayerInstruction). |
| AVAssetExportSession | 합성 결과를 H.264/H.265/ProRes 파일로 내보내는 AVFoundation 객체. |
| Metal / CoreImage | 애플 GPU 그래픽 · 이미지 처리. 여기선 알파 정규화·로티 굽기 등 좁게 사용. |
| @Observable / @MainActor | 애플의 최신 상태 관찰 / 메인 스레드 격리 표시. 모던 SwiftUI 상태 관리. |
| strict concurrency | Swift의 엄격한 동시성 검사. 데이터 경쟁을 컴파일 단계에서 막음(Sendable 등). |
| 키프레임(keyframe) | 시간에 따라 속성(위치·불투명도 등)이 변하는 애니메이션 지점. 클립 기준 상대 위치. |
| 리플 편집(ripple) | 한 구간을 지우면 뒤 클립들이 빈틈을 메우며 당겨지는 편집. ripple_delete_ranges. |
| loopback / 127.0.0.1 | "내 컴퓨터 자신" 주소. 여기에만 서버를 묶으면 같은 기기에서만 접속 가능(보안). |
| Network.framework | 애플의 저수준 네트워킹(NWListener/NWConnection). MCP HTTP 서버를 직접 구현. |
| BYOK | Bring Your Own Key. 내 Anthropic API 키를 직접 꽂아 쓰는 방식(Keychain 저장). |
| Convex | 실시간 반응형 백엔드. 생성 작업 상태를 구독으로 밀어줌(폴링 불필요). |
| Clerk | 로그인·세션(JWT) 인증 SDK. 생성형 AI 과금·계정의 기반. |
| SigLIP 2 | 이미지·글을 같은 벡터 공간에 두는 비전 모델. 온디바이스 의미 검색에 사용. |
| CoreML | 애플 온디바이스 ML 추론 엔진(Neural Engine 활용). SigLIP을 기기에서 실행. |
| SpeechAnalyzer | macOS 26의 새 음성 전사 API. 자막·캡션을 인터넷 없이 생성. |
| Sparkle | macOS 자동 업데이트 프레임워크. appcast.xml의 서명된 DMG를 읽어 갱신. |
| SPM | Swift Package Manager. 의존성·빌드 관리(Package.swift). |
| Swift Testing | XCTest를 잇는 새 테스트 프레임워크(@Test·#expect). 이 레포 전면 채택. |
| .mcpb | Claude Desktop 확장 번들. 앱에 동봉돼 원클릭으로 MCP 설치. |
원문·SDK·관련 기술 더 파기.