AI 스킬을 활용한 Ruby on Rails 업그레이드 자동화: rails-upgrade-skill 소개

Upgrading Rails applications with an AI skill

발행일
2025년 11월 12일

핵심 요약

  • 1 AI 스킬인 `rails-upgrade-skill`은 Ruby on Rails 애플리케이션 업그레이드의 지루하고 오류 발생 가능성이 높은 부분을 자동화하여 개발자의 부담을 크게 줄입니다.
  • 2 이 스킬은 Claude AI와 공식 Rails CHANGELOG를 활용하여 Rails 7.0부터 8.1.1까지의 업그레이드 경로를 지능적으로 계획하고, 사용자 지정 설정을 보존하며, 순차적 업그레이드를 강제합니다.
  • 3 프로젝트 파일 분석, 변경 사항 보고서 생성, 그리고 Neovim을 통한 변경 사항 직접 적용(대화형 모드)의 3단계 프로세스를 통해 업그레이드 작업을 효율적으로 수행합니다.

도입

오랜 시간 Rails 개발에 참여한 개발자로서, Rails 업그레이드는 항상 시간 소모적이고 오류 발생 가능성이 높은 작업이었습니다. 특히 `rails app:update` 명령 이후 수반되는 프레임워크의 새로운 기본 설정과 애플리케이션의 사용자 지정 구성을 수동으로 병합하는 과정은 많은 개발자에게 익숙한 고충입니다. RailsDiff와 같은 훌륭한 도구에도 불구하고, 단일 실수로 인해 미묘하지만 연쇄적인 버그가 발생할 수 있는 느리고 수동적인 과정이었습니다. 이러한 문제점을 해결하기 위해 AI의 가능성을 탐구하게 되었고, Anthropic의 Skills 출시를 계기로 Rails 업그레이드 자동화 아이디어가 구체화되었습니다.

이러한 배경 속에서 rails-upgrade-skill이 탄생했습니다. 이는 Claude의 지능을 활용하여 전체 Rails 업그레이드 프로세스를 안내하는 전문화된 AI 스킬입니다.

rails-upgrade-skill의 주요 특징

  • 지능형 분석: Rails MCP 서버를 호출하여 실제 프로젝트 파일을 읽고, 사용자 지정 설정을 이해하며, 일반적인 조언이 아닌 개인화된 지침을 제공합니다.

  • 사용자 지정 코드 보존: 사용자 지정 구성(예: 사용자 지정 SSL 미들웨어 또는 자동 로드 경로)을 자동으로 감지하고, 안전하게 마이그레이션하는 방법에 대한 명확한 지침과 함께 특정 경고를 제공하여 코드 로직 손실을 방지합니다.

  • 순차적 강제: 버전 건너뛰기(예: 7.0에서 8.1로 바로 업그레이드)와 같은 위험한 관행을 방지하며, 올바른 순차 경로(7.0 → 7.1 → 7.2 → 8.0 → 8.1)를 자동으로 계획하고 각 단계를 개별적으로 안내합니다.

워크플로우 통합 및 맞춤화

이 스킬은 현재 작성자의 개인 워크플로우에 맞춰 Rails MCP Server(Rails 애플리케이션 정보 수집) 및 Neovim MCP Server(Neovim에서 파일 변경 사항 직접 적용)와 긴밀하게 연결되어 있습니다. 하지만 Skills의 장점은 사용자가 자신의 스택을 사용하지 않아도 된다는 점입니다. 저장소를 포크하고 SKILL.md 파일을 편집하여 자신의 편집기 및 워크플로우에 맞게 프로젝트 정보를 얻거나 변경 사항을 적용하는 방법을 지시할 수 있습니다.

스킬 사용 단계

  1. 설치: 저장소를 클론하고 빌드 스크립트를 실행한 후, Claude Desktop 앱의 설정에서 빌드된 .zip 파일을 업로드합니다.

  2. 프로젝트 컨텍스트 설정: 새 채팅에서 Switch to my_app project and show me the project information 명령으로 Claude에 작업 중인 프로젝트를 알립니다.

  3. 업그레이드 스킬 활성화: Help me upgrade my Rails application to next available version 프롬프트로 AI 스킬을 호출합니다.
    • 모드 1 (보고서 전용): Claude가 포괄적인 보고서를 제공하고, 사용자가 변경 사항을 수동으로 적용합니다.
    • 모드 2 (대화형): Claude가 Neovim에서 열린 파일에 변경 사항을 직접 적용하도록 안내하고 제안합니다.
  4. 세 단계 프로세스:
    • 1단계: 비권장 사항 감지: 애플리케이션 루트 디렉토리에서 실행할 bash 스크립트를 생성하여 비권장 패턴 및 변경 사항을 스캔하고 결과를 Claude에 다시 붙여넣습니다.
    • 2단계: 포괄적인 보고서 생성: 프로젝트 분석 및 비권장 사항 감지 결과를 사용하여 우선순위(HIGH, MEDIUM, LOW) 및 구성 요소별로 분류된 상세 보고서를 생성합니다. 기존 사용자 지정 설정과 새로운 Rails 기본값을 지능적으로 병합하고, OLD vs. NEW 코드 예시와 설명을 제공합니다.
    • 3단계: 변경 사항 적용 (app:update 보고서): 변경이 필요한 모든 파일을 요약하는 최종 보고서를 제공합니다. 대화형 모드에서는 All files are ready on nvim buffers, update them all 명령으로 승인된 변경 사항을 Neovim에서 열린 파일에 직접 적용합니다.

스킬 사용 후 최종 단계

AI 스킬은 업그레이드의 가장 복잡한 부분을 처리하여 90% 정도를 완료합니다. 이후에는 표준 Rails 절차를 따릅니다. 먼저 Gem을 업데이트하고, rails app:update 명령을 실행합니다. 이전에 스킬이 지능적으로 병합했으므로 구성 파일 충돌 시 덮어쓰기를 건너뛰고 새 파일(예: 초기화 파일, 마이그레이션)을 생성하도록 합니다. 마지막으로, 테스트 스위트를 실행하고 애플리케이션을 수동으로 테스트하여 최종 검증을 수행합니다.

결론

`rails-upgrade-skill`은 수많은 시간을 필요로 하던 Rails 업그레이드 작업을 단 몇 분의 상호작용으로 단축시키는 혁신적인 도구입니다. 작성자는 이미 이 스킬을 사용하여 클라이언트 애플리케이션과 개인 프로젝트를 성공적으로 업그레이드했으며, 이는 개발 분야에서 AI의 진정한 힘을 보여줍니다. 즉, Rails 업그레이드의 미묘한 차이와 같은 깊고 전문화된 도메인 지식을 Anthropic Skills와 같은 새로운 도구와 결합하는 것입니다. 이 스킬을 사용해보고, 자신의 워크플로우에 맞춰 적용하여 피드백을 공유하는 것이 권장됩니다.

댓글 1

로그인이 필요합니다

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

로그인 하러 가기
D
dallos
29일 전
좋군요. 한단계씩 해봐야겠습니다.