Rails Action Text와 Trix Gem: 독립적인 업데이트를 위한 분리

Rails Decouples Trix From Action Text Into action_text-trix gem | Saeloun Blog

작성자
발행일
2025년 09월 12일

핵심 요약

  • 1 과거 Rails Action Text와 Trix 에디터는 긴밀하게 결합되어 업데이트 및 보안 패치 적용에 어려움이 있었습니다.
  • 2 이 문제를 해결하기 위해 Trix가 'action_text-trix'라는 별도 Gem으로 분리되어, Action Text와 Trix의 개별적인 업그레이드가 가능해졌습니다.
  • 3 새로운 Rails 애플리케이션에서는 자동으로 설치되며, 기존 앱은 Gem 추가 및 기존 Trix 파일 제거를 통해 쉽게 통합할 수 있습니다.

도입

Action Text는 Rails 애플리케이션에 WYSIWYG 에디터를 쉽게 구축할 수 있도록 설계된 강력한 도구입니다. Basecamp에서 개발한 Trix는 메시지, 댓글, 기사 등 웹 애플리케이션에서 흔히 사용되는 간단한 문서를 작성하기 위한 에디터로, 정교한 문서 모델, 첨부 파일 지원, 간결하고 일관된 HTML 출력을 특징으로 합니다. 과거에는 Trix가 Rails Action Text에 직접 번들되어 있어, Trix 업데이트가 Rails 릴리스에 종속되었고, 이는 새로운 기능이나 중요한 보안 수정 사항의 도입을 지연시키는 주요 원인이었습니다.

과거 Trix와 Action Text의 긴밀한 결합은 몇 가지 문제점을 야기했습니다. Trix의 업데이트가 Rails의 새로운 릴리스에 의존해야 했으며, 이는 최신 Trix 기능이나 보안 패치의 도입을 지연시켰습니다. 또한, bin/importmap pin을 통한 npm 패키지 사용이나 vendor 폴더에 수동으로 파일을 관리하는 방식은 CSS 관리 문제 및 잘못된 취약점 보고와 같은 복잡성을 발생시켰습니다.

이러한 문제들을 인식한 Rails 커뮤니티는 Trix를 action_text-trix라는 별도의 Gem으로 추출하는 해결책을 제시했습니다. 이 Gem은 Trix 저장소 내에 위치하며, 주요 이점은 Action Text와 Trix를 독립적으로 업그레이드할 수 있다는 것입니다. 특히 보안 업데이트의 경우, Node 모듈과 동시에 Gem이 릴리스되어 중요한 수정 사항에 훨씬 빠르게 접근할 수 있게 되었습니다. 또한, Trix의 JavaScript 및 CSS 종속성을 자동으로 관리하여 개발자의 자산 관리 부담을 줄여줍니다.

설치 방법

새로운 Rails 애플리케이션

bin/rails action_text:install 명령어를 실행하면 action_text-trix Gem이 자동으로 추가되고 필요한 모든 JS 및 CSS 종속성이 관리됩니다. Importmap 또는 ESBuild를 사용하는 경우 수동 설정이 필요 없습니다.

기존 Rails 애플리케이션

  1. Gem 추가: Gemfileaction_text-trix Gem을 추가하고 bundle install을 실행합니다. ruby gem "action_text-trix"
  2. 기존 Trix 파일 삭제: 이전에 vendor/ 폴더에 복사했거나 npm/yarn을 통해 Trix를 임포트했다면 해당 파일들을 제거하여 Gem이 제공하는 버전을 사용하도록 합니다.
  3. Importmap 설정 업데이트: config/importmap.rb 파일에 pin "trix", to: "trix.js"와 같은 라인이 있다면 주석 처리하거나 제거하여 Gem이 제공하는 Trix 버전을 로드하도록 합니다.

호환성 및 유연성

action_text-trix Gem은 Rails 버전에 대한 특정 종속성을 명시하지 않아, Railties가 있는 한 모든 Rails 버전에서 사용할 수 있습니다. 이러한 변화는 Trix 통합을 간소화하고, 자산 관리를 용이하게 하며, 업그레이드 과정을 훨씬 덜 번거롭게 만듭니다. 또한, 필요한 경우 Trix를 TipTap 또는 Quill과 같은 다른 에디터로 교체하는 것도 더 쉬워졌습니다.

결론

과거 Rails Action Text와 Trix의 강한 결합으로 인해 발생했던 업데이트 지연 및 관리 복잡성 문제는 `action_text-trix` Gem의 도입으로 효과적으로 해결되었습니다. 이 Gem은 Trix의 독립적인 업데이트를 가능하게 하여 보안 취약점 패치 및 최신 기능 도입을 가속화하고, 자산 관리를 간소화하며, 개발자의 부담을 줄여줍니다. 결과적으로, Rails 애플리케이션에서 WYSIWYG 에디터를 관리하고 업그레이드하는 과정이 더욱 유연하고 효율적으로 변화했습니다. 이러한 개선은 Rails 개발 생태계의 성숙도를 보여주는 중요한 진전이라 할 수 있습니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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