개요
이번 블로그에서는 Ruby에서 모듈이란 무엇이며, 어떻게 다루는지에 대해서 설명합니다.
모듈
모듈(Module)은 여러개의 처리를 모은 것으로, Module
문을 사용하여 정의합니다.
module ModuleName
...
end
모듈명은 대문자로 시작합니다.
이름 공간
이름 공간(Namespace)은 같은 이름이지만 뜻이 다른 것에 공간명을 붙여서 구별하는 기능을 말합니다. Ruby에서는 모듈을 사용하여 메서드나 정수, 클래스의 이름이 충돌하지 않도록 할 수 있습니다.
모듈안에서 제공하는 정수나 메서드는 다음과 같이 참조할 수 있습니다.
Math::PI
Math.sqrt(2)
모듈안에 정수는 ::
으로 참조하며, 함수인 경우 .
으로 참조합니다. 같은 모듈의 정수와 함수를 많이 참조하는 경우 아래와 같이 include
를 사용하여 참조할 수 있습니다.
include Math
PI
sqrt(2)
모듈 정의
위에서 보았듯이, .
을 이용하여 모듈의 함수를 사용할 수 있습니다. 하지만 단순히 모듈에 함수를 정의하는 것만으로는 위와 같이 사용할 수 없습니다.
모듈안에서 정의한 함수를 .
을 사용하여 외부에서 사용할 수 있도록 하기 위해서는 module_function
을 사용해야 합니다.
module Greeting
def hello
puts "Hello"
end
module_function :hello
end
Gretting.hello
Mix-in
클래스 정의 안에서 include를 사용하여 모듈을 불러오는 것을 Minx-in
이라고 합니다.
module Greeting
def hello
puts "Hello"
end
end
class World
include Greeting
end
world = World.new
world.hello
완료
이것으로 Ruby에서 모듈을 정의하고 사용하는 방법에 대해서 알아보았습니다. 앞으로 여러개의 처리를 하나로 묶을 필요가 있다면, 모듈을 사용해 보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
지금 보고 계신 블로그를 작성하는
관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.