본문 바로가기
파이썬

파이썬(python) 강의 8장 - 모듈(module) -

by ChocoPeanut 2017. 5. 23.

파이썬(python) 강의 8

- 모듈(module) -

 

컴퓨터를 사용할 때 파일이 한 두 개만 있다면 우리는 나누거나 할 필요 없이 그냥 사용하면 된다. 하지만 파일의 수가 엄청나게 많아지게 된다면 어떻게 해야 할까? 이런 파일 중에서는 같은 이름을 가진 파일이 있을 수도 있고 언제 만들었는지 무엇을 의미하는지에 따라 구분을 하고 싶을 것이다. 이 때 폴더인 디렉토리라는 것을 사용하여 성격이 비슷한 파일들을 하나의 디렉토리에 넣어준다. 이렇게 되면 양이 많아짐에 따라 늘어나는 복잡도를 명확하게 나타나게 해줄 수 있는 방법이다. 이런 방법을 파이썬에도 적용할 수 있다. 파이썬을 만들 때에도 엄청나게 많은 코드들을 가지고 만드는데 이럴 때 많은 문제가 발생한다. 이럴 때 사람들이 사용하는 많은 코드들 중에서 비슷한 성격을 가지거나 같은 역할을 위해 사용되는 함수들을 묶어 주어야한다. 이런 기능을 수행하는 것이 모듈이다.

 

파이썬은 다양한 내장 모듈이 존재한다. 내장 모듈이라는 것은 파이썬 자체에서 제공하는 함수들로 사용하고자 하는 목적에 따라 import라는 명령을 통해 내장 모듈을 불러서 사용할 수 있다. 예시로 math라는 모듈을 가져와 보았다. math라는 모듈은 수학에 관련된 함수들을 가지고 있는 함수이다. math라는 모듈에 대해 검색을 해보면 안에 있는 다양한 함수를 알 수 있게 되고 모듈 이름을 붙임으로써 모듈에 해당하는 함수를 사용할 수 있게 된다.


 

모듈은 함수들의 집합이라고 할 수 있다. 만약 모듈이 없다면 어떻게 될까? 프로젝트를 만들게 되면 코드가 3, 4줄이 아니고 엄청나게 많게 된다. 또한 프로젝트가 단기로 만드는 것뿐만 아니라 유지 보수하는 작업에서 모두 사용되므로 복잡도가 매우 중요한 고려 사항이 된다. 수정하기 쉽고 이해하기 쉬운 코드를 완성하는 것이 매우 중요한데 이 때 필수적인 것이 모듈이다. 예를 들어 보자. 엄청 많은 코드를 사용하게 되면 특정 함수의 정의와 호출이 많이 떨어질 수 있게 된다. 따라서 특정 함수가 어디에 정의되어 있는지 아는 것은 어렵다. 특히 다른 사용자들이 코드를 수정할 때 모르고 같은 이름의 함수를 작성할 수 있다. 하지만 작용하는 방식은 다르게 된다. 그렇게 되면 뒤에 정의된 함수가 실행되게 된다. 그런데 이런 경우 매우 큰 문제가 발생할 수 있다. 따라서 정리정돈을 잘 하는 것이 중요하다. 이 때 모듈을 사용한다.


 

모듈을 사용하기 위해서는 또 다른 파이썬 파일이 필요하다. 이 파일에 우리가 사용하고자 하는 함수들을 넣게 된다. 이를 import라는 명령을 통해서 가져와서 사용할 수 있다. import를 사용하여 가져오게 되면 해당하는 모듈에 대한 이름을 기입하면 그에 해당하는 모듈의 함수를 불러오게 된다.



- itstory.py 파일

 

모듈을 불러 올 때에도 다양한 방법이 있다. 특정 모듈에 대한 모든 함수를 가져와서 이름을 이용해서 구분하는 방법이 앞에서 본 예시들이다. 여기서는 from을 이용해서 해당 모듈에 대한 특정 함수를 가져오는 것이다. 이 특정함수에 대해서는 모듈의 이름을 붙이지 않더라도 그 함수인지 인지를 하고 바로 사용을 할 수 있게 한다. 이 때 as 라는 명령어도 사용할 수 있는데 as 는 특정 모듈이나 함수에 대해 임의의 이름을 붙여주는 것이다. 예시에서는 b라는 함수에 z라는 이름을 붙여 지금 사용할 때에는 z라고 사용하겠다는 것을 의미하게 된다.