Lovable
✋ 소개
Lovable은 실제 운영 중인 Lovable을 클론한 사이드 프로젝트입니다. 자연어 대화만으로 웹 애플리케이션을 생성할 수 있는 AI 기반 풀스택 플랫폼으로, 사용자가 채팅으로 원하는 앱을 설명하면 AI 에이전트가 코드를 생성하고 샌드박스 환경에서 실시간으로 실행하여 즉시 결과를 확인할 수 있습니다.
데모🧑🤝🧑 구성원
- 프론트엔드 및 백엔드 : 1명
💻 기술 스택
- Next.js, React, TypeScript
- tRPC, Prisma, PostgreSQL
- NextAuth (GitHub OAuth)
- Inngest, Inngest Agent Kit
- E2B Code Interpreter
- OpenAI GPT-4.1
- Tailwind CSS, shadcn/ui
- TanStack React Query, React Hook Form
- Zod, SuperJSON
- Prism.js
📁 프로젝트 구조
src/
├── app/ # Next.js App Router
│ ├── (dashboard)/ # 대시보드 (인증 필요)
│ │ └── (routes)/dashboard/
│ │ ├── home/ # 홈 페이지
│ │ ├── projects/ # 프로젝트 목록
│ │ │ └── [projectId]/ # 프로젝트 상세
│ │ └── analytics/ # 분석 페이지
│ ├── (public)/ # 공개 페이지
│ │ └── (routes)/
│ │ ├── page.tsx # 랜딩 페이지
│ │ └── pricing/ # 요금제 페이지
│ └── api/
│ ├── auth/ # NextAuth 핸들러
│ ├── trpc/ # tRPC 엔드포인트
│ └── inngest/ # Inngest 웹훅
├── components/ # React 컴포넌트
│ ├── ui/ # shadcn/ui 컴포넌트
│ ├── projects/ # 프로젝트 관련 컴포넌트
│ ├── file-explorer.tsx # 파일 탐색기
│ ├── code-view/ # 코드 뷰어
│ └── tree-view.tsx # 파일 트리
├── server/ # 백엔드 로직
│ ├── api/routers/ # tRPC 라우터
│ ├── auth/ # 인증 설정
│ └── db.ts # Prisma 클라이언트
├── inngest/ # AI 에이전트 워크플로우
│ ├── client.ts # Inngest 클라이언트
│ ├── functions.ts # 코드 에이전트 정의
│ └── utils.ts # 유틸리티
└── prompt.ts # AI 시스템 프롬프트
🏗️ 아키텍처
아키텍처
사용자의 메시지는 다음과 같은 흐름으로 처리됩니다.
- 사용자가 채팅으로 원하는 앱을 설명
- tRPC를 통해 메시지가 서버로 전달
- Inngest 이벤트 큐에 작업 등록
- AI 에이전트(GPT-4.1)가 E2B 샌드박스에서 코드 생성 및 실행
- 생성된 파일과 샌드박스 URL이 데이터베이스에 저장
- React Query가 5초 간격으로 폴링하여 UI 실시간 업데이트
🤔 왜 E2B인가
코드 생성 환경으로 E2B Code Interpreter를 선택했습니다. E2B는 클라우드 기반의 격리된 샌드박스를 제공하여, 서버에 Docker를 직접 운영하지 않고도 안전한 코드 실행 환경을 구성할 수 있습니다. 샌드박스마다 독립된 Next.js 환경이 프리셋으로 구성되어 있어, AI가 생성한 코드를 즉시 빌드하고 미리보기할 수 있습니다.
🤔 왜 Inngest인가
AI 코드 생성은 수십 초에서 수 분까지 소요될 수 있는 장시간 작업입니다. 이를 일반 API 요청-응답 사이클로 처리하면 타임아웃 문제가 발생합니다. Inngest의 이벤트 기반 워크플로우와 Agent Kit을 활용하여, 메시지 전송 시 비동기 이벤트를 발행하고 백그라운드에서 AI 에이전트가 동작하도록 설계했습니다. 이를 통해 사용자는 요청 후 즉시 응답을 받고, 생성 결과는 폴링을 통해 자연스럽게 업데이트됩니다.
내가 기여한 기능
프로젝트 생성
- 사용자가 원하는 앱을 설명하면 프로젝트가 생성되고, AI 에이전트가 코드를 생성합니다.
- 프로젝트 생성 시 tRPC mutation을 통해 데이터베이스에 저장하고, Inngest 이벤트를 트리거합니다.
프로젝트 생성
AI 채팅 및 코드 생성
- Inngest Agent Kit을 활용하여 AI 에이전트가 샌드박스 환경에서 코드를 생성합니다.
- 시스템 프롬프트로 Next.js + shadcn/ui + Tailwind CSS 환경에서의 코드 생성 규칙을 정의했습니다.
AI 채팅
실시간 미리보기 및 코드 브라우저
- 생성된 앱은 E2B 샌드박스 URL을 iframe으로 렌더링하여 실시간으로 확인할 수 있습니다.
- "Preview"와 "Code" 탭을 전환하며 생성된 코드를 Prism.js 구문 강조와 함께 탐색할 수 있습니다.
- 파일 트리를 통해 생성된 모든 파일을 계층적으로 탐색할 수 있습니다.
프로젝트 업데이트
- 기존 대화 맥락을 유지하며 추가 요청을 통해 프로젝트를 점진적으로 개선할 수 있습니다.
- 이전 대화 기록과 생성된 파일 정보가 에이전트에 전달되어 일관된 코드 수정이 가능합니다.
업데이트 요청
업데이트 결과