TrendShift 딥다이브 · 2026-07-18 · Daily #21

firecrawl/open-lovable 딥다이브
— "웹사이트 주소만 던지면 몇 초 만에 React 앱으로 복제"하는 오픈소스 AI 빌더

Open Lovable채팅으로 지시하면 AI가 웹사이트를 통째로 스캔해 그것을 최신 React 앱으로 다시 만들어 주고, 그 결과를 브라우저 안 실시간 미리보기로 바로 보여주는 오픈소스 웹 앱이다. 스크래핑 회사 Firecrawl이 자사 기술을 자랑하려고 만든 예제 앱인데, 상용 서비스 Lovable.dev / v0 / bolt.new의 "AI 웹앱 빌더"를 통째로 오픈소스로 재현했다는 점 때문에 폭발적으로 퍼졌다. 핵심은 세 가지 기술의 조합이다 — Firecrawl(웹 → 마크다운 변환), Vercel AI SDK(멀티 LLM 스트리밍), 클라우드 샌드박스(생성된 코드를 실제로 실행). 이 문서는 저장소를 직접 클론해, "주소 한 줄이 어떻게 실행되는 앱으로 바뀌는가"를 27개 API 라우트와 샌드박스·컨텍스트 선택 로직 수준에서 해부한다. (저장소: firecrawl/open-lovable · Next.js 15 + React 19 + TypeScript · Vercel AI SDK v5 · Firecrawl · E2B / Vercel Sandbox · MIT License · Firecrawl 팀 · TrendShift Daily #21)
목차
  1. 프로젝트 한 줄 요약
  2. 왜 지금 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 — 주소가 앱이 되기까지
  5. 디렉토리 구조 해부
  6. 학습 포인트 — 기술별 배울 것
  7. 시스템 · 설치 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한 줄 요약

"복제하고 싶은 웹사이트 주소를 붙여넣으면, AI가 그걸 보고 새 React 앱을 짜서 그 자리에서 돌려준다."

Open Lovable은 겉보기엔 평범한 채팅 화면이다. 하지만 여기에 https://stripe.com 같은 주소를 붙여넣고 "이 랜딩페이지를 클론해줘"라고 치면, 앱은 그 사이트를 실제로 방문해 내용·디자인을 읽고 → AI에게 React 코드를 짜게 하고 → 그 코드를 클라우드 컴퓨터에서 실제로 실행해 → 결과 화면을 오른쪽 미리보기 창에 띄운다. 그 다음엔 "헤더를 파란색으로 바꿔줘" 같은 후속 지시로 부분 수정도 계속할 수 있다.

한 문장 비유

"사진 한 장 보여주면 똑같은 집을 짓고, 그 집을 실제로 지어 문까지 열어주는 건설 로봇"

보통 AI 코드 생성기는 "코드"라는 설계도만 뱉는다. 그걸 실제로 돌려보려면 사람이 직접 폴더 만들고, 패키지 설치하고, 서버 켜야 한다. Open Lovable은 그 뒷일까지 전부 자동이다 — 클라우드에 임시 컴퓨터(샌드박스)를 하나 띄우고, 생성된 코드를 거기에 심고, 필요한 부품(npm 패키지)을 알아서 설치하고, 개발 서버를 켜서 살아있는 웹페이지를 iframe으로 보여준다. "설계도 + 완공된 실물"을 한 번에 주는 셈이다.

용어
스크래핑 (Scraping) / Firecrawl
웹페이지에 실제로 접속해 그 안의 글·구조·이미지·스타일을 프로그램이 읽기 좋은 형태로 뽑아내는 것. Firecrawl은 이걸 전문으로 하는 서비스로, 지저분한 HTML을 AI가 이해하기 쉬운 깔끔한 마크다운(Markdown)과 스크린샷으로 바꿔 준다. Open Lovable은 이 변환 결과를 AI에게 "이런 사이트를 만들어줘"의 재료로 넘긴다.
용어
샌드박스 (Sandbox)
"모래놀이터"라는 뜻으로, 내 컴퓨터와 격리된 임시 실행 환경. AI가 짠 코드는 신뢰할 수 없으니 내 PC에서 바로 돌리면 위험하다. 대신 클라우드에 일회용 리눅스 컴퓨터를 띄워 거기서만 실행한다. Open Lovable은 E2B 또는 Vercel Sandbox 둘 중 하나를 골라 쓸 수 있다.

저장소는 단일 스크립트가 아니라, 주소 → 스크랩 → 코드 생성 → 샌드박스 실행 → 미리보기 파이프라인을 이루는 27개의 서버 API 라우트와, 그것을 조립한 Next.js 프론트엔드로 구성된 완성형 웹 애플리케이션이다.

2왜 지금 주목받는가

상용 "AI 웹앱 빌더"의 내부를 통째로 열어젖힌 오픈소스

① 유료 서비스(Lovable · v0 · bolt.new)의 정체를 오픈소스로 공개

2025~2026년 가장 뜨거운 제품군이 "프롬프트 → 앱" 빌더다. Lovable.dev, Vercel v0, StackBlitz bolt.new 같은 서비스가 대표적인데, 대부분 비공개 SaaS다. Open Lovable은 "그 안에서 실제로 무슨 일이 벌어지는가"를 코드로 전부 보여준다. 특히 "AI가 코드를 짜는 부분"보다 "짠 코드를 실제로 실행해 미리보기로 띄우는 배관(plumbing)"이 훨씬 어려운데, 이 저장소는 그 배관을 통째로 공개했다.

비유

유명 프랜차이즈 햄버거의 "특제 소스 레시피"가 공개된 것과 같다. 완성된 버거(유료 서비스 결과물)는 다들 먹어봤지만, 주방에서 재료를 어떤 순서로 어떻게 조합하는지를 처음으로 전 과정 공개한 것이다. 게다가 라이선스가 MIT라, 그 레시피로 내 가게를 차려도 된다.

② Firecrawl의 "쇼케이스" 전략이 통했다

이 앱을 만든 곳은 스크래핑 API 회사 Firecrawl이다. 자사 API가 얼마나 강력한지 말로 설명하는 대신, "우리 API를 쓰면 이런 킬러 앱을 만들 수 있다"를 완성품으로 증명했다. 개발자 마케팅(DevRel)의 교과서적 사례로, 결과적으로 Firecrawl 인지도와 이 저장소 인기가 함께 폭발했다.

③ "멀티 LLM · 멀티 샌드박스"라는 실전 설계

특정 회사에 종속되지 않는다. AI 모델은 OpenAI(GPT-5) · Anthropic(Claude) · Google(Gemini 3 Pro) · Groq(Kimi K2)를 코드 한 줄 안 바꾸고 갈아끼울 수 있고, 실행 환경도 E2B ↔ Vercel Sandbox를 SANDBOX_PROVIDER 환경변수 하나로 전환한다. "실무에서 벤더 종속을 어떻게 피하는가"의 살아있는 예제다.

핵심 포인트
단순 "챗봇 + 코드 붙여넣기"가 아니다

이 저장소의 진짜 가치는 생성된 코드를 실제로 실행 가능한 상태로 만드는 자동화에 있다 — 패키지 자동 감지·설치, Vite 개발서버 기동, 빌드 에러 자동 감지·복구, 부분 수정을 위한 "관련 파일만 골라내는" 컨텍스트 선택까지. AI 앱을 "데모"가 아니라 "돌아가는 제품"으로 만드는 노하우가 여기 다 들어있다.

3기술 스택 전체 지도

프론트엔드 · AI 계층 · 실행(샌드박스) 계층으로 나눠 보기

프론트엔드 — Next.js 15 위의 채팅 + 미리보기 UI

기술버전역할
Next.js15.4.3App Router + Turbopack. UI와 27개 API 라우트를 한 프로젝트에 담는 풀스택 프레임워크
React19.1.0채팅창·코드 뷰어·iframe 미리보기 등 UI 구성
TypeScript5.x전 계층 타입 안정성. 파일·대화·샌드박스 타입을 types/에 정의
Tailwind CSS3.4.17유틸리티 CSS. colors.json·커스텀 config로 디자인 토큰 관리
Radix UI다수shadcn/ui 계열 접근성 프리미티브(다이얼로그·탭·툴팁 등 25종+)
Jotai2.14원자(atom) 기반 전역 상태관리. atoms/에 상태 정의
Framer Motion / motion12.23애니메이션. 코드 생성 진행 상황을 부드럽게 표현
react-syntax-highlighter15.6생성된 코드에 문법 하이라이팅

AI 계층 — Vercel AI SDK로 모델을 갈아끼운다

기술역할
ai (Vercel AI SDK v5)핵심. streamText()로 LLM 응답을 토큰 단위 스트리밍. 코드가 생성되는 걸 실시간으로 보여줌
@ai-sdk/openai · anthropic · google · groq4개 프로바이더 어댑터. provider-manager.ts가 모델 문자열을 보고 알맞은 클라이언트를 반환
기본 모델google/gemini-3-pro-preview. 선택지: GPT-5, Claude Sonnet 4, Kimi K2(Groq)
@mendable/firecrawl-js 4.3웹사이트 → 마크다운·HTML·스크린샷 변환. 코드 생성의 "입력 재료"
Morph Fast Apply (선택)morph-fast-apply.ts. 부분 수정 시 전체 재생성 대신 빠른 diff 적용으로 속도 향상
용어
Vercel AI SDK — 프로바이더 추상화
OpenAI·Anthropic·Google은 각자 API 모양이 다르다. AI SDK는 이걸 streamText({ model, prompt })라는 하나의 공통 인터페이스로 감싼다. 그래서 모델을 바꿔도 앱 코드는 그대로다. Open Lovable은 여기에 더해 AI_GATEWAY_API_KEY가 있으면 Vercel AI Gateway로 몰아 넣는 분기까지 있다.

실행(샌드박스) 계층 — 코드를 실제로 돌리는 곳

기술역할
@vercel/sandbox 0.0.17기본 실행 환경. node22 런타임, 15분 타임아웃, 포트 3000
@e2b/code-interpreter 2.0대안 실행 환경. Vite 개발서버(포트 5173), 30분 타임아웃
SandboxFactory / SandboxManager팩토리 패턴으로 프로바이더를 생성하고, 매니저 싱글턴이 샌드박스 수명주기(생성·재사용·정리)를 관리
Vite샌드박스 안에서 생성된 React 앱을 구동하는 초고속 개발서버. 에러 로그를 앱이 감시·복구
비유

세 계층을 요리에 빗대면 — Firecrawl은 시장에서 재료를 손질해 오는 사람(웹 → 깔끔한 텍스트), AI SDK는 레시피대로 요리하는 셰프(텍스트 → 코드), 샌드박스는 실제로 불을 켜고 조리하는 주방(코드 → 살아있는 앱)이다. Open Lovable의 27개 API는 이 세 사람 사이를 오가는 주문서들이다.

4아키텍처 심화 — 주소가 앱이 되기까지

한 번의 "클론해줘" 요청이 통과하는 전체 파이프라인
┌──────────────────────────────────────────────────────────────┐ │ 사용자: "https://example.com 이 사이트 클론해줘" │ └───────────────────────────┬──────────────────────────────────┘ │ ① /api/scrape-url-enhanced (Firecrawl) 웹사이트 방문 → markdown + html + screenshot 추출 /api/extract-brand-styles 로 색·폰트 등 브랜드 스타일 분석 │ ▼ ② /api/create-ai-sandbox(-v2) (Vercel / E2B) 클라우드에 빈 리눅스 컴퓨터 1대 기동 (Vite 템플릿 준비) │ ▼ ③ /api/generate-ai-code-stream (Vercel AI SDK) 스크랩 결과 + 현재 파일 목록을 프롬프트로 조립 streamText() 로 React 코드를 토큰 단위 스트리밍 └ 부분 수정이면: analyze-edit-intent + context-selector 로 "고칠 파일만" 골라 surgical(외과수술) 편집 │ ▼ ④ /api/apply-ai-code(-stream) 생성된 코드를 파싱해 샌드박스 안 파일로 기록 │ ▼ ⑤ /api/detect-and-install-packages 코드의 import 문을 스캔 → 필요한 npm 패키지 자동 설치 │ ▼ ⑥ Vite 개발서버 기동 + 에러 감시 루프 monitor-vite-logs / check-vite-errors / restart-vite 빌드 에러가 나면 자동 감지 → AI에게 넘겨 복구 │ ▼ ⑦ 프론트엔드 iframe 에 미리보기 렌더 (localhost:3000/5173) │ ⇆ 후속 지시("헤더 파란색으로") → ③으로 되돌아가 반복

핵심 설계 패턴 ① — 프로바이더 추상화(팩토리 패턴)

실행 환경(E2B/Vercel)과 AI 모델(4개 회사) 양쪽 모두 "구현을 갈아끼워도 호출부는 그대로"인 구조다. 샌드박스는 SandboxFactory.create()가 환경변수를 보고 알맞은 프로바이더 객체를 만들고, SandboxManager 싱글턴이 이를 캐싱·재사용한다.

// lib/sandbox/factory.ts — 환경변수 하나로 실행환경 전환
static create(provider?: string) {
  const selected = provider || process.env.SANDBOX_PROVIDER || 'e2b';
  switch (selected.toLowerCase()) {
    case 'e2b':    return new E2BProvider(config);
    case 'vercel': return new VercelProvider(config);
  }
}

핵심 설계 패턴 ② — "외과수술식" 부분 편집

가장 영리한 부분이다. "헤더 색만 바꿔줘" 같은 요청에 앱 전체를 다시 생성하면 느리고, 멀쩡한 다른 코드까지 망가진다. Open Lovable은 요청을 먼저 분석해 고쳐야 할 파일만 골라 AI에게 넘긴다.

사용자 요청 "헤더를 파란색으로" │ ▼ lib/edit-intent-analyzer.ts 정규식 패턴 매칭으로 편집 의도(EditType) 분류: UPDATE_COMPONENT · ADD_FEATURE · FIX_ISSUE · UPDATE_STYLE · REFACTOR · FULL_REBUILD · ADD_DEPENDENCY │ ▼ lib/context-selector.ts 파일 매니페스트(file-manifest)에서 "헤더" 관련 파일만 선별 → 전체 20개 파일 대신 Header.tsx 1개만 컨텍스트로 │ ▼ "당신은 외과의사입니다. 캔버스를 다시 칠하는 화가가 아니라, 정밀하게 절개하는 SURGEON 입니다" (시스템 프롬프트)
용어
파일 매니페스트 (File Manifest)
샌드박스 안 모든 파일의 목록 + 요약 정보(경로·타입·export·import 관계·컴포넌트 정보). AI에게 "지금 프로젝트가 이렇게 생겼다"를 압축해서 알려주는 지도다. 이 지도가 있어야 "관련 파일만 골라내는" 컨텍스트 선택이 가능하다. types/file-manifest.ts에 정의.

핵심 설계 패턴 ③ — 대화 상태와 컨텍스트 폭주 방지

연속 편집을 지원하려면 대화 이력을 기억해야 하지만, 무한정 쌓이면 토큰 한도를 넘겨(context overflow) 비용·오류가 폭증한다. Open Lovable은 서버 전역 global.conversationState에 메시지를 저장하되, 메시지 20개 초과 시 최근 15개만 남기고 잘라낸다.

// generate-ai-code-stream — 컨텍스트 폭주 방지
if (conversationState.context.messages.length > 20) {
  conversationState.context.messages =
    conversationState.context.messages.slice(-15); // 최근 15개만
}

핵심 설계 패턴 ④ — 자가 치유(self-healing) 빌드 루프

AI가 짠 코드는 종종 빌드 에러를 낸다. Open Lovable은 monitor-vite-logs로 Vite 로그를 감시하다 에러가 뜨면 report-vite-error로 수집하고, 이를 다시 AI에게 넘겨 사람 개입 없이 스스로 고치는 루프를 돈다. build-validator.ts가 적용 전 유효성을 점검한다.

주의
"자동 진실 복구(truncation recovery)"는 기본 비활성

스트리밍 중 응답이 잘리면 이어받는 기능이 있지만, app.config.ts에서 enableTruncationRecovery: false로 꺼져 있다. 이유가 코드에 적혀 있다 — "오탐(false positive)이 너무 많아서". 실전에서 자동 복구가 오히려 문제를 키울 수 있다는 교훈이다.

5디렉토리 구조 해부

27개 API 라우트가 어디서 무엇을 하는가
open-lovable/ ├── app/ ← Next.js App Router │ ├── page.tsx / landing.tsx 메인 진입 · 랜딩 │ ├── builder/page.tsx 빌더(채팅+미리보기) 화면 │ ├── generation/page.tsx 생성 진행 화면 │ ├── layout.tsx globals.css 공통 레이아웃 · 전역 스타일 │ └── api/ ← 27개 서버 라우트(핵심) │ ├── scrape-url-enhanced/ Firecrawl 스크랩(md+html+shot) │ ├── scrape-website/ scrape-screenshot/ │ ├── extract-brand-styles/ 색·폰트 브랜드 분석 │ ├── create-ai-sandbox(-v2)/ 샌드박스 기동 │ ├── generate-ai-code-stream/ ★코드 생성(1895줄, 심장부) │ ├── apply-ai-code(-stream)/ 생성 코드 → 파일 기록 │ ├── analyze-edit-intent/ 편집 의도 분석 │ ├── detect-and-install-packages/ import 스캔→패키지 설치 │ ├── install-packages(-v2)/ │ ├── run-command(-v2)/ 샌드박스 내 명령 실행 │ ├── monitor-vite-logs/ check-vite-errors/ │ ├── report-vite-error/ restart-vite/ 자가치유 루프 │ ├── get-sandbox-files/ sandbox-status/ sandbox-logs/ │ ├── kill-sandbox/ create-zip/ 정리 · 내보내기 │ └── conversation-state/ search/ ├── lib/ ← 핵심 로직(라우트가 아닌 두뇌) │ ├── ai/provider-manager.ts 4개 LLM 프로바이더 해석 │ ├── sandbox/factory.ts manager.ts providers/ 샌드박스 추상화 │ ├── context-selector.ts 고칠 파일만 선별 │ ├── edit-intent-analyzer.ts 편집 의도 분류 │ ├── file-parser.ts file-manifest 파일 파싱·매니페스트 │ ├── morph-fast-apply.ts 빠른 diff 적용 │ └── build-validator.ts edit-examples.ts ├── components/ ← UI(Radix/shadcn 223개 파일) ├── atoms/ ← Jotai 전역 상태 ├── hooks/ types/ config/ ← 훅 · 타입 · app.config.ts ├── styles/ public/ utils/ └── package.json tailwind.config.ts .env.example
읽는 순서 팁
이 저장소를 처음 볼 때

.env.example로 어떤 외부 서비스가 필요한지 파악 → ② config/app.config.ts로 모델·샌드박스 설정을 훑고 → ③ app/api/generate-ai-code-stream/route.ts(1895줄)가 심장부이니 여기서 streamText·컨텍스트 조립 부분을 읽고 → ④ lib/sandbox/lib/context-selector.ts로 실행·편집 로직을 확인하면 전체 그림이 잡힌다.

6학습 포인트 — 기술별 배울 것

이 저장소가 특히 잘 가르쳐 주는 것들

① LLM 응답 스트리밍 (Vercel AI SDK)

streamText()로 코드가 생성되는 과정을 토큰이 나오는 즉시 화면에 흘려보내는 패턴을 배울 수 있다. "다 되면 한 번에 보여주기"와 "실시간으로 흘리기"의 UX 차이는 크다. 서버 라우트에서 ReadableStream을 반환하고 프론트가 이를 소비하는 전형이 여기 다 있다.

② 벤더 종속을 피하는 추상화 설계

모델도, 실행환경도 인터페이스 뒤에 숨겼다. provider-manager.ts(모델)와 SandboxFactory(실행)를 비교해 읽으면, "교체 가능한 구현"을 어떻게 설계하는가가 손에 잡힌다. 새 모델·새 샌드박스를 추가할 때 어디만 고치면 되는지가 명확하다.

③ AI에게 "적은 컨텍스트"를 주는 기술

AI 앱 성능·비용의 핵심은 프롬프트에 뭘 넣느냐다. edit-intent-analyzercontext-selector 조합은 "요청과 무관한 파일은 빼고, 고칠 파일만 넣는" RAG의 코드 버전이다. 파일 매니페스트로 프로젝트를 요약하는 아이디어가 특히 배울 만하다.

④ 신뢰할 수 없는 코드를 안전하게 실행하기

AI 생성 코드를 내 서버에서 바로 돌리는 건 위험하다. 샌드박스로 격리하고, 수명주기(생성·타임아웃·정리)를 관리하는 SandboxManager"코드 실행 as a service"를 만들 때의 표준 패턴이다.

실습 아이디어

작게 시작하는 법

전체를 돌리려면 API 키가 여러 개 필요하다. 대신 한 조각만 떼어 실습하자 — (1) Firecrawl 무료 키로 scrape-url-enhanced만 호출해 임의 사이트를 마크다운으로 뽑아보기, (2) AI SDK로 "이 마크다운을 React 컴포넌트로 바꿔줘" 프롬프트만 실행해보기, (3) E2B 무료 티어로 "Hello World" 코드를 샌드박스에 심고 실행 로그 받아보기. 세 조각을 각각 이해한 뒤 연결하면 전체가 보인다.

7시스템 · 설치 요구사항

돌려보려면 무엇이 필요한가
항목요구사항 / 비고
런타임Node.js(권장 22 계열) · pnpm(또는 npm/yarn) · bun.lock도 제공
필수 키FIRECRAWL_API_KEY — 스크래핑. 없으면 클론 기능 자체가 동작 안 함
AI 키(택1 이상)GEMINI / ANTHROPIC / OPENAI / GROQ 중 최소 하나. 기본값은 Gemini 3 Pro
샌드박스(택1)Vercel Sandbox(기본, OIDC 토큰 또는 PAT) 또는 E2B(E2B_API_KEY)
Fast Apply(선택)MORPH_API_KEY — 부분 수정 속도 향상(없어도 동작)
실행pnpm install.env.local 작성 → pnpm dev → localhost:3000
비용 주의
"오픈소스=무료"가 아니다

코드는 MIT라 공짜지만, Firecrawl·LLM·샌드박스는 각각 유료 API다. 웹사이트 하나를 클론할 때마다 스크랩 1회 + 여러 번의 LLM 호출 + 샌드박스 실행 시간이 과금된다. 무료 티어로 학습은 가능하지만, 실사용 시 API 비용을 반드시 모니터링해야 한다.

8직접 해볼 수 있는 실습 과제

난이도별로 골라 도전

① Firecrawl 단독 체험 난이도 ★☆☆

저장소 없이도 가능. Firecrawl 무료 키를 발급받아 좋아하는 사이트 주소를 /v1/scrapeformats: ['markdown','screenshot']로 보내보자. "웹페이지가 AI가 읽기 좋은 텍스트로 어떻게 바뀌는가"를 눈으로 확인하는 것이 목표.

② 모델 갈아끼우기 난이도 ★★☆

저장소를 로컬 구동한 뒤 config/app.config.tsdefaultModelavailableModels를 수정해 다른 LLM으로 같은 사이트를 클론해보자. Gemini vs Claude vs GPT-5의 생성 코드 품질·속도 차이를 비교하면 프로바이더 추상화의 가치를 체감한다.

③ 편집 의도 패턴 추가 난이도 ★★☆

lib/edit-intent-analyzer.ts의 정규식 패턴에 새 EditType(예: "접근성 개선")을 추가하고, context-selector가 알맞은 파일을 고르게 연결해보자. "AI에게 무엇을 보여줄지 고르는 규칙"을 직접 짜보는 실습.

④ 새 샌드박스 프로바이더 추가 난이도 ★★★

lib/sandbox/providers/SandboxProvider 인터페이스를 구현한 제3의 프로바이더(예: 로컬 Docker)를 추가하고 factory.ts에 등록해보자. 추상화가 잘 돼 있으면 호출부를 하나도 안 고치고 새 실행환경이 붙는 것을 확인.

⑤ 자가치유 루프 강화 난이도 ★★★

monitor-vite-logsreport-vite-error → 재생성 루프에 "3번 실패하면 사람에게 알린다" 같은 서킷 브레이커를 넣어보자. AI 자동 복구가 무한 루프에 빠지지 않게 하는 실전 안전장치 설계.

9관련 기술 심화 학습 로드맵

이 저장소를 발판으로 4주 확장
주차주제할 일
1주차AI SDK 스트리밍Vercel AI SDK 문서로 streamText·generateObject·tool calling 학습. 간단한 스트리밍 챗 직접 구현
2주차코드 실행 샌드박스E2B·Vercel Sandbox 공식 문서. "코드 인터프리터"를 붙인 미니 에이전트 만들기
3주차컨텍스트 엔지니어링RAG·파일 매니페스트·컨텍스트 압축 기법. 큰 코드베이스를 요약해 LLM에 넣는 실험
4주차에이전트 자가치유에러 감지→재시도→검증 루프, 서킷 브레이커, 관찰가능성(observability) 설계

10핵심 키워드 사전

이 문서에서 나온 용어 총정리
용어
Firecrawl웹페이지를 AI용 마크다운·스크린샷으로 변환하는 스크래핑 서비스. 이 앱의 입력 담당
Vercel AI SDK여러 LLM을 하나의 공통 인터페이스로 감싸는 TypeScript 라이브러리. streamText가 핵심
샌드박스 (E2B / Vercel)AI가 짠 코드를 안전하게 격리 실행하는 클라우드 임시 컴퓨터
Vite샌드박스 안에서 React 앱을 구동하는 초고속 개발서버
스트리밍 (streaming)응답 전체를 기다리지 않고 토큰이 나오는 즉시 화면에 흘려보내는 방식
팩토리 패턴객체 생성을 전담 함수/클래스에 위임해 구현 교체를 쉽게 하는 설계 패턴
파일 매니페스트프로젝트 모든 파일의 경로·타입·의존관계 요약. AI에게 주는 "프로젝트 지도"
편집 의도 (Edit Intent)사용자 요청을 UPDATE_STYLE·ADD_FEATURE 등으로 분류한 것. 고칠 파일 선별의 기준
surgical edit전체 재생성 대신 관련 파일만 정밀 수정하는 "외과수술식" 편집
컨텍스트 오버플로우대화·파일이 너무 쌓여 LLM 토큰 한도를 넘는 것. 오래된 메시지를 잘라 방지
자가치유 (self-healing)빌드 에러를 스스로 감지·복구하는 루프
Morph Fast Apply부분 수정 시 전체 재생성 대신 빠른 diff를 적용하는 선택적 가속기

11참고 링크

더 파고들 곳
자료주소 / 위치
저장소github.com/firecrawl/open-lovable
코드 생성 심장부app/api/generate-ai-code-stream/route.ts (1895줄)
설정 총괄config/app.config.ts · .env.example
샌드박스 추상화lib/sandbox/factory.ts · sandbox-manager.ts · providers/
컨텍스트 선택lib/context-selector.ts · edit-intent-analyzer.ts
모델 해석lib/ai/provider-manager.ts
Firecrawl 문서firecrawl.dev · 상용 클라우드 버전: lovable.dev
Vercel AI SDKsdk.vercel.ai · E2B: e2b.dev