1. Taylor v0.4.1 주요 릴리스 사항
Taylor v0.4.1은 프로젝트의 지속적인 활성화를 목표로 다양한 기능적 개선을 포함하여 출시되었습니다.
- 기하학적 메서드 확충: Rectangle, Circle, Vector2 클래스에 #overlaps? 메서드를 추가하여 게임 개발 시 필수적인 충돌 판정 로직을 간소화했습니다.
- 그래픽 제어 개선: Colour 인스턴스 조작 메서드를 추가하고, Texture2D#draw 호출 시 원점이 강제로 중앙에 고정되던 동작을 수정하여 개발자가 의도한 위치에 정확히 렌더링할 수 있도록 유연성을 높였습니다.
2. 개발 인프라 및 문서화 업데이트
프로젝트의 접근성과 기여 편의성을 높이기 위해 웹사이트 및 CI 도구를 대대적으로 정비했습니다.
- 디자인 통일: 메인 웹사이트, Playground, 블로그에 simple.css를 적용하여 일관된 UI를 제공하며, 사용자 설정에 따른 라이트/다크 모드를 완벽하게 지원합니다.
- 동적 문서화 시스템: gembox 파일로부터 라이브러리 링크를 자동으로 생성하는 구조를 도입하여, 새로운 릴리스가 발생할 때마다 별도의 수동 작업 없이도 최신 API 상태를 반영하도록 개선했습니다.
- LocalCI 도입: 로컬 환경에서 CI 워크플로우를 실행할 수 있는 Ruby Gem인 LocalCI를 적용했습니다. 이를 통해 기여자들은 bundle exec rake ci 명령어로 PR 제출 전 빌드 성공 여부를 사전에 검증할 수 있습니다.
3. 코드 포맷팅 및 스타일 가이드 업데이트
Fedora 및 Debian 환경의 최신 패키지 호환성을 위해 clang-format 21을 적용했습니다.
- 가독성 향상: ColumnLimit을 80에서 100으로 상향 조정하여 코드의 수직적 길이를 최적화했습니다.
- 규칙 수정: 함수 반환 타입 이후 강제로 줄바꿈이 발생하던 BreakAfterReturnType 규칙을 수정하여 보다 현대적이고 가독성 높은 코드 스타일을 확보했습니다.
4. taylor squash 명령어의 구조적 재설계
기존의 taylor squash는 단순히 require 구문을 파일 내용으로 치환하는 텍스트 기반 결합 방식을 사용했으나, 이는 런타임 동작의 불일치를 초래했습니다. 이를 해결하기 위해 다음과 같은 새로운 아키텍처를 실험 중입니다.
- 람다 기반 캡슐화: 각 소스 파일을 람다(Lambda) 함수 내부에 배치하여 파일 간 네임스페이스 충돌을 방지합니다.
- Kernel#require 오버라이딩: Kernel.define_method를 통해 require 메서드를 재정의합니다. 재정의된 메서드는 SQUASHER_FILES 해시 맵에서 파일을 검색하여 존재할 경우 람다를 실행하고, 없을 경우 기존 시스템의 require를 호출하는 지능형 로드 방식을 취합니다.
- 향후 계획: 이 기능을 독립적인 Ruby Gem 및 mruby mgem으로 배포할 예정이며, 네이티브 Gem의 바이너리 코드 결합 방안에 대해서도 연구를 지속하고 있습니다.