Redprints CFP: Rails와 Inertia.js로 구축된 오픈소스 CFP 관리 애플리케이션

Redprints CFP: an open source CFP management app built with Rails + Inertia.js

작성자
발행일
2025년 08월 06일

핵심 요약

  • 1 Evil Martians는 Ruby on Rails와 Inertia.js를 활용하여 오픈소스 CFP(Call for Papers) 관리 애플리케이션인 Redprints CFP를 개발했습니다.
  • 2 이 애플리케이션은 기존 상용 솔루션의 한계를 극복하고, 실제 환경에서 새로운 기술을 테스트하며, 효율적인 제안서 제출 및 검토 워크플로우를 제공합니다.
  • 3 Redprints CFP는 현대적인 개발 사례를 보여주며, 컨퍼런스 주최자들이 유연하게 커스터마이징하여 사용할 수 있는 생산성 높은 솔루션입니다.

도입

Evil Martians는 소프트웨어 개발에 있어 오픈소스 우선 문화를 강력히 지향하며, 프로젝트의 일부를 라이브러리나 도구로 커뮤니티와 공유하고자 노력합니다. 이러한 철학의 일환으로, 그들은 완전한 기능을 갖춘 오픈소스 애플리케이션인 'Redprints CFP'를 공개했습니다. 이 애플리케이션은 최근 SF Ruby Conference의 제안서 선정 과정에 실제로 사용되어 그 실용성을 입증했습니다. 'Redprints'라는 이름은 'blueprint(청사진)'와 'Red planet(화성)'의 합성어로, 실제 세계의 문제를 해결하면서 최신 개발 사례를 선보이는 프로덕션 준비가 완료된 애플리케이션임을 의미합니다. Redprints CFP는 유연하고 커스터마이징하기 쉽게 설계되어, 추가적인 강력한 기능을 갖춘 스타터 키트로서 컨퍼런스 주최자들에게 견고한 기반을 제공합니다.

Redprints CFP는 기존 상용 CFP 솔루션의 높은 비용과 제한적인 기능에 대한 불만, 그리고 Rails 환경에서 Inertia.js와 같은 새로운 기술을 실제 프로덕션 환경에서 검증하고자 하는 필요성에서 출발했습니다. 또한, EuRuKo 프로그램 위원회에서 맞춤형 CFP 앱을 사용했던 긍정적인 경험도 개발에 영향을 미쳤습니다. 그 결과, 제안서 제출부터 검토 워크플로우까지 모든 과정을 효율적으로 처리하며 Ruby on Rails 개발의 장점을 보여주는 시스템이 탄생했습니다.

Redprints CFP의 주요 기능은 다음과 같습니다.

  • 제안서 제출: 발표자는 GitHub 및 Google과 같은 소셜 로그인을 통해 쉽게 가입할 수 있으며, 제출 양식은 유연하게 설정 가능합니다. 발표자는 초안을 저장하고 나중에 완료할 수 있습니다. 이 앱은 의도적으로 동일한 제안서를 여러 컨퍼런스에 재사용하는 것을 허용하지 않아, 발표자가 각 컨퍼런스에 맞는 타겟팅된 제안서를 작성하도록 권장합니다.

  • 제안서 관리 및 검토: 주최자는 관리자 대시보드를 통해 평가 규칙 설정, 검토자 할당, 평가 진행 상황 추적 및 최종 결정을 포함한 전체 CFP 프로세스를 관리할 수 있습니다. 검토자별 제안서 배포 방식은 코드 수정을 통해 유연하게 변경할 수 있으며, 예를 들어 각 검토자가 무작위로 할당된 일부 제안서만 검토하도록 설정할 수 있습니다.

Redprints CFP는 간단한 커스터마이징을 염두에 두고 설계되었습니다. TailwindCSS 4와 OKLCH를 사용하여 색상 테마를 쉽게 조정할 수 있으며, 홈페이지는 React로 구축되어 있어 원하는 대로 UI를 자유롭게 변경할 수 있습니다. 코드 내의 FIXME 주석은 사용자가 커스터마이징해야 할 부분을 명확히 안내합니다.

이 애플리케이션의 기술적 특징은 다음과 같습니다.

  • Bolt vibes: Evil Martians는 Bolt.new를 사용하여 SF Ruby 웹사이트를 빠르게 개발했던 경험을 바탕으로, Rails 프로젝트에 Bolt의 빠른 UI 개발 방식을 적용하기 위해 Inertia.js와 React를 선택했습니다. 백엔드는 수작업으로, 프론트엔드는 ‘vibe-coding’ 방식으로 개발하여 약 10시간 만에 프로덕션 수준의 기능을 구현하는 놀라운 생산성을 보여주었습니다.

  • Bundlebun: 이 gem은 Bun 실행 파일을 제공하고 Rails의 Asset Pipeline에 통합하여 JavaScript 툴링 설정을 간소화하고 Bun의 빠른 속도를 Rails 앱에 적용합니다.

  • Avo: 내부 앱의 관리자 패널 개발에 Avo를 사용하여 개발 시간을 단축하고, 강력한 데이터 브라우징 기능(필터, 검색, 정렬 등)을 활용하여 효율적인 백오피스 관리를 가능하게 했습니다.

  • Form objects: 애플리케이션의 핵심 로직은 폼 객체를 중심으로 구축되었습니다. 폼 객체는 여러 모델의 데이터를 관리하고, 초안 및 최종 제출 로직을 처리하여 코드 유지보수성과 가독성을 향상시킵니다.

  • Page objects: SitePrism 페이지 객체를 시스템 테스트에 사용하여 테스트 코드의 유지보수성과 가독성을 높였습니다.

  • 기타 도구: Lookbook (메일러 프리뷰), Litestream (SQLite 복제), Overmind, lefthook (개발 워크플로우), 그리고 Minitest를 RSpec으로 변환하는 규칙을 담은 CLAUDE.md 파일 등 다양한 도구와 gem을 활용하여 개발 효율성을 극대화했습니다.

결론

Redprints CFP는 프로덕션 환경에서 사용 가능하며 실제 사용을 통해 검증된 애플리케이션입니다. 지역 밋업부터 국제 컨퍼런스에 이르기까지, 모든 규모의 행사 주최자에게 견고한 기반을 제공합니다. 이 프로젝트는 Ruby on Rails와 현대적인 웹 개발 기술의 조합이 어떻게 효율적이고 유연하며 강력한 솔루션을 만들어낼 수 있는지를 명확하게 보여줍니다. Evil Martians는 사용자들이 코드를 탐색하고 자신만의 인스턴스를 배포하며, 이를 통해 무엇을 구축할지 공유해 줄 것을 권장합니다. 또한, Balkan Ruby의 Conference Management System과 함께 사용하면 모든 컨퍼런스 조직 요구사항을 충족할 수 있다고 언급하며, Redprints CFP가 컨퍼런스 관리 생태계에 기여하는 바를 강조합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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