파이썬 모듈 | 파이썬 독학 6-1

함수까지 학습을 했다면 이제 파이썬으로 무엇을 할 수 있나? 생각해 볼 시간입니다.

상업용 소프트웨어를 개발하기에는 아직 조금 부족할지 몰라도 실생활에서 사용할 유용한 프로그램을 만드는 것은 충분히 가능한 수준입니다.

파이썬 모듈을 사용한 개인 프로젝트를 따라해볼 수 있습니다.

보통 교육기관에서 프로그래밍을 배울 때는 처음 선택한 교재의 과정을 쭈욱 따라서 함수를 배운 다음 클래스를 배울 때 OOP(객체지향)과 자료구조의 개념을 배우는 등 선형으로 학습을 하게 됩니다. 유료 인터넷강의를 구매해도 대부분 그렇게 진행이 됩니다.

당연히 교육기관에서는 수강자에게 교육비를 받고 진행하는 것이므로 약속한 교재와 과정에 대하여 끝까지 가르칠 책임이 있습니다.

다만 그렇게 학습을 했을 때 진도를 끝까지 마치는 일이 쉬운 것은 아닙니다. 왜냐하면 어떤 언어를 학습하더라도 뒷쪽의 챕터를 이해하기 위해서는 컴퓨터공학의 기초가 필요한 내용이 나오기 때문입니다.

한때 IT업계 인력수요가 늘어났을 때 전공자냐 비전공자냐를 놓고 많은 이야기가 있었습니다. 당연한 이야기지만 4년제와 대학원을 거치며 컴퓨터구조와 이에 관련한 학문(수학, 전자공학 등)의 기초를 쌓은 인력과 단순히 컴퓨터 코딩 기술을 배운 인력과는 언젠가 차이가 벌어질 수 밖에 없습니다.

이것은 다소 논란이 있는 주제입니다. 이 글은 컴퓨터에 대한 배경지식이 거의 없는 독자를 대상으로 합니다.

여기서 이야기하려는 것은 컴퓨터공학의 기본 지식이 부족한 일부의 학습자들에게는 기존 교재의 학습방식이 적합하지 않을 수도 있다는 부분입니다.

그래서 이 포스팅에서는 처음에 객체지향과 같은 파이썬 언어가 가진 추상적 개념을 이해하려고 노력하는 것 보다 실용적인 부분으로 접근하면 어떨까 합니다.

파이썬의 모듈을 사용하여 실생활에 사용할 수 있는 코드를 만들어 보도록 하겠습니다.

파이썬 모듈
파이썬 모듈

파이썬 모듈

주요내용

1. 파이썬 모듈에 대해 이해합니다.

2. 기본 파이썬 모듈을 import 문으로 사용합니다.

3. 외부 파이썬 모듈을 pip 명령어로 설치하고 import 해서 사용합니다.

파이썬 모듈이란 무엇인가요?

모듈은 재사용 가능한 프로그램을 말합니다. 이전 학습에서 함수를 재사용 가능하도록 설계한 프로그램 단위라고 설명했습니다. 모듈도 마찬가지로 재사용 가능한 프로그램을 말하는데 모듈은 함수를 포함할 수 있습니다.

함수는 print 함수처럼 보통 하나의 기능을 담당합니다. 모듈은 여러개의 함수를 포함하므로 함수보다 복잡한 프로그램을 만드는데 사용할 수 있겠죠?

여기까지만 들어도 조금 복잡합니다.

코드를 통한 실습으로 알아보겠습니다. 파이썬을 설치할 때 기본 설치되는 모듈을 모아서 파이썬 표준 라이브러리(The Python Standard Library) 라고 합니다.

Library 가 도서관이라는 뜻을 생각하면 이해가 갑니다.

파이썬의 공식 문서를 살펴보면 정말 많은 모듈이 들어있는데요. 대부분의 프로그래머들이 사용할 수 있는 프로그램을 모아놓은 것들입니다.

간단히 수학관련 모듈을 사용해 보겠습니다.

파이썬 표준 라이브러리
(파이썬 모듈)

import math

print(math.sqrt(9))
3.0

import 라는 키워드가 나왔습니다. 모듈을 가져올 때 import를 사용합니다.

이제 math 안에 있는 함수를 사용하기 위해서는 도트연산자 . 를 사용해서 함수를 호출하면 됩니다. 제곱근을 구하는 함수가 sqrt 이므로 인수 9를 전달하면 답은 3.0 이 나옵니다.

프로그래머는 제곱근을 구하는 코드를 작성할 필요가 없으니 참 편리합니다.

print(math.sqrt(2))
1.4142135623730951

sqrt(2)와 같이 소수점 아래가 끝이 없는 경우 일정 지점에서 파이썬이 근사값을 취합니다.

제곱근 같이 막상 구현하려면 복잡한 알고리즘의 함수도 그냥 사용할 수 있도록 기본 라이브러리에 포함시켜 놨습니다. 뿐만 아니라 파이썬이 공식적으로 지원하기 때문에 속도가 빠르고 안정성이 높습니다.

이 포스팅에서 모든 라이브러리 모듈을 다루지는 않을 것 입니다.

아래의 링크에 들어가면 math 모듈에 들어있는 함수들을 볼 수 있습니다. 아래의 문서에는 제곱과, 반올림 부터 삼각함수까지 함수의 사용설명서가 있습니다. 필요할 때 마다 참고서로 사용하도록 합니다.

math — Mathematical functions — Python 3.9.1 documentation

공식 문서에 있는 어떤 모듈도 먼저 import 문을 사용해서 가져온 다음 그 안에 있는 함수를 사용할 수 있습니다.

현실적으로 모든 모듈의 함수를 처음에 암기하는 것은 어려울 것 입니다. 그보다는 필요할 때 마다 내가 원하는 기능을 빠르게 찾을 수 있도록 내용을 파악하고 있으면 좋습니다.

파이썬 외부 라이브러리

파이썬을 설치할 때 들어있지 않은 라이브러리들을 외부 라이브러리라고 합니다. 외부 라이브러리를 설치해서 그 안의 모듈을 불러와서 사용할 수 있는데요.

파이썬의 가장 큰 장점은 양질의 외부라이브러리 프로젝트가 많다는 것 입니다. 게다가 대부분 오픈소스 라이센스를 적용하기 때문에 상업적으로 사용할 수 있는 자원이 많습니다.

외부 라이브러리는 개인이 배포하기도 하지만 신뢰할 수 있는 프로젝트들을 PYPI 에서 관리합니다.

패키지는 모듈을 담고 있는 폴더를 말합니다. 여러개의 모듈로 구성한 계층 구조라고 할 수 있습니다.

복잡해보이지만 [ 함수 >>> 모듈 >>> 패키지 ] 의 순서로 규모가 커진다는 것을 알 수 있습니다.

좀 더 쉬운 비유로 생각해보면 [ 자영업 >> 중소기업 >> 대기업 ] 같이 스케일의 차이가 있습니다.

예를 들어 화면에 도형을 그리는 함수가 있다면, 모듈은 도형을 그리는 함수와 GUI함수를 모아서 윈도우의 그림판 프로그램을 만들 수 있습니다. 패키지는 그래픽과 필터처리하는 모듈을 모아서 포토샵이나 일러스트레이터 프로그램을 만든다고 생각하면 이해가 쉬울 것 입니다.

절대적인 것은 아니므로 어디까지나 편의적인 설명으로 참고하시길 바랍니다.

중요한 것은 간단한 기능에서 시작하여 마치 벽돌을 쌓듯이 합쳐나가면 크고 강력한 프로그램이 만들어 지는데 패키지가 최상위 계층에 있다는 것 입니다. 패키지(package)를 다른 말로 프레임워크(framework) 라고도 말합니다.

이제 복잡한 설명은 그만하고 외부 라이브러리를 설치해서 모듈을 사용해보겠습니다.

윈도우 명령 프롬프트에서 다음을 입력합니다. 윈도우10에서 [윈도우키 + R] 에 ‘cmd’ 입력하면 명령 프롬프트가 실행됩니다.

pip install colorama

colorama 는 터미널의 텍스트에 색상을 입힐 수 있는 패키지입니다. 설치가 성공하면 아래와 비슷한 메시지가 명령 프롬프트에 출력됩니다. (버전에 따라 메시지가 다를 수 있음)

Collecting Colorama
  Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Installing collected packages: Colorama
Successfully installed Colorama-0.4.4

파이썬 IDE 를 열고 아래의 코드를 실행합니다.(IDE 파이참 등 파이썬 실행환경에서 사용)

from colorama import Fore, Back, Style

print(Fore.RED + Back.CYAN + 'red text, cyan back')
print(Fore.BLUE + Back.LIGHTMAGENTA_EX + 'blue background')
print(Fore.BLACK + Back.YELLOW + 'yellow background')
print(Style.RESET_ALL + 'reset all style')
실행결과

코드를 실행하면 위와 같이 콘솔환경에서도(CLI) 칼라풀한 출력을 볼 수 있습니다.

여기서 from 패키지 import 모듈 방식으로 이름을 가져와 사용할 수 있습니다. 이는 모듈이 네임스페이스(namespace) 라는 독자적인 이름 공간을 사용할 수 있게 합니다.

처음 보면 조금 개념이 헷갈릴 수 있는데 colorama.Fore.RED 처럼 쓰면 코드가 길어지니까 Fore.RED 로 코드를 줄이려고 하는 것 입니다.

파이썬의 패키지 관리 시스템인 pip 명령어를 사용하면 매우 쉽게 외부 라이브러리를 설치할 수 있습니다.

다양한 써드파티의 패키지에 힘입어 파이썬이 현재처럼 많은 인기를 얻은 것 인데요. 정말 엄청난양의 패키지를 아주 쉽게 사용할 수 있습니다.

현재 진행중인 프로젝트만 수십만개에 230만개의 프로젝트가 릴리즈되었다면 그 규모가 어느정도인지 알 수 있겠죠?

우리가 상상하는 대부분의 기능이 파이썬 패키지에 있습니다.

또 대부분 오픈소스로 무료로 이용가능하기 때문에 외부 라이브러리가 중요합니다.

요약

이 포스팅에서는 모듈의 개념에 대하여 설명하면서 라이브러리와 패키지에 대하여도 조금 설명을 했습니다.

파이썬 표준 라이브러리에서 math 모듈을 사용해 보고, 명령 프롬프트에서 pip 명령으로 외부 라이브러리에서 가져온 colorama 모듈로 칼라를 입힌 텍스트도 출력해봤습니다.

여기서는 타인이 만든 모듈만 사용해봤는데 당연히 우리 스스로 모듈을 만들 수도 있습니다.

하지만 스스로 모듈을 만들기 전에 남이 만들어놓은 모듈을 사용해보고 어떻게 설계되었는지 보는 일도 중요합니다.

타인의 모듈을 나의 모듈에 포함시켜서 만드는 것도 가능합니다. 많은 모듈과 패키지에서 이 방법을 쓰고 있습니다. 또 파이썬의 표준 라이브러리도 포함할 수 있습니다. print 함수를 또 만들 필요는 없으니까요.

여기까지 학습했다면 이제 간단한 프로그램을 하나씩 만들어 보는 것이 좋습니다.

유명한 모듈은 인터넷에 자습서(tutorial)가 잘 나와있기 때문에 따라하고 수정하면서 자신만의 앱을 만들어 보는 것을 추천합니다. 이 모든게 가능한 것은 파이썬 모듈이 잘 나와 있기 때문입니다.

C언어의 경우 간단한 윈도우 창하나를 만들기 위해서도 수백줄의 코드를 사용합니다. 이에 비하면 파이썬은 정말 쉬운 언어입니다.

만약 파이썬이 C언어 같이 어려웠다면 이 포스팅도 연재하지 않았을 것 입니다.

누구나 할 수 있는 언어가 파이썬입니다.

외부참조문서

PyPI · The Python Package Index

The 22 Most-Used Python Packages in the World | by Erik van Baaren

파이썬 코딩 3-3 | 모듈이란? | import 문, from import 문 | 파이썬 패키지

Leave a Comment