LLM 기반 Rails 애플리케이션 자동 구축 시스템 개발 현황

A chatbot that builds Rails apps

작성자
HackerNews
발행일
2025년 08월 19일

핵심 요약

  • 1 LLM이 Ruby on Rails 애플리케이션 코드를 직접 생성하고 수정하며 실행하는 시스템인 LlamaBot 개발이 본격화되었습니다.
  • 2 초기 LlamaPress는 LLM이 HTML/CSS/JS를 생성하여 웹페이지를 구축하는 Rails 앱으로 성공을 거두었으며, 8천 명 이상의 사용자를 확보했습니다.
  • 3 현재 LlamaBot은 FastAPI와 LangGraph 기반의 AI 에이전트가 Docker 컨테이너 간 볼륨 마운트를 통해 Rails 파일 시스템에 접근하여 실시간 코드 수정 및 반영을 목표로 합니다.

도입

지난 12개월간 LLM(거대 언어 모델)이 Ruby on Rails 애플리케이션을 직접 구축하고 실행하는 비전을 향한 꾸준한 노력이 진행되어 왔습니다. 초기 단계에서는 기술적 실현 가능성은 인지했지만, 많은 미지수가 존재했습니다. 첫 번째 결과물인 LlamaPress는 LLM이 HTML/CSS/JavaScript 코드를 생성하여 완전한 HTML 문서를 데이터베이스에 저장하고, 이를 요청 시 렌더링하는 방식으로 구현되었습니다. 이는 Rails 기반의 웹페이지 빌더로 성공적으로 출시되어 8,000명 이상의 사용자 등록과 40,000개 이상의 페이지 생성을 기록했으며, OpenAI의 무료 크레딧 프로그램을 활용하여 프리미엄 서비스로 제공되었습니다. 비록 스캐머 오용 사례로 인해 언론에 보도되기도 했지만, LLM이 동적으로 웹 콘텐츠를 생성하는 가능성을 입증했습니다. 그러나 이는 LLM이 Rails 스캐폴딩 명령어를 실행하고 전체 Rails 앱을 구축한다는 원래의 비전에는 미치지 못했습니다.

이제 LLM이 Rails 애플리케이션을 직접 구축하는 다음 단계로 나아갈 준비가 완료되었습니다. 이 새로운 시스템인 LlamaBot은 다음과 같은 구조로 작동합니다.

LlamaBot 아키텍처

  • 프론트엔드 인터페이스: localhost:8000에서 실행되는 FastAPI 애플리케이션은 좌측에 채팅 인터페이스를 제공하며, 우측 iFrame에는 localhost:3000에서 실행되는 LlamaPress Rails 앱의 프론트 페이지가 로드됩니다.
  • LLM 에이전트: 채팅 인터페이스는 웹소켓 연결을 통해 FastAPI로 메시지를 전송하고, 이는 LangGraph로 연결됩니다. LangGraph 내에는 ReAct 에이전트가 포함되어 있으며, 이 에이전트는 파일 시스템 읽기/쓰기, Rails 터미널 명령어 실행(스캐폴딩, Rake 태스크, 콘솔 등), Git 히스토리 코드 커밋 등의 도구 호출 기능을 가집니다.

Docker Compose 환경

전체 시스템은 단일 docker-compose.yml 파일을 통해 네 개의 컨테이너로 구성됩니다. * Ruby on Rails 컨테이너: localhost:3000에서 LlamaPress를 실행합니다. * FastAPI/LangGraph 컨테이너: localhost:8000에서 LlamaBot의 핵심 로직을 담당합니다. * Postgres 컨테이너: Rails의 데이터베이스 및 LangGraph 에이전트 체크포인트 저장에 사용됩니다. * Redis 컨테이너: 브라우저에서 Rails로의 ActionCable 웹소켓 통신을 지원합니다.

파일 시스템 접근 및 코드 수정 시연

가장 중요한 진전은 Rails Docker 컨테이너와 FastAPI Docker 컨테이너 간의 공유 볼륨 마운트를 통해 파일 시스템 접근이 가능해졌다는 점입니다. 이를 통해 FastAPI 애플리케이션 내부에서 Rails 앱 컨테이너의 파일 내용을 직접 볼 수 있습니다.

  • 볼륨 마운트 예시: yaml llamapress: volumes: - ./app:/rails/app - ./config/routes.rb:/rails/config/routes.rb - ./db:/rails/db llamabot: volumes: - ./app:/app/app/rails/app - ./config/routes.rb:/app/app/rails/config/routes.rb - ./db:/app/app/rails/db - ./LlamaBot/app:/app/app
  • LLM의 파일 탐색: 디버깅 세션을 통해 LLM이 Rails 앱의 app, config, db 디렉토리를 탐색하고, app/controllers, app/models, app/views 등 하위 디렉토리의 파일 목록을 성공적으로 확인하는 것이 입증되었습니다.
  • 코드 수정 시연: LLM은 app/views/devise/registrations/new.html.erb 파일의 h1 태그 내용을 “Build a website in seconds!”에서 “Hello world from Leonardo?”로 성공적으로 변경했습니다. 이는 LLM이 Rails 애플리케이션 코드를 직접 읽고 쓸 수 있음을 의미합니다.

이러한 파일 시스템 접근 능력은 LLM이 Rails 애플리케이션의 구조를 이해하고, 사용자의 요청에 따라 코드를 직접 수정할 수 있는 기반을 마련합니다.

결론

현재까지의 개발을 통해 LLM이 Ruby on Rails 애플리케이션의 파일 시스템에 접근하고 코드를 수정하는 핵심 기능이 성공적으로 검증되었습니다. 특히, Docker 컨테이너 간 볼륨 마운트를 활용하여 LLM이 생성한 코드 변경 사항이 로컬 파일 시스템에 영구적으로 저장됨을 확인한 것은 중요한 진전입니다. 다음 단계로는 Rails 서버의 자동 재시작 또는 개발 모드에서의 핫 리로드 기능을 구현하여 코드 변경 사항이 즉시 반영되도록 하는 것이 시급합니다. 또한, LLM의 응답 대기 시간 동안 사용자 경험을 개선하고, 실수 발생 시 Git을 통한 커밋 롤백 기능을 추가하여 안정적인 개발 환경을 구축할 예정입니다. 이러한 기능들이 통합된다면, LLM이 Ruby on Rails 애플리케이션을 완전히 이해하고, 실시간으로 개발 및 유지보수하는 혁신적인 플랫폼이 탄생할 것으로 기대됩니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!