
Ruby 메타프로그래밍
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
20 면접 질문·
Senior
1Ruby에서 메타프로그래밍이란 무엇입니까?
1
Ruby에서 메타프로그래밍이란 무엇입니까?
답변
메타프로그래밍은 프로그램이 런타임에 코드를 작성하거나 수정할 수 있는 능력입니다. Ruby에서는 이를 통해 메서드, 클래스, 모듈을 동적으로 정의할 수 있어 코드를 더 유연하고 간결하게 만듭니다. 이 기법은 Rails와 같은 프레임워크에서 우아한 DSL을 만들고 코드 중복을 줄이기 위해 널리 사용됩니다.
2Ruby에서 define_method 메서드의 목적은 무엇입니까?
2
Ruby에서 define_method 메서드의 목적은 무엇입니까?
답변
define_method를 사용하면 런타임에 동적으로 메서드를 생성할 수 있습니다. 메서드 이름(심볼 또는 문자열)과 메서드 본문을 정의하는 블록을 받습니다. def와 달리 define_method는 closure를 통해 둘러싼 스코프의 지역 변수를 캡처하므로, 매개변수화된 동작을 가진 메서드를 생성하는 데 유용합니다.
3method_missing 메서드는 Ruby에 의해 언제 호출됩니까?
3
method_missing 메서드는 Ruby에 의해 언제 호출됩니까?
답변
method_missing은 객체가 자신의 상속 체인에 존재하지 않는 메서드 호출을 받을 때 자동으로 호출됩니다. 호출된 메서드의 이름과 인자를 받아 이러한 호출을 동적으로 처리할 수 있습니다. 이는 ActiveRecord에서 사용되는 ghost methods와 같은 여러 메타프로그래밍 패턴의 기반입니다.
4
class_eval과 instance_eval의 주요 차이점은 무엇입니까?
5
module이 클래스에 include될 때 어떤 hook이 호출됩니까?
+17 면접 질문
기타 Ruby on Rails 면접 주제
Ruby 기초
Junior
25개 질문Ruby 객체 지향 프로그래밍
Junior
20개 질문Rails 기초
Junior
18개 질문Routing & Controllers
Junior
22개 질문ActiveRecord 기초
Junior
25개 질문Views와 ERB 템플릿
Junior
20개 질문ActiveRecord 연관 관계
Mid-Level
24개 질문고급 ActiveRecord 쿼리
Mid-Level
28개 질문Rails 폼
Mid-Level
20개 질문인증과 인가
Mid-Level
22개 질문최신 Asset Pipeline 및 프런트엔드
Mid-Level
18개 질문Rails API 모드
Mid-Level
20개 질문RSpec를 사용한 테스트
Mid-Level
24개 질문ActiveJob & Background Jobs
Mid-Level
20개 질문ActionCable & WebSockets
Mid-Level
18개 질문ActionMailer
Mid-Level
18개 질문ActiveStorage
Mid-Level
20개 질문캐싱 전략
Mid-Level
20개 질문고급 마이그레이션
Mid-Level
20개 질문Rails Engines 및 모듈식 앱
Senior
18개 질문성능 최적화
Senior
26개 질문Rails 디자인 패턴
Senior
22개 질문Rails 보안
Senior
22개 질문Rails에서의 GraphQL
Senior
20개 질문배포 및 프로덕션
Senior
20개 질문Monitoring & Logging
Senior
20개 질문Rails 업그레이드 전략
Senior
18개 질문