Ruby 및 Rails 개발에 AI를 활용한 새로운 접근 방식: 테스트 자동화 및 웹링 프로젝트

TDD 2.0: AI Brings Test-Driven Development Back on Track - Sergey Sergyenko

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

핵심 요약

  • 1 본 발표는 AI, 특히 대규모 언어 모델(LLM)을 Ruby 및 Ruby on Rails 개발에 통합하는 방안을 다룹니다.
  • 2 Cucumber와 RSpec 같은 기존 테스트 도구를 활용하여 AI가 코드를 자동 생성하고 비결정적 유효성 검사를 수행하는 시연이 이루어졌습니다.
  • 3 AI는 코드 작성에 유용하지만, 테스트 작성의 핵심 역할은 인간 개발자가 유지해야 함을 강조하며 Ruby Webring 프로젝트도 소개합니다.

도입

이 발표는 Ruby 및 Ruby on Rails 개발 환경에서 인공지능(AI)의 잠재력을 탐구하며, 특히 레거시 시스템의 현대화와 테스트 프로세스 자동화에 초점을 맞춥니다. 발표자는 과거 Rails 2.7 기반의 커뮤니티 웹사이트를 AI로 개선하려 했던 경험을 공유하며, AI가 코드 생성 및 유효성 검사에서 보여줄 수 있는 혁신적인 역할에 대한 기대를 제시합니다. 이는 단순히 새로운 기술의 도입을 넘어, 기존의 개발 방법론인 XP(Extreme Programming), TDD(Test-Driven Development), BDD(Behavior-Driven Development)를 AI 시대에 맞춰 재해석하려는 시도입니다. 발표는 구체적인 시연을 통해 AI가 어떻게 개발자의 생산성을 향상시키고 복잡한 작업을 단순화할 수 있는지 보여줍니다.

발표의 핵심 주제 중 하나는 ‘Ruby Webring’ 프로젝트입니다. 이는 Google 이전에 존재했던 30년 된 ‘웹링’ 기술을 Ruby 생태계에 맞춰 재구축한 것으로, Ruby 관련 블로그들을 수평적으로 연결하여 사용자들이 다양한 콘텐츠를 쉽게 탐색할 수 있도록 돕습니다. 발표자는 향후 이 프로젝트에 ‘Tinder’와 유사한 인터페이스를 도입하여 사용자 경험을 개선할 계획임을 밝힙니다.

이어서 발표는 TDD와 BDD의 중요성을 재조명하며, Cucumber와 RSpec과 같은 20년 된 도구들이 AI와 결합될 때 어떤 시너지를 낼 수 있는지 설명합니다. 첫 번째 시연에서는 AI(AI Cursor)가 11년 된 Rails 애플리케이션의 Cucumber BDD 명세(영화 추가, 필터링, 정렬 기능)를 읽고, 30분 만에 완벽하게 코드를 구현하는 놀라운 성능을 보여줍니다. 이는 AI가 복잡한 요구사항을 이해하고 실행 가능한 코드로 변환하는 능력을 입증한 사례입니다. AI는 테스트를 통과할 때까지 스스로 코드를 수정하며, 사용자 인증, 필터링, 정렬, 추천 기능까지 구현하는 자율성을 보여주었습니다.

두 번째 시연에서는 RSpec Llama라는 RSpec 플러그인을 소개하며, 로컬 LLM(Llama 계열)을 활용한 ‘Looks Good Validation’ 접근 방식을 선보입니다. 이는 LLM을 애플리케이션 옆에 위치한 새로운 유형의 데이터베이스로 활용하여, 일반적인 정규 표현식으로는 처리하기 어려운 ‘실명’ 또는 ‘폴란드 여성 이름’과 같은 비결정적이고 고수준의 유효성 검사를 수행하는 개념입니다. 이러한 방식은 복잡한 매처(matcher) 구현에 드는 시간을 절약하고, 런타임에서 유연한 검증을 가능하게 합니다. 발표자는 또한 AI Foundry와의 파트너십을 언급하며, 로컬 모델 기반 AI 인프라 구축의 중요성을 강조합니다.

성능 측면에서, 발표자는 LLM 기반 테스트가 인프라 비용에 큰 영향을 미치지 않으면서도 개발자의 시간을 엄청나게 절약해 줄 수 있다고 주장합니다. 특히, 8비트 모델과 CPU 기반 머신을 활용하면 비용 효율적으로 LLM을 테스트 스위트에 통합할 수 있습니다. 그러나 가장 중요한 메시지 중 하나는 ‘AI가 테스트를 작성하도록 두어서는 안 된다’는 점입니다. 테스트는 개발자가 소유하고 관리해야 할 최종적인 검증 기준이며, AI는 코드 작성이나 인프라 구축과 같은 다른 지루한 작업을 담당해야 한다고 강조합니다. 나아가 발표자는 미래의 페어 프로그래밍이 ‘한 AI가 코드를 작성하고 다른 AI가 프로그래밍(검증)을 수행하는’ 형태로 진화할 수 있다고 예측합니다.

결론

결론적으로, 이 발표는 Ruby 및 Rails 개발에 AI를 통합함으로써 얻을 수 있는 상당한 이점을 명확히 보여줍니다. AI는 레거시 시스템의 현대화, 복잡한 기능의 자동 구현, 그리고 비결정적 유효성 검사와 같은 영역에서 개발 프로세스를 혁신할 수 있는 잠재력을 가지고 있습니다. 특히, BDD 명세를 통한 코드 자동 생성과 LLM을 활용한 유연한 런타임 유효성 검사는 개발 효율성을 크게 향상시킬 수 있는 핵심적인 접근 방식입니다. 그러나 발표는 AI의 강력한 능력에도 불구하고, 테스트 작성이라는 중요한 역할은 인간 개발자의 고유한 영역으로 남겨두어야 한다는 점을 강조하며 책임 있는 AI 활용의 중요성을 역설합니다. 궁극적으로 AI는 Ruby 개발자들이 더욱 복잡하고 창의적인 문제 해결에 집중할 수 있도록 돕는 강력한 협력 도구가 될 것입니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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