
이 글은 Rails 애플리케이션 업그레이드를 체계적으로 수행하기 위한 방법론이 어떻게 Claude Code의 Skill 형태로 정리되고, 실제 현업에서 사용될 수 있도록 오픈소스로 공개되었는지를 설명합니다.
단순히 Rails 버전을 올리는 수준이 아니라, 리스크를 관리하고 테스트를 기반으로 안정적인 업그레이드를 수행하는 구조와 철학, 그리고 이를 자동화된 AI 워크플로우에 어떻게 녹여냈는지를 중심으로 살펴봅니다.
Rails 업그레이드 경험에서 출발한 방법론
해당 업그레이드 방법론은 8년 이상 축적된 Rails 업그레이드 경험을 기반으로 만들어졌습니다.
- Rails 2.3부터 8.1까지 모든 마이너 버전 업그레이드 가이드 문서화
- 60,000시간 이상의 실제 업그레이드 프로젝트 경험
- 개인 SaaS부터 Fortune 500 규모의 대형 Rails 모놀리식 애플리케이션까지 다양한 사례 축적
이 경험을 통해 얻은 핵심은 명확합니다.
Rails 업그레이드는 단순한 코드 수정 작업이 아니라, 명확한 순서·테스트 전략·의사결정 기준이 필요한 프로젝트라는 점입니다.
왜 Claude Code Skill로 만들었는가
Claude Code는 코드베이스를 읽고, 명령을 실행하며, 변경 사항을 제안할 수 있는 강력한 AI 개발 도우미입니다.
하지만 Rails 업그레이드에서는 일반적인 프로그래밍 지능만으로는 부족합니다.
Rails 업그레이드는 다음을 요구합니다.
- 단계별 진행 순서
- 테스트를 중심으로 한 검증 전략
- 업그레이드 과정에서의 리스크 관리 기준
- 경험 기반의 판단(어디서 멈추고, 어디서 진행할지)
이러한 판단을 AI가 임의로 하게 두면, 단기적으로는 빨라 보이지만 장기적으로 문제를 키우는 선택을 할 수 있습니다.
그래서 검증된 업그레이드 방법론 자체를 Claude Code에 주입하는 Skill로 구현했고, 이를 오픈소스로 공개했습니다.
이 Skill이 가진 명확한 철학과 강제 규칙
1. 항상 Dual Booting을 사용
이 Skill은 업그레이드 과정에서 항상 Dual Booting을 설정합니다.
즉, 하나의 코드베이스에서 현재 Rails 버전과 목표 Rails 버전을 동시에 실행할 수 있도록 구성합니다.
이 방식은 조건문이 늘어나 코드가 복잡해 보일 수 있지만, 실제로는 다음과 같은 강력한 이점을 제공합니다.
- CI에서 두 Rails 버전 모두 테스트 가능
- 대규모 배포 이전에 호환성 문제 조기 발견
- 업그레이드 완료 후 조건문을 한 번에 정리 가능
- 동일 코드에서 버전별 동작 차이를 빠르게 디버깅 가능
예시:
if NextRails.next?
# 신규 Rails 버전용 코드
else
# 기존 Rails 버전용 코드
end
테스트 실행 예시:
# 현재 Rails 버전
bundle exec rspec spec/models
# 목표 Rails 버전
BUNDLE_GEMFILE=Gemfile.next bundle exec rspec spec/models
2. 테스트가 없으면 업그레이드는 시작되지 않는다
Skill은 업그레이드 시작 전에 기존 테스트가 모두 통과하는지 확인합니다.
그리고 업그레이드 전 과정에서 현재 버전과 목표 버전 양쪽 모두에서 테스트를 지속적으로 실행합니다.
- 테스트가 실패하면 업그레이드는 중단
- 테스트 없이 진행하는 업그레이드는 허용하지 않음
- 모든 변경은 두 버전에서 검증됨
이는 선택이 아니라 강제 규칙입니다.
3. Rails 기본 설정(load_defaults)을 먼저 정렬
Rails 버전을 올리기 전에 반드시 확인하는 것이 있습니다.
- config.load_defaults 값이 현재 사용 중인 Rails 버전과 일치하는가?
이 부분을 건너뛰면 업그레이드 후 미묘하고 추적하기 어려운 버그가 발생할 가능성이 큽니다.
Skill은 이를 전용 Skill을 통해 위험도 기준으로 단계적으로 정리하도록 유도합니다.
4. Rails 버전은 절대 건너뛰지 않는다
예를 들어 Rails 5.2에서 8.1로 가고 싶다면, 다음과 같은 순서를 강제합니다.
5.2 → 6.0 → 6.1 → 7.0 → 7.1 → 7.2 → 8.0 → 8.1
각 단계는 완전히 마무리된 후 다음 단계로 이동합니다.
버전을 건너뛰면 문제는 기하급수적으로 증가하며, 디버깅이 거의 불가능해진다는 경험에 기반한 판단입니다.
세 가지 Skill의 역할 분리 구조
1. Rails Upgrade Skill (오케스트레이터)
- 전체 업그레이드 흐름을 관리
- 디프리케이션 추적
- 코드베이스의 파괴적 변경 탐지
- 단계별 업그레이드 계획 수립
- 실제 코드 예시가 포함된 업그레이드 리포트 생성
2. Dual Boot Skill
- Dual Boot 환경 자동 구성
- Gemfile.next 설정
- 버전 분기 코드 패턴 가이드
- CI 환경에서 이중 테스트 구성
- 업그레이드 완료 후 Dual Boot 코드 정리
Rails뿐 아니라 Ruby, Sidekiq, Devise 같은 핵심 의존성 업그레이드에도 활용 가능합니다.
3. Rails Defaults Skill
- config.load_defaults를 한 단계씩 업데이트
- 위험도 기준으로 설정 분류
- 자동 변경 가능한 설정과 수동 검토가 필요한 설정 구분
설치 및 사용 방법 요약
설치
# Dual Boot Skill
git clone https://github.com/ombulabs/claude-code_dual-boot-skill.git
cp -r claude-code_dual-boot-skill/dual-boot ~/.claude/skills/
# Load Defaults Skill
git clone https://github.com/ombulabs/claude-code_rails-load-defaults-skill.git
cp -r claude-code_rails-load-defaults-skill/rails-load-defaults ~/.claude/skills/
# Rails Upgrade Skill
git clone https://github.com/ombulabs/claude-code_rails-upgrade-skill.git
cp -r claude-code_rails-upgrade-skill/rails-upgrade ~/.claude/skills/
사용
Rails 프로젝트 디렉토리에서 Claude Code 실행 후 다음 명령어 사용:
- /rails-upgrade
- /rails-load-defaults
- /dual-boot
Rails 업그레이드 Skill 실행 시 자동으로 수행되는 작업:
- 테스트 베이스라인 확인
- 디프리케이션 추적
- 디프리케이션 해결
- load_defaults 정렬 여부 검증
- 파괴적 변경 탐지
- 실제 코드 기반 업그레이드 리포트 생성
- 다음 단계에 대한 사용자 입력 요청
이 Claude Code Skill 기반 Rails 업그레이드 방법론은
AI에게 판단을 맡기는 것이 아니라, 검증된 판단을 AI에게 학습시키는 방식입니다.
- 업그레이드를 빠르게 하려다 더 큰 기술 부채를 만드는 문제를 방지
- 테스트 중심, 단계적, 리스크 관리 중심의 접근
- 실제 현업에서 검증된 경험을 그대로 자동화
Rails 업그레이드를 직접 수행해야 하는 팀에게는 신뢰 가능한 가이드이자 실행 도구가 될 수 있으며,
업그레이드 자체가 부담인 조직에게는 왜 이 작업을 쉽게 보면 안 되는지를 명확히 보여주는 사례라 할 수 있습니다.
장기적으로는 AI 기반 개발 도구가 단순 보조를 넘어,
전문가의 방법론을 내장한 실행 파트너로 진화할 수 있음을 보여주는 좋은 예시입니다.
Our Rails Upgrade Methodology as Claude Code Skills - FastRuby.io | Rails Upgrade Service
An Open Source Claude Code skill based on our 60,000+ hours of Rails upgrade experience. Learn how our opinionated methodology teaches Claude Code to upgrade Rails, fast.
www.fastruby.io

'인공지능' 카테고리의 다른 글
| QMD(Query Markup Documents): 로컬 환경에서 구현하는 하이브리드 문서 검색 엔진 (0) | 2026.04.08 |
|---|---|
| AI 코딩 에이전트 시대, CI/CD 파이프라인이 무너지는 이유와 해결 방법 (0) | 2026.04.06 |
| 코딩 에이전트의 핵심 구성 요소: LLM을 실무 개발에 제대로 활용하는 방법 (0) | 2026.04.06 |
| LLM Wiki 개념과 구조 정리: LLM으로 개인 지식 베이스를 구축하는 새로운 방식 (0) | 2026.04.06 |
| OpenClaude란 무엇인가: 다양한 AI 모델을 하나의 CLI로 활용하는 오픈소스 코딩 에이전트 (0) | 2026.04.05 |