steveclarke/real-world-rails
요약
200개 이상의 실제 운영 중인 Rails 애플리케이션과 엔진을 모아놓은 오픈 소스 코드베이스 저장소입니다. AI 코딩 에이전트를 활용해 다양한 구현 패턴을 즉각적으로 조사하고 비교 학습할 수 있는 실용적인 리소스를 제공합니다.
핵심 포인트
- 200개 이상의 실제 Rails 앱 및 엔진 포함
- AI 코딩 에이전트를 활용한 코드 패턴 분석 최적화
- 백그라운드 작업, 멀티 테넌시 등 실무 구현 방식 학습 가능
- 분석 내용을 저장할 수 있는 전용 analyses 디렉토리 제공
개발자들이 학습할 수 있는 실제 환경의 Rails 애플리케이션들과 그 오픈 소스 코드베이스 (open source codebases)
이 프로젝트는 eliotsykes/real-world-rails를 활발하게 유지 관리하며 이어가는 프로젝트입니다.
이 프로젝트는 200개 이상의 활성 오픈 소스 Rails 앱과 엔진 (engines)을 하나의 저장소 (repository)에 모았습니다. 실제 운영 중인 코드베이스 (codebases)를 한곳에 모아두는 것은 학습에 항상 가치가 있었지만, AI 코딩 에이전트 (AI coding agents) 시대에 들어서면서 그 유용성이 극적으로 커졌습니다.
포함된 앱과 엔진의 전체 목록 및 설명은 repos.md를 참조하세요.
이 저장소가 처음 만들어졌을 때는 앱 전체에서 특정 패턴을 찾기 위해 수동으로 grep을 실행하거나 커스텀 Ruby 스크립트를 사용해야 했습니다. AI 코딩 에이전트가 이 상황을 완전히 바꾸어 놓았습니다.
이 모든 코드베이스가 하나의 디렉토리 (directory)에 있기 때문에, 에이전트에게 200개 이상의 운영 중인 Rails 앱을 가리키며 다음과 같은 질문을 던질 수 있습니다:
- "이 앱들은 백그라운드 작업 재시도 로직 (background job retry logic)을 어떻게 구현하고 있나요?"
- "이 코드베이스들 전반에 걸쳐 멀티 테넌시 (multi-tenancy)를 구현하는 모든 방식을 보여주세요."
- "앱들이 PDF 생성 (PDF generation)을 위해 어떤 패턴을 사용하나요?"
- "이 앱들이 소프트 삭제 (soft deletes)를 처리하는 모든 서로 다른 방식들을 찾아주세요."
- "Devise를 사용하는 앱과 커스텀 인증 (custom auth)을 사용하는 앱 간의 인증 (authentication) 구현 방식을 비교해 주세요."
에이전트는 모든 앱에 걸쳐 코드를 즉시 검색, 읽기 및 상호 참조할 수 있으며, 이는 이전에는 몇 시간의 수동 작업이 필요했던 일입니다. 이로 인해 real-world-rails는 실제 운영 중인 Rails 앱들이 문제를 실제로 어떻게 해결하는지 조사하기 위한 가장 실용적인 리소스 중 하나가 되었습니다.
analyses/ 디렉토리는 git-ignored 처리되어 있어, 자신만의 연구 내용을 저장하기에 안전한 공간입니다:
- 마크다운 (Markdown) 파일, 노트, 패턴 비교 또는 모든 문서
- 커밋 (commit)되거나 풀 리퀘스트 (pull requests)에 나타나지 않습니다.
- 코드베이스와 함께 작업하면서 워크스페이스 (workspace)를 깔끔하게 유지할 수 있습니다.
참고
bin/setup을 실행하면 200개 이상의 모든 저장소를 git 서브모듈 (git submodules)로 클론 (clones)합니다. 이는 약 10 GB의 디스크 공간을 사용합니다. 전체 git 히스토리 (~29 GB)를 포함하려면 bin/setup --full을 사용하세요.
git-lfs가 설치되어 있는지 확인하세요: https://git-lfs.com
git clone git@github.com:steveclarke/real-world-rails.git
cd real-world-rails/
bin/setup
서브모듈 (Submodules)은 매주 실행되어 PR (Pull Request)을 생성하는 GitHub Action을 통해 자동으로 업데이트됩니다. 머지 (Merge)된 후에는 다음 명령어로 pull (가져오기)만 하면 됩니다:
git pull
git submodule update
(매주 실행되는 Action을 기다리지 않고) 지금 즉시 모든 서브모듈을 최신 상태로 업데이트하고 싶다면, bin/update를 실행하세요.
.
— 얕은 복제 (Shallow clone) 방식으로 모든 서브모듈을 초기화하고 다운로드합니다 (첫 번째 clone 이후에 실행) bin/setup
--full
— 전체 git 히스토리를 포함하여 복제합니다 (~10 GB 대신 ~29 GB)
--reset
— 모든 서브모듈을 다시 다운로드합니다 (모드 전환을 위해 기본값 또는 --full과 함께 사용)
— 최신 변경 사항을 가져오고 모든 서브모듈을 최신 원격 커밋 (Remote commits)으로 업데이트합니다 bin/update
— 초기화된 앱의 개수를 보여줍니다 bin/status
— GitHub URL을 통해 새로운 앱 또는 엔진 (Engine)을 추가합니다 (예: bin/add bin/add https://github.com/user/repo)
여기에 포함되어야 할 훌륭한 오픈 소스 Rails 앱을 알고 계신가요? 가장 쉬운 방법은 GitHub URL과 함께 이슈 (Issue)를 여는 것이며, 저희가 추가하겠습니다.
이미 리포지토리 (Repo)를 clone 했다면, PR을 제출할 수도 있습니다:
bin/add https://github.com/githubuser/foo
# 그 다음 커밋하고 pull request를 엽니다
앱은 다음 조건을 충족해야 합니다:
- 오픈 소스이며 GitHub에서 공개적으로 사용 가능할 것
- Ruby on Rails로 구축되었을 것
- 활발하게 유지 관리되거나 학습할 가치가 있는 양질의 코드를 나타낼 것
- 실제 서비스용 애플리케이션일 것 (단순한 데모나 튜토리얼이 아닐 것)
이 리포지토리는 AI 코딩 에이전트 (AI coding agents)를 위한 /real-world-rails 스킬을 포함하고 있습니다. 이는 에이전트가 200개 이상의 모든 코드베이스를 검색하여 실제 운영 중인 앱들이 아키텍처 (Architectural) 문제를 어떻게 해결하는지 조사하도록 가르칩니다.
다음 명령어로 설치하세요:
npx skills add steveclarke/real-world-rails
그 다음 에이전트에게 "Rails 앱은 멀티 테넌시 (Multi-tenancy)를 어떻게 처리하나요?" 또는 "실제 운영 중인 rails 앱들의 백그라운드 작업 (Background job) 패턴을 조사해줘"와 같은 질문을 던지면, 에이전트가 실제 소스 코드를 검색할 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기