Hanami Mailer의 혁신적인 재구축 및 통합 전략
이번 주 개발 활동의 핵심은 Hanami Mailer의 대대적인 재구축 작업을 공유한 것입니다. 이번 재구축은 단순히 메일 발송 기능을 개선하는 것을 넘어, Hanami 프레임워크의 다른 구성 요소인 액션(Actions) 및 뷰(Views)와의 통합성을 극대화하는 데 초점을 맞추고 있습니다.
- 뷰 엔진의 재사용: 새로운 메일러는 Hanami의 강력한 뷰 레이어를 직접 활용합니다. 이를 통해 개발자는 웹 페이지를 작성할 때와 동일한 로직과 템플릿 엔진을 사용하여 이메일 본문을 구성할 수 있습니다.
- 직관적인 API 설계: 코드를 직접 분석하지 않고도 API의 전반적인 구조를 파악할 수 있도록 다양한 사용 사례를 문서화했습니다. 이는 메인테이너들 사이의 원활한 피드백을 유도하기 위한 전략입니다.
- 향후 계획: 현재 다른 메인테이너들의 검토를 기다리고 있으며, 통합이 완료되면 실제 사용자들을 대상으로 한 대대적인 테스트와 홍보가 시작될 예정입니다.
라이브러리 생태계의 주요 업데이트 내역
Dry-rb 및 Hanami 관련 라이브러리들이 여러 번의 릴리스를 통해 안정성과 기능을 강화했습니다.
- Hanami CLI (v2.3.5): Node.js 설정이 “샌드박스” 형태로 구성된 특수한 환경에서 에셋 경로가 어긋나는 문제를 해결했습니다. 이는 다양한 배포 환경에서의 호환성을 보장합니다.
- Dry Operation (v1.1.1): 트랜잭션 지원 기능이 대폭 향상되었습니다. 이제 클래스 수준뿐만 아니라 개별 트랜잭션 실행 시점에서도 세부적인 옵션을 주입할 수 있어 유연한 비즈니스 로직 구현이 가능해졌습니다.
- Dry Types (v1.9.1): JRuby 환경에서 보고된 특정 버그에 대한 우회책(Workaround)을 포함했습니다. 이는 루비 생태계의 다양한 런타임 지원을 지속하려는 노력을 보여줍니다.
- Validation 확장: Aaron이 개발한 Dry Operation용 유효성 검사 확장 기능에 대한 심도 있는 검토가 진행되었습니다. 이 기능은 많은 개발자들이 기다려온 만큼, 완성도를 높이는 데 주력하고 있습니다.
인프라 자동화 및 저장소 관리의 이정표
Hanami 프로젝트는 모든 저장소를 하나의 자동화된 관리 체계로 통합하는 중대한 기술적 이정표를 달성했습니다.
- 전체 저장소의 repo-sync 포팅: Hanami Assets, DB, Reloader, RSpec, Utils, Validations, Webconsole 등 방대한 양의 저장소가
repo-sync시스템으로 이전되었습니다. - release-machine 기반의 통합 릴리스: 이제 Hanami와 Dry 조직의 모든 라이브러리는
release-machine을 통해 배포됩니다. 이는 릴리스 과정의 실수를 방지하고, GitHub 릴리스 페이지와 포럼 공지사항을 자동으로 연결하여 사용자들에게 일관된 정보를 제공합니다. - 유지보수 효율화:
repo-sync설정 파일을 별도로 분리하여 관리 편의성을 높였으며, 불필요한 프리뷰 브랜치를 자동으로 정리하는 워크플로우를 도입하여 저장소 상태를 청결하게 유지하고 있습니다.
기타 기술적 개선 사항
- Parklife와의 협업: URL에 마침표가 포함된 버전 번호를 사용할 때 발생하던 문제를 Parklife 측의 수정과 테스트를 통해 해결했습니다. 이를 통해 자체 코드베이스에 존재하던 임시 패치를 제거하고 의존성 라이브러리의 표준 기능을 활용할 수 있게 되었습니다.
- 프로젝트 관리: 사이트 런칭을 위한 백엔드 티켓들이 대부분 처리되었으며, 디자인 수정 사항에 대한 최종 검토 단계에 진입하여 프로젝트 완료가 임박했음을 알렸습니다.