이번 Trix 에디터의 독립 Gem 분리는 여러 가지 중요한 이점을 제공합니다.
Trix 업데이트의 독립성 확보
-
신속한 보안 및 기능 업데이트: Trix에 보안 업데이트나 새로운 기능이 추가될 경우, Rails 릴리스에 묶이지 않고
action_text_trixGem을 통해 즉시 업데이트될 수 있습니다. 이는 Node 모듈과 함께 Gem이 빌드 및 릴리스되는 방식으로 이루어집니다. -
Import Maps 문제 해결: 기존에는 import maps를 사용하는 경우, npm 패키지가
vendor폴더에 다운로드되어 최신 버전을 사용할 수 있었지만, CSS 처리에서 복잡성이 있었습니다. 이제 독립 Gem을 통해 이러한 문제가 해소됩니다.
기존 애플리케이션 적용 방법
기존 Rails 애플리케이션에 action_text_trix Gem을 적용하는 과정은 다음과 같습니다.
-
Gemfile에 추가:
Gemfile에gem 'action_text_trix'를 추가합니다. -
기존 파일 제거:
vendor폴더 내의 기존 Trix JavaScript 및 CSS 파일(예:vendor/javascript/trix.js)을 삭제합니다. -
Import Map 설정 조정:
config/importmap.rb파일을 수정합니다.- 이전에
bin/importmap pin trix명령어로 특정 Trix 버전을 고정했다면, 이 설정은 npm에서 Trix를 다운로드하여 Gem의 버전을 덮어쓸 수 있습니다. - 따라서
config/importmap.rb에서 Trix와 관련된 핀 설정(주석 포함)을 제거하여 Gem에서 제공하는 버전을 사용하도록 합니다. 이는 특히bin/importmap명령이 구버전을 감지하여 불필요한 취약점 경고를 발생시키는 것을 방지합니다.
- 이전에
버전 관리 전략
예시에서는 action_text_trix Gem을 2.1 버전으로 핀(pin)하여 2.2, 2.3 등 후속 업데이트를 쉽게 받을 수 있도록 했습니다. 이는 Trix가 시맨틱 버저닝(Semantic Versioning)을 따른다면 하위 호환성을 유지하면서 마이너 업데이트를 적용할 수 있다는 기대를 바탕으로 합니다.