Ruby on Rails와 AI: 창의적인 웹 개발의 새로운 가능성 탐색

Joy of creativity in the age of AI - Paweł Strzałkowski

작성자
RoboRuby
발행일
2025년 07월 18일

핵심 요약

  • 1 20년 경력의 소프트웨어 개발자가 AI(LLM)를 활용한 창의적 웹 개발에 대한 열정을 공유합니다.
  • 2 웹 개발의 정체성을 지적하며, Ruby on Rails 애플리케이션에 음성 제어 및 이미지 인식 기능을 통합하는 방법을 시연합니다.
  • 3 이를 통해 웹 애플리케이션의 사용자 경험을 혁신하고 새로운 상호작용 방식을 제시할 수 있음을 강조합니다.

도입

본 발표는 20년 이상 소프트웨어 개발 분야에 몸담아 온 Visuality의 CTO Pavo가 그의 끊임없는 개발 열정의 원동력이 AI, 특히 대규모 언어 모델(LLM)을 활용한 창의력에 있음을 피력합니다. 그는 웹이 1991년 최초 등장 이래 기본적인 구조와 상호작용 방식에서 큰 변화 없이 정체되어 왔음을 지적합니다. 과거 신문이 웹으로 옮겨진 수준에서 현재는 잡지가 웹으로 옮겨진 정도에 불과하다고 비유하며, 스티브 잡스의 라디오와 TV 비유를 인용하여 새로운 매체가 진정한 잠재력을 발휘하기 위해서는 본질적인 혁신이 필요하다고 강조합니다. 이러한 배경 속에서 Pavo는 웹 개발의 새로운 지평을 열어줄 LLM의 역할에 주목합니다.

Pavo는 웹 개발의 정체성 속에서 개인적인 창의적 해법을 모색해왔습니다. 초기에는 Ruby on Rails 프로젝트에 도메인 주도 설계(DDD)를 적용하며 기술적 도전을 즐겼고, 이후 게임 개발에 몰두하여 Ruby on Rails 백엔드와 프론트엔드로 테트리스를 구현하고, 순수 Ruby on Rails로 실시간 멀티플레이어 Frogger 게임을 개발했습니다. 또한, 자신의 작업을 효율적으로 시연하기 위해 Active Record, Turbo, Stimulus, Tailwind 등을 활용한 Ruby on Rails 기반의 프레젠테이션 플랫폼을 직접 구축하기도 했습니다. 그러나 그는 이러한 노력들이 ‘혁명’이 아닌 ‘단순한 발전’에 불과했다고 평가하며, 진정한 혁신은 LLM의 등장과 함께 시작되었다고 역설합니다.

그는 Ruby on Rails 애플리케이션에 LLM을 통합하는 구체적인 방법을 시연합니다. 첫째, 음성 제어 기능입니다. JavaScript의 Media Recorder API를 통해 사용자의 음성을 녹음하고, 이를 Ruby on Rails 서버로 전송합니다. 서버에서는 Ruby OpenAI gem을 활용하여 OpenAI의 Whisper One 모델로 음성을 텍스트로 변환합니다. 변환된 텍스트는 LLM의 ‘함수 호출(Function Calling)’ 또는 ‘도구 호출(Tool Calling)’ 기능을 통해 특정 명령(예: ‘오른쪽으로 이동’)으로 해석됩니다. 이 과정에서 LLM은 사전에 정의된 도구의 기능과 매개변수를 이해하여 적절한 동작을 제안합니다. 해석된 명령은 Hotwire(Turbo Streams)를 통해 프론트엔드로 실시간 브로드캐스트되고, Stimulus JavaScript 컨트롤러가 이를 받아 실제 웹 페이지 상의 동작(예: 캐릭터 이동, 글자 크기 변경, 다크 모드 활성화)을 수행합니다. 특히, 음성으로 온라인 쇼핑 필터를 제어하는 시연(예: ‘아들이 숙제하고 게임할 랩톱을 찾는데, 1000달러 이하, 큰 화면 필요’)은 LLM이 사용자의 의도를 파악하여 복잡한 필터 설정을 자동화하는 혁신적인 사용자 경험을 보여줍니다.

둘째, 이미지 인식 기능입니다. JavaScript로 웹캠 이미지를 캡처하여 Base64 인코딩 후 LLM(GPT-4o mini)으로 전송합니다. LLM은 이미지의 내용을 분석하고, 사용자의 질의에 따라 가장 유사한 이미지를 찾아냅니다. 이 핵심에는 벡터 검색(Vector Search) 기술이 있습니다. 이미지, 텍스트, 사운드 등 모든 형태의 정보는 LLM을 통해 ‘임베딩(Embeddings)’이라는 다차원 숫자 배열(벡터)로 변환됩니다. 이러한 벡터들은 정보의 의미를 내포하며, 벡터 공간 내에서 서로 가까이 위치할수록 유사한 정보를 나타냅니다. 검색 쿼리 또한 벡터로 변환되어 기존 이미지 벡터들과의 유사도를 계산함으로써 가장 관련성 높은 이미지를 찾아냅니다. 이는 기존의 키워드 기반 검색을 넘어 의미 기반의 검색을 가능하게 하며, LLM을 활용한 이미지 내용 검증, 보안 카메라 영상 분석, 프로필 사진 규제 등의 다양한 활용 사례를 제시합니다.

결론

Pavo는 LLM을 활용한 음성 제어 및 이미지 인식 기능이 웹 개발의 새로운 시작점임을 강조하며, Hugging Face와 같은 플랫폼에서 무한한 LLM 모델들을 활용하여 개발자들이 더욱 창의적인 애플리케이션을 만들 수 있다고 독려합니다. 그는 단순한 'To-do 리스트' 앱을 넘어선, LLM의 강력한 기능을 통합한 혁신적인 웹 애플리케이션 개발의 중요성을 역설합니다. 마지막으로, DHH(David Heinemeier Hansson)의 "유능함이 더 재미있다(It's more fun to be competent)"는 인용구를 언급하며, 자신에게는 "창의성이 더 재미있다(It's even more fun to be creative)"고 덧붙이며 발표를 마무리합니다. 본 발표는 LLM이 Ruby on Rails와 같은 기존 웹 프레임워크에 통합되어 사용자 경험을 근본적으로 변화시킬 수 있는 잠재력을 명확히 보여주었습니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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