발표자는 Ruby on Rails 주류에서 벗어나 ‘블랙 쉽’으로 활동하며 Hanami, Dry, ROM 프로젝트를 발전시켜온 10년간의 여정을 상세히 설명합니다. Hanami는 Ruby 개발의 새로운 스타일을 제시하며, 다음과 같은 핵심 특징과 철학을 가집니다.
Hanami의 주요 특징
- 모듈화된 아키텍처: 간결하고 집중된 클래스, 불변성, 명확한 계층 분리(HTTP, 비즈니스, 지속성)를 통해 앱을 구성합니다.
- 컨테이너 및 의존성 주입: 앱과 슬라이스(Slices)가 컴포넌트를 관리하는 컨테이너 역할을 하며,
Deps
믹스인으로 의존성 주입을 용이하게 합니다. - 테스트 용이성: 모든 Hanami 객체는 직접 테스트 가능하도록 설계되어 유연한 테스트 전략을 지원합니다.
- 슬라이스를 통한 도메인 분리: 앱을 도메인별로 모듈화하여 확장성과 유지보수성을 향상시킵니다.
‘Okonomi Ruby’ 철학 및 생태계 확장
Hanami는 Rails와 대립하기보다 상호 보완적인 ‘Okonomi (뜻대로)’ 철학을 따릅니다. Dry-operation, Dry-validation 등 핵심 Gem들은 Rails 앱에서도 활용 가능하며, Rotor(라우팅), Flex(뷰)와 같은 외부 Ruby Gem과의 유연한 통합을 지원합니다. Rodauth(인증), Shrine(파일 업로드)와 같은 프레임워크 독립적인 Gem의 중요성을 강조하며, 이는 Ruby 생태계 전체의 다양성 증진에 기여한다고 설명합니다.
Ruby 커뮤니티의 다양성 부족에 대한 경고
연사는 Ruby 커뮤니티가 Rails 중심의 ‘단일 문화(monoculture)’에 빠져있음을 지적합니다. 이는 혁신을 저해하고 새로운 개발자 유입을 어렵게 하며, 무라카미의 ‘무릎 건강’ 비유처럼 Ruby 생태계의 장기적인 건강에 위험을 초래할 수 있다고 경고합니다. 이러한 단일 문화는 특정 리더의 가치관과 충돌할 수 있으며, Ruby의 창의적 잠재력을 제한한다고 주장합니다.