Ruby의 모듈

2020-09-30 hit count image

Ruby에서 모듈이란 무엇인지 어떻게 다루는지에 대해서 살펴봅니다.

개요

이번 블로그에서는 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에서 모듈을 정의하고 사용하는 방법에 대해서 알아보았습니다. 앞으로 여러개의 처리를 하나로 묶을 필요가 있다면, 모듈을 사용해 보시기 바랍니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

책 홍보

저도 블로그를 시작한지 1년만에...책을 다 써봅니다...인생에서 이런 날도 오는군요...타국에서 책 출판도 할 수 있고, 참 좋은 세상입니다.

이번에 쓴 책은 스무디 한 잔 마시며 끝내는 React Native입니다. 다양한 예제를 통해 리액트 네이티브를 공부할 수 있도록 구성해 보았습니다. 또한 설치부터 배포까지 실전에서도 사용할 수 있는 내용들을 담고 있습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native React Native로 실전 스마트폰 앱 만들기
Posts