Hanami의 공식 가이드에는 명시되어 있지 않지만, 내부 코드에 문서화된 마이크로 슬라이스 정의 방식은 config/slices 디렉토리에 단일 파일을 생성하는 것으로 시작됩니다. 이는 기존 슬라이스 생성기가 만드는 복잡한 디렉토리 구조를 생략하고 핵심 로직만으로 구성할 수 있게 합니다.
마이크로 슬라이스 생성 및 활용 예시
-
슬라이스 파일 생성:
config/slices/healthcheck.rb파일을 생성합니다. -
슬라이스 정의: 해당 파일에
Healthcheck::Slice와 간단한 JSON 응답을 반환하는Healthcheck::Routes를 정의합니다.ruby module Healthcheck class Slice < Hanami::Slice; end class Routes < Hanami::Routes get "/", to: ->(_env) { [200, {"Content-Type" => "application/json"}, ['{"status": "ok"}']] } end end -
메인 앱 마운트:
config/routes.rb에서slice :healthcheck, at: "/health"로 마운트하여/health경로에서 슬라이스에 접근할 수 있게 합니다. 이후 애플리케이션을 실행하고curl명령으로 테스트하면{"status": "ok"}응답을 확인할 수 있습니다.
마이크로 슬라이스의 주요 이점
-
간결성: 작고 집중적인 기능 구현에 최적화되어 불필요한 파일 구조를 제거합니다.
-
활용성: 헬스 체크, 메트릭 노출 등 ‘기술적’ 또는 ‘비도메인’ 슬라이스에 특히 유용합니다.
-
확장 가능성: Gem 형태로 ‘슬라이스 빌더’를 배포하여 선언적인 방식으로 복잡한 기능을 구축할 수 있는 잠재력을 제공합니다. 이는 Hanami의 모듈성과 재사용성을 높이는 데 기여합니다.