자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!
 

[Ruby] 6장 모듈과 믹스인

728x90

 

Ruby에서 모듈과 믹스인을 사용하는 방법에 대해 알아보도록 하겠습니다. 모듈은 Ruby에서 재사용 가능한 코드를 구성하고, 믹스인은 모듈을 클래스에 포함시켜 그 기능을 추가하는 방법입니다.

1. 모듈 

Ruby에서 모듈은 module 키워드를 사용하여 정의하며, 메서드, 상수, 클래스를 포함할 수 있으며, 다른 클래스에서 재사용할 수 있습니다.

module Greeting 
  def hello 
     puts "Hello!"
  end 

  def goodbye 
     puts "Good Bye!"
  end
end

2. 믹스인으로 모듈 사용하기

include 또는 extend 키워드를 사용하여 모듈을 클래스에 믹스인할 수 있습니다. include는 인스턴스 메서드로, extend는 클래스 메서드로 추가합니다. 먼저 include를 사용한 믹스인은 다음과 같습니다.

module Greeting 
  def hello 
     puts "Hello!"
  end 

  def goodbye 
     puts "Good Bye!"
  end
end 



class User 
    include Greeting 
end 

user = User.new 
user.hello 
user.goodbye

 

위 예제에서 User 클래스는 Greeting 모듈을 포함하였기에 hello와 goodbye 메서드를 사용할 수 있습니다. extend를 사용한 믹스인은 다음과 같습니다.

module Greeting 
  def hello 
     puts "Hello!"
  end 

  def goodbye 
     puts "Good Bye!"
  end
end 

class Admin 
    extend Greeting
end

Admin.hello # 출력: Hello!
Admin.goodbye # 출력: Good Bye!

 

extend를 사용하면 클래스 메서드로 모듈의 메서드를 사용할 수 있습니다. Admin 클래스에 Greeting 모듈을 확장해 클래스를 통해 직접 메서드를 호출할 수 있습니다.


3. 모듈의 상수 사용

모듈 내 정의한 상수도 사용할 수 있습니다.

module MathConstants
   PI = 3.14
end 

puts MathConstants::PI # result: 3.14

4. 믹스인과 다중 상속

Ruby는 다중 상속을 지원하지 않지만, 모듈을 사용하여 비슷한 기능을 구현할 수 있습니다. 여러 모듈을 포함하여 다양한 기능을 조합할 수 있습니다.

module Flyable
    def fly 
      puts "I'm flying!"
    end
  end 

module Drive 
   def drive 
      puts "I'm Drive!"
   end 
  end

class Move 
   include Flyable
   include Drive 
end 

move = Move.new 
move.fly # result: I'm flying!
move.drive # result: I'm Drive!

5. 믹스인에서 메서드 오버라이드

모듈에서 정의한 메서드는 클래스를 통해 오버라이드할 수 있습니다.

module Ruby 
    def hello
      puts 'Hello Ruby Module!'
    end 
  end 
  
class User 
   include Ruby 
    
   def hello 
      puts 'Hello Ruby the User Module'
   end 
end

user = User.new 
user.hello # result: Hello Ruby the User Module

 

 

GitHub - set-up-init/ruby-tutorial-tistory: https://thinky.tistory.com/category/Back-End/Ruby

https://thinky.tistory.com/category/Back-End/Ruby. Contribute to set-up-init/ruby-tutorial-tistory development by creating an account on GitHub.

github.com

 

728x90
LIST

'Back-End > Ruby' 카테고리의 다른 글

[Ruby] 8장 예외처리  (0) 2025.03.12
[Ruby] 7장 파일 입출력  (0) 2025.03.08
[Ruby] 5장 클래스와 객체 지향 프로그래밍  (0) 2025.03.01
[Ruby] 4장 함수 및 메서드  (0) 2025.02.26
[Ruby] 3장 Ruby의 제어흐름  (0) 2025.02.24