모듈? 모듈에 대한 비유
선생과 학생으로 이루어진 학교가 있다 - 학생이 늘어남 - 선생 공급 증가 - 학생 연령에 따라 학년 나눔 - 학년 안에서 반을 또 나눔
반이 없다고 생각하면, 체계없어 여러가지 문제가 발생. 따라서 여러가지 일정 기준에 따라 학생들을 묶는 것. (나이-학년 등)
마찬가지로 파일이 많은 상황이라면, 디렉토리를 만들어 성격이 비슷한 파일을 하나로 묶는다. 양이 많아짐에 따라 발생하는 복잡함을 낮추는 역할을 하는 것이다.
파이썬
#math라는 디렉토리(모듈)안에 아래 관련 메소드들이 그룹핑되어 저장 import math print(math.ceil(2.9)) #올림 print(math.floor(2.9)) #내림 print(math.sqrt(16)) #제곱근
3
2
4.0
루비
puts(Math.sqrt(16)) 1 4.0
중복의 제거, 재활용성의 증대
루비의 모듈은 파일이 분리될 수도, 그렇지 않을 수도 있다.
임포트하는 과정. 파이썬은 import
- require './Minsoo'
- require_realtive 'Minsoo'
#module 키워드와 대문자로 시작하는 모듈명
module Minsoo
module_function()
#(모듈.함수이름)으로 접근가능하게하는 루비내장함수
def a()
return "a"
end
end
puts(Minsoo.a())
모듈 파일 분리
모듈 이해
모듈 분리
module Auth module_function() def login(accountid) members = ["minsoo", "hj", "kk"] for member in members do if member == accountid return true end end return false #일치하지 못한 사용자에 대한 값.일치 했으면, 위에 포문에서 이미 실행되고 끝났을 것임. end end
모듈 사용
require_relative 'Auth' puts ("put yout ID") accounts = gets.chomp() if Auth.login(accounts) puts ("Hello #{accounts}") else puts ("who are you ?") end