Rails Engine에서 프레임워크 독립적인 솔루션으로: Ruby 생태계 확장 전략

OasRails: From a Rails Engine to a Framework-Agnostic Solution

작성자
발행일
2025년 07월 01일

핵심 요약

  • 1 Ruby의 장기적인 발전을 위해 Ruby on Rails에 국한되지 않는 생태계 다각화가 필수적입니다.
  • 2 저자는 기존 Rails Engine 기반의 OasRails 젬을 OasCore로 분리하여 프레임워크 독립적인 솔루션으로 전환했습니다.
  • 3 이는 OasRage, OasHanami와 같은 어댑터를 통해 다양한 Ruby 프레임워크에서 활용 가능한 범용적인 개발 방식을 제시합니다.

도입

Ruby는 이해하기 쉽고 개발하기 즐거운 언어임에도 불구하고, 그 인기가 주로 Ruby on Rails라는 단일 프레임워크에 의존하고 있어 성장에 한계가 있습니다. Ruby의 장기적인 생존과 소수 기업에 의한 통제를 피하기 위해서는 개발자들이 생태계를 다각화하고 프레임워크에 구애받지 않는 솔루션을 개발하는 것이 중요합니다. 이 글은 저자가 자신의 젬을 Rails Engine에서 프레임워크 독립적인 솔루션으로 전환한 경험을 통해 이러한 필요성을 강조합니다.

저자는 API 개발을 위한 Rage 프레임워크를 접하며, 자신의 API 문서화 젬인 OasRails가 Yard 태그를 사용하여 OAS를 생성하는 방식이 Rage와 유사하다는 점에 주목했습니다. 이에 OasRails가 Rails에만 국한되지 않고 다른 프레임워크에서도 작동할 수 있도록 만들 가능성을 모색하기 시작했습니다. 초기 시도는 단일 젬에 여러 프레임워크 어댑터를 포함하는 것이었으나, 이는 젬 이름 변경과 테스트 유지보수 측면에서 어려움이 있었습니다.

이후 OasRails의 기여자 중 한 명의 제안에 따라, 재사용 가능한 코드를 OasCore라는 별도의 젬으로 추출하고 각 프레임워크가 OasCore에 의존하는 독립적인 어댑터를 갖는 방식으로 방향을 전환했습니다. 이 전략을 통해 OasRails는 Ruby on Rails용으로 유지하고, Rage 및 Hanami와 같은 다른 프레임워크를 위한 OasRage, OasHanami와 같은 젬을 추가로 개발할 수 있었습니다. 이 과정에서 참조 지원 및 공통 재사용 구조 선언을 위한 기본 파일 사용 기능이 추가되었으며, Clean Code 원칙에 따라 많은 코드 리팩토링이 이루어졌습니다.

결론

저자는 Rails Engine 개발을 고려하는 개발자들에게 해당 솔루션이 Rails에만 특화된 것인지, 아니면 모든 Ruby 개발자에게 도움이 될 수 있는 프레임워크 독립적인 솔루션으로 확장될 수 있는지 신중하게 고려할 것을 제안합니다. Ruby는 단순히 Ruby on Rails만을 의미하는 것이 아니라, 훨씬 더 많은 것을 제공할 수 있는 언어임을 강조하며, 프레임워크에 얽매이지 않는 개발 방식이 Ruby 생태계의 건강한 발전에 기여할 것임을 시사합니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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