Zeitwerk는 파일-상수 매핑, 지연/즉시 로딩, 스레드 안전성을 핵심으로 하는 제로 설정 파일 기반 오토로더입니다. Ruby의 const_missing
, autoload
를 활용해 런타임 상수를 해석하며, 개발 중 자동 리로드를 지원합니다.
고급 구성은 loader.push_dir
로 사용자 정의 경로 추가, loader.inflector.inflect
나 구조 리팩토링으로 비표준 네임스페이스 해결, loader.collapse
로 모듈 구조 평탄화가 포함됩니다.
디버깅 시 bin/rails zeitwerk:check
로 로드 확인, Zeitwerk::Loader.logger
로 로깅 활성화, NameError
발생 시 파일 구조/인플렉터/충돌 여부 점검이 중요합니다. 개발 시 Rails.autoloaders.main.reload
로 수동 리로드 가능합니다.
대규모 코드베이스에서는 표준 명명 규칙 준수, 인플렉터 재정의 최소화, collapse
활용, 프로덕션 즉시 로딩(eager_load = true
), 정기적인 zeitwerk:check
실행이 모범 사례로 권장됩니다. 이로써 코드의 일관성과 성능을 유지할 수 있습니다.