metaprogramming은 런타임에 코드를 작성하거나 수정하는 코드를 작성하는 것입니다 — 메서드를 동적으로 정의하고, 정의되지 않은 메서드에 응답하며, 클래스를 즉석에서 검사/변경하는 것입니다. Ruby의 동적 특성(클래스를 포함해 모든 것이 객체)은 metaprogramming에 탁월하게 만들며, 이는 Rails의 "마법"의 상당 부분을 떠받칩니다.
메서드 동적 정의
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
