Ruby 웹 애플리케이션에 LLM을 통합하는 실용적인 방법론

XO Ruby New Orleans 2025 - The State of the Ruby AI Toolbox by Thomas Carr

작성자
Ruby AI News
발행일
2025년 12월 27일

핵심 요약

  • 1 Ruby 웹 애플리케이션에 LLM 통합을 위한 실용적인 접근 방식을 제시하며, 현재 사용 가능한 Ruby AI Gem 3가지(Ray, Ruby LLM, Rafe)를 비교 분석합니다.
  • 2 LLM 통합의 핵심 개념인 Chat Completion API, Tool/Function Calls, Agent의 정의와 Ruby Gem별 구현 방식을 상세히 설명합니다.
  • 3 AI 개발 환경의 변화와 Ruby 커뮤니티의 성장을 강조하며, 실제 프로덕션 환경에서 AI 기능을 구축하는 데 필요한 도구와 패턴을 탐색합니다.

도입

토마스 카(Thomas Carr)는 Ruby 개발자로서, 애슈빌 노스캐롤라이나에 거주하며 소프트웨어 개발 시장의 어려움을 경험했습니다. 그는 Core Pilot이라는 항공 애프터마켓을 위한 AI 기반 ERP 회사에서 근무하며 지난 2년간 Ruby on Rails와 Hotwire를 사용하여 제품을 개발해왔습니다. 본 강연에서 그는 '의무적인 AI 강연'이라는 주제로, CS 배경이 없는 개발자들도 Ruby 웹 애플리케이션에 LLM 통합을 구축할 수 있는 실용적인 방법을 제시합니다. 특히, AI 기술을 활용한 기능 개발에 대한 회의적인 시각과 시장 변화, 그리고 Ruby 커뮤니티의 성장에 주목하며, 현재 프로덕션 환경에서 바로 사용할 수 있는 Ruby AI Gem 3가지와 추가 라이브러리들을 소개하고 비교 분석합니다.

LLM 통합의 핵심 기능

LLM 통합은 크게 세 가지 핵심 기능으로 구성됩니다.

  • Chat Completion API: OpenAI, Anthropic 등 LLM 제공업체의 턴 기반 API를 래핑하는 기능입니다. 텍스트, 이미지 등 다양한 입력과 모델 선택 옵션을 제공하며, 구조화된 데이터 추출 및 응답 스트리밍 기능이 중요합니다. MCP(Model Context Protocol)는 애플리케이션 외부에 존재하는 함수를 의미합니다.

  • Tool/Function Calls: 애플리케이션 내부에 존재하는 함수로, LLM에 특정 도메인 지식이나 외부 API 접근 권한을 부여합니다. 날씨 서비스와 같은 고전적인 예시를 통해 LLM이 필요한 인수를 요청하고 데이터를 반환받는 방식으로 작동합니다.

  • Agents: Chat Completion API와 Tool을 결합하여 특정 작업을 수행하는 주체입니다. 연구 에이전트와 같이 URL fetch, 임베딩 생성, 요약 등의 작업을 순차적으로 수행하며 복잡한 워크플로우를 구축할 수 있습니다.

Ruby AI Gem 비교 분석

강연자는 세 가지 주요 Ruby AI Gem을 소개하며 각 Gem의 특징과 구현 방식을 비교합니다.

1. Ray

  • 가장 Rails 의존도가 낮은 프레임워크 독립적인 Gem입니다. Active Record에 대한 이해가 없어 데이터베이스 저장 로직을 직접 구현해야 하는 유연성을 제공합니다.

  • Obie Fernandez가 Olympia 비즈니스에서 개발한 추상화 계층으로, 페르소나 기반의 지능형 챗 어시스턴트 구축에 활용되었습니다.

  • Ray::ChatCompletion을 통해 API 호출을 래핑하고, Ray::FunctionDispatch로 툴 호출을 정의하며, Ray::PromptDecoration으로 프롬프트 스택 및 복합 기능을 구현합니다.

2. Ruby LLM

  • 최근 인기가 급증한 Gem으로, Rails에 특화되어 모델(Chat, Message, ToolCall) 생성을 위한 제너레이터를 제공합니다.

  • acts_as_chat 등의 DSL을 통해 API 호출을 ask 메서드로 래핑하며, 메시지 엔트리를 데이터베이스에 자동으로 생성합니다.

  • Hotwire를 활용한 스트리밍 응답 처리를 쉽게 구현할 수 있으며, 툴 호출은 별도의 클래스와 데이터베이스 모델로 관리됩니다. 에이전트 구축을 위한 명시적인 API는 없으나, 툴을 활용한 워크플로우 구현을 권장합니다.

3. Rafe

  • 가장 Rails 의존도가 높은 Rails Engine으로, 모델, 뷰, 컨트롤러, 라우트, 제너레이터, 어드민 UI 등을 제공하여 많은 기능을 ‘무료로’ 제공합니다.

  • Cultivate Labs의 Arc Analysis 제품에서 파생되었으며, 연구 어시스턴트와 같은 복잡한 워크플로우에 적합합니다.

  • 명명 규칙에 크게 의존하며, 상태 머신 플로우를 통해 비동기 처리 및 스트리밍 응답을 지원합니다. 툴 호출은 전용 뷰 파셜을 통해 위젯과 같은 풍부한 UI를 생성할 수 있으며, triggers_observation_to_model 설정을 통해 응답 로깅을 제어합니다.

향후 탐색할 라이브러리

  • Active Agents: Action Mailer와 유사한 패턴으로, 에이전트 클래스가 액션 메서드를 구현하고 해당 템플릿 파일이 프롬프트 역할을 합니다.

  • Leva: 프롬프트 모델 평가 프레임워크로, 프로덕션 데이터를 활용하여 다양한 프롬프트, 모델, 제공업체를 테스트하고 감성 분석을 수행할 수 있습니다.

결론

강연자는 AI 개발 도구에 대한 논의가 활발하지만, 실제 애플리케이션에 AI 기능을 구축하는 방법에 대한 심도 있는 고민이 부족하다고 지적합니다. 하지만 LLM 모델의 성능이 지속적으로 향상됨에 따라, 모든 기능 개발 시 LLM 적용 가능성을 고려해야 한다고 강조합니다. Ruby 웹 애플리케이션에서 AI 기능을 구현하기 위한 잘 문서화된 패턴이 아직 부족한 상황에서, 본 강연은 개발자들이 다양한 Gem을 탐색하고 자신만의 최적화된 방법을 찾도록 독려합니다. 결국, Ruby 개발자들이 AI 기술을 실용적으로 활용하여 혁신적인 기능을 구축하는 것이 중요하며, 이를 위한 지속적인 학습과 공유의 필요성을 역설합니다.

댓글 0

로그인이 필요합니다

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

로그인 하러 가기

아직 댓글이 없습니다

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