Ruby LM: AI 앱 개발을 위한 Ruby/Rails의 단순성과 확장성

[Euruko 2025] “RubyLLM: Making AI Development Beautiful Again” – Carmine Paolino (Germany)

작성자
EuRuKo
발행일
2025년 11월 10일

핵심 요약

  • 1 Ruby LM은 Python 기반의 복잡한 AI 프레임워크와 달리 간결한 추상화를 통해 AI 개발을 혁신하며, Ruby의 강점을 활용합니다.
  • 2 Ruby LM은 다양한 LLM 모델 및 제공업체를 상품처럼 취급하고, Rails와의 긴밀한 통합을 통해 빠르고 확장 가능한 AI 애플리케이션 구축을 지원합니다.
  • 3 Ruby/Rails 커뮤니티는 Ruby LM을 통해 AI 앱 개발의 새로운 시대를 주도할 기회를 맞이했으며, 웹 앱 개발에서의 성공을 AI 분야로 확장할 수 있습니다.

도입

본 발표는 Chatwood의 창립자이자 Ruby LM의 개발자인 Carmine Palino가 진행하며, AI 애플리케이션 개발에서 Ruby와 Ruby LM의 잠재력을 강조합니다. Carmine은 2010년부터 Ruby에 대한 열정을 가지고 있었으나, AI 분야에서는 주로 Python을 사용해왔다고 설명합니다. 과거 AI 개발은 모델 학습에 중점을 두어 Python이 지배적이었지만, 현재 AI는 API 호출을 통한 제품 개발로 패러다임이 전환되고 있으며, 이는 웹 애플리케이션 개발에 강점을 가진 Ruby 개발자들에게 새로운 기회를 제공한다고 역설합니다.

Ruby LM의 철학 및 Python/LangChain 비판

Carmine은 LangChain과 같은 Python 기반 AI 프레임워크의 과도한 복잡성을 비판하며, Ruby LM이 제공하는 단순하고 자연스러운 AI 개발 방식을 강조합니다.

LangChain의 복잡성 문제

  • 불필요한 복잡성: 간단한 챗봇 구현, 프롬프트 템플릿, 멀티모달리티 처리 등에서 LangChain은 많은 클래스와 복잡한 구조를 요구합니다.

  • 일관성 없는 API: GPT-4, Claude 3.7, Gemini 등 모델에 따라 응답 구조가 달라져 코드에 불필요한 조건문이나 파싱 로직이 추가됩니다.

  • 공식 SDK의 한계: AI 모델이 빠르게 변화하는 환경에서 제공업체별 공식 SDK에 의존하는 것은 빠른 전환을 어렵게 하여 개발 속도를 저해합니다.

Ruby LM의 5가지 원칙

Ruby LM은 다음과 같은 철학을 기반으로 설계되었습니다.

  1. Simple should be simple, complex should be possible: 단순한 것은 단순하게, 복잡한 것은 가능하게.

  2. Models and providers are commodities: 모델과 제공업체는 상품이다.

  3. Convention over configuration: 설정보다 관례.

  4. Progressive disclosure: 점진적 공개.

  5. One API, one person, one machine: 하나의 API, 한 사람, 한 머신.

Ruby LM의 주요 기능 및 장점

  • 단순한 API: chat.ask와 같이 직관적인 메서드를 통해 AI와 상호작용합니다.

  • 유연한 모델 및 제공업체 전환: with_model 파라미터 하나로 Anthropic, Google, OpenAI, Vertex AI, OpenRouter, Ollama 등 11개 이상의 제공업체와 620개 이상의 모델 간 전환이 가능하며, API 차이를 자동으로 처리합니다.

  • 멀티모달리티 지원: with_image 파라미터를 통해 이미지 URL을 쉽게 전달하여 멀티모달 대화를 구현할 수 있습니다.

  • 함수 호출 (Function Calling): Tool 클래스를 상속받아 도구를 정의하고 with_tool 메서드로 쉽게 연동할 수 있습니다.

  • 구조화된 출력 (Structured Output): rublm-schema gem을 활용하여 Ruby DSL로 JSON 스키마를 정의하고 구조화된 응답을 받을 수 있습니다.

  • Rails 통합: rails generate rubylm:installrails generate rubylm:chat_ui 명령어를 통해 몇 분 안에 완전한 채팅 UI를 구축할 수 있으며, Active Record를 통해 모든 대화 및 모델 정보를 저장합니다.

  • 확장성 (Scalability): LLM 통신이 I/O 바운드 작업임을 고려하여 Puma를 Falcon으로, 기본 작업 큐를 async_job으로, Action Cable을 async_cable로 교체하여 Fiber 기반의 비동기 처리를 통해 효율적인 자원 사용과 높은 확장성을 제공합니다.

커뮤니티 반응

Ruby LM은 출시 후 단 4일 만에 Hacker News에서 1위를 차지했으며, 일주일 만에 1,700개, 현재 2,900개 이상의 GitHub 스타와 300만 다운로드를 기록하며 개발자들로부터 큰 호응을 얻고 있습니다. 많은 개발자가 Ruby LM의 단순성과 빠른 개발 속도에 찬사를 보내고 있으며, Zip Chat, Startup Jobs, Kora 등 여러 기업에서 활발히 사용되고 있습니다.

결론

Carmine Palino는 Ruby LM이 AI 애플리케이션 개발에 있어 Ruby 개발자들에게 강력한 도구를 제공한다고 결론짓습니다. Python과 JavaScript가 AI 앱 시장을 지배해왔지만, Ruby LM과 Rails의 결합은 Ruby 개발자들이 'Hello'에서 'IPO'까지 단 한 명의 개발자와 하나의 머신, 하나의 API로 AI 제품을 만들 수 있는 기회를 제공합니다. Rails가 웹 앱 세상을 변화시켰듯이, 이제 Ruby/Rails 커뮤니티는 Ruby LM을 통해 AI 앱 세상을 변화시킬 수 있는 절호의 기회를 맞이했습니다. 복잡성에서 벗어나 단순성과 생산성을 추구하는 Ruby의 정신이 AI 시대에도 빛을 발할 것입니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

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