Hanami에 Papercraft 연동하기

Hanami on Papercraft

작성자
발행일
2025년 10월 05일

핵심 요약

  • 1 Papercraft와 Hanami 웹 프레임워크의 통합을 위한 'hanami-papercraft' 젬이 새로 출시되었습니다.
  • 2 이 젬을 통해 Hanami 애플리케이션에서 ERB 대신 Papercraft 템플릿을 사용하여 간결하게 HTML을 작성할 수 있습니다.
  • 3 'hanami-papercraft'는 젬 추가, 뷰 클래스 설정, Papercraft 레이아웃 및 뷰 템플릿 사용 등의 명확한 단계를 통해 적용 가능합니다.

도입

필자는 최근 Ruby 웹 애플리케이션 개발에 Papercraft가 가져올 가능성에 깊은 흥미를 느끼고 있습니다. Papercraft의 공식 웹사이트가 공개된 이후, 필자는 이 도구를 어떤 웹 프레임워크에서든 쉽게 활용할 수 있도록 돕는 데 집중하기로 결정했습니다. 그 첫걸음으로, 상당한 사용자층을 가진 견고한 Ruby 웹 프레임워크인 Hanami를 선택하여 ERB 템플릿을 Papercraft로 대체하는 방안을 모색하게 되었습니다. 이 과정에서 얻은 결과물로 'hanami-papercraft' 젬을 출시하게 되었습니다.

Hanami 애플리케이션에 Papercraft를 통합하기 위해 필자는 ‘hanami-papercraft’라는 새로운 젬을 개발했습니다. 이 젬은 Hanami 프로젝트에서 ERB 템플릿을 Papercraft로 쉽게 전환할 수 있도록 지원합니다. 젬 사용 방법은 다음과 같은 주요 단계로 구성됩니다: * hanami-papercraft 젬 추가: Gemfile에 젬을 추가하고 bundle install을 실행합니다. * 기본 뷰 클래스 설정: app/view.rb 파일에서 View 클래스의 슈퍼클래스를 Hanami::PapercraftView로 변경합니다. 이는 Papercraft 템플릿 엔진을 Hanami 뷰 시스템에 연결하는 핵심 단계입니다. * Papercraft 레이아웃 템플릿 사용: 기존 ERB 레이아웃 파일(app.html.erb)을 app.papercraft.rb로 교체하고, Papercraft 문법을 사용하여 HTML 구조를 정의합니다. 이 템플릿은 config, context, props 등의 인수를 받아 동적으로 콘텐츠를 렌더링할 수 있습니다. * Papercraft 뷰 템플릿 사용: 개별 뷰 템플릿 역시 .papercraft.rb 확장자를 사용하여 Papercraft 문법으로 작성합니다. 이 템플릿들은 h1, ul, li 등 Ruby DSL을 활용하여 HTML 요소를 생성합니다. 템플릿에 매개변수를 전달하는 방식도 명확히 설명됩니다. PapercraftView 클래스는 모든 템플릿 매개변수를 키워드 인수로 전달하며, Hanami의 뷰 클래스에서 expose 메서드를 사용하여 필요한 데이터를 템플릿에 노출할 수 있습니다. 예를 들어, books 데이터를 템플릿에 전달하려면 해당 뷰 클래스에서 expose :books 블록을 정의하여 데이터를 제공합니다. 이 방식은 템플릿과 뷰 로직 간의 명확한 데이터 흐름을 보장합니다.

결론

'hanami-papercraft' 젬은 Hanami 사용자들에게 Papercraft의 간결하고 즐거운 HTML 템플릿 작성 경험을 제공하기 위한 초기 단계의 결과물입니다. 필자는 아직 완벽하지 않은 부분이 있을 수 있음을 인정하며, 사용자들로부터 발생하는 문제점이나 개선 사항에 대한 버그 리포트 및 풀 리퀘스트 형태의 기여를 적극적으로 환영하고 있습니다. 이 젬은 Ruby 웹 개발 커뮤니티에 Papercraft의 유연성과 효율성을 더하는 데 중요한 역할을 할 것으로 기대됩니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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