Developer MJ Story

[Ruby] 비슷한 기능을 가진 function의 모듈화(module, require_relative) 본문

Software/Python&Ruby

[Ruby] 비슷한 기능을 가진 function의 모듈화(module, require_relative)

집근처 2016. 9. 23. 09:05
반응형

안녕하세요. 집근처 개발자입니다.


이번에는 Ruby에서 module화 방법에 대해서 알아 보겠습니다.

코드의 module화는 가독성/재사용/유지보수의 이점을 가져가는데 꼭 필요한 기술입니다.


Ruby는 파일단위로 module을 나눌수도 있고, 같은 파일안에서도 module을 나눌수 있습니다.

먼저 아래 예제 module 파일입니다.

module이름의 첫 글자는 대문자로 써야 합니다.


Nearhome.rb

module Nearhome
  module_function()
  def print()
      return 'NearHome'
    end
end


파일 단위 module을 이용하기 위해서 ruby에서는 require로 불러 올 수 있습니다.

그런데 Atom에서는 script를 실행하는 위치가 main.rb가 있는 폴더가 아니기 때문에 단순 require로는 위의 Nearhome.rb 파일을 찾을 수 없어 에러가 납니다.

이런 에러를 피하는 방법이 상대 경로로 module을 찾는 require_relative로 module을 호출해야 합니다.


Main.rb

require_relative 'Nearhome'

module Developer
  module_function()
  def print()
      return 'Developer'
    end
end
puts(Nearhome.print())
puts(Developer.print())


실행 결과


간단하죠?ㅋ

반응형