파이썬 프로그래밍 시작 (14) 패키지, 모듈

파이썬 프로그래밍 시작 (14) 패키지, 모듈

파이썬 프로그래밍의 가장 큰 장점은 직접 프로그래밍하지 이미 만들어놓은 다양한 파이썬 코드들을 가져다 쓸 수 있다는 것입니다. 이때 알아야 하는 개념이 파이썬 패키지와 모듈입니다. 어린이 파이썬 프로그래머 여러분도 이 포스팅의 파이썬 프로그래밍 예제를 따라해 보면 패키지와 모듈을 쉽게 이해하실 수 있을 것입니다. 이 포스팅에서는 패키지와 모듈의 개념부터 만드는 법, 그리고 활용법까지 배워보겠습니다.


글의 순서

패키지와 모듈
패키지가 중요한 이유
파이썬 프로그래밍 : 4단계로 만들어보는 패키지
파이썬 프로그래밍에서 패키지와 모듈을 사용하는 법


패키지와 모듈

패키지는 모듈들의 합입니다. 모듈(module)은 어떤 기능 하나를 코드로 구현해 놓은 파일입니다. 모듈은 변수와 함수로 구성됩니다.

패키지는 이렇게 어떤 기능을 구현할 수 있는 모듈로 구성됩니다. 예를 들어 날씨 정보를 알아보는 패키지도 있고, 위치정보를 알아보는 패키지도 있습니다. 파이썬의 패키지를 다른 프로그래밍 언어에서는 라이브러리라고 합니다.



패키지가 중요한 이유

패키지라는 개념은 왜 생긴 걸까요? 어떤 소프트웨어 개발자가 날씨정보를 알아보는 패키지를 공들여서 만들었다고 가정해보겠습니다. 만약 내가 날씨정보가 필요하고, 날씨정보 소프트웨어를 누군가 개발해놨다는 사실을 알고 있다면 구지 처음부터 코드를 짜지 않아도 됩니다. 그냥 이미 개발되어 있는 패키지를 가져와서 쓰면 되기 때문입니다. 그래서 패키지라는 개념이 중요합니다. 패키지는 누군가 그냥 갖다 쓸 수 있게 만들어 놓은 것입니다.

패키지를 만든다는 것은 마치 세상을 널리 이롭게 하는 것처럼 보입니다. 더군다나 이렇게 개발된 패키지는 여러 곳에서 사용할 수 있으니, 소프트웨어 개발을 빠르고 편하게 할 수 있게 만들어줍니다. 이 패키지라는 개념도 고수를 따라서 코딩해보면서 빠르게 익힐 수 있습니다. 바로 파이썬 프로그래밍으로 넘어가 보겠습니다.


파이썬 프로그래밍 : 4단계로 만들어보는 패키지

패키지를 만들려면 파이썬 코드 파일이 있는 곳에 폴더를 하나 만들어야 합니다. 이 폴더의 이름이 바로 패키지의 이름이 됩니다. coffee라는 패키지를 만든 후 그 안에 아메리카노(americano), 카페라떼(caffelatte)라는 모듈을 추가할 예정입니다. coffee라는 패키지 안에 들어있는 모듈은 각 커피의 레시피를 알려줍니다.

(1) 폴더 만들기 : 폴더 이름이 패키지 이름입니다.

replit 왼쪽 창 맨 위의 Files 두 칸 옆에 있는 폴더 아이콘을 눌러서 폴더를 만듭니다. 폴더의 이름을 coffee로 합니다. 이 폴더의 이름이 패키지의 이름입니다.

(2) 폴더 안에 파일을 추가하여 모듈 만들기

패키지 안에 모듈들을 만들어 넣습니다. coffee 폴더에 커서를 두고 마우스 오른쪽 버튼을 클릭하면 ‘Add a file’ 이 보이는데, 여기를 클릭한 후 americano.py 를 만듭니다. 확장자 py 는 이 파일이 파이썬 코드라는 것을 말해줍니다.

americano.py 파일 안에 커피 레시피라는 함수가 포함된 아래와 같은 Americano 라는 클래스를 만듭니다.

실습코드 : 패키지01
americano.py 파일 내부


class Americano:
  def recipe(self):
    print("아메리카노 : 에스프레소 + 물")

똑같은 과정으로 두 번째 모듈인 caffelatte를 만듭니다. 파이썬 파일인 caffelatte.py 안에 Caffelatte라는 클래스를 만듭니다.

실습코드 : 패키지02
caffelatte.py 파일 내부


class Caffelatte:
  def recipe(self):
   print(" 카페라떼 : 에스프레소 + 우유 ")

(3) 폴더를 패키지로 만들기

coffee라는 폴더가 패키지라는 것을 나타내려면, 이 폴더 안에 특별한 파일 하나가 반드시 들어있어야 합니다. 그 파일은 바로 __init__.py입니다. 파일 내부에는 coffee라는 패키지가 어떤 모듈들로 구성되어 있는지를 아래와 같이 표시해 둡니다. from .americano import Americano는 ‘이 폴더 안에 있는 americano.py 파일에서 Americano라는 클래스를 가져와 줘’ 라는 의미입니다. ‘이 폴더 안’을 나타내는 것이 바로 americano 앞에 찍힌 점(.)입니다.

실습코드 : 패키지03
__init__.py 파일 내부


from .americano import Americano
from .caffelatte import Caffelatte

(4) main.py 파일 편집 : 패키지 불러오기, 오브젝트 만들어보기

__init__.py 파일까지 준비를 마친 후, main 파일에다가는 coffee라는 모듈을 가져오라는 명령을 입력합니다. from coffee import americano는 ‘coffee라는 패키지에서 americano라는 모듈을 가져와 줘’를 의미합니다.

이렇게 패키지를 가져오고 나면 간편하게 오브젝트를 만들 수 있습니다. 모듈 안에 들어있는 클래스를 이용해서 말입니다. 아래 main.py에서 a, c는 오브젝트입니다. a는 americano라는 모듈 안에 들어있는 Americano라는 클래스를 이용하여 만든 오브젝트입니다.

실습코드 : 패키지04
main.py 파일 내부


from coffee import americano
from coffee import caffelatte

a = americano.Americano()
c = caffelatte.Caffelatte()

a.recipe()
c.recipe()

이렇게 쓰고 보니 americano.American에서처럼 아메리카노가 중복되어 헷갈립니다. 그래서 이 두 개를 한 번에 간편하게 표시하는 방법을 많이 사용합니다. 아래의 ‘from coffee import *’ 는 ‘coffee라는 패키지에 들어있는 모듈을 모두 불러와 줘’라는 뜻입니다. 이렇게 쓰고 나면 훨씬 간단하게 오브젝트를 만들 수 있다는 것이 장점입니다.

실습코드 : 패키지05
main.py 파일 내부


from coffee import *

a = Americano()
c = Caffelatte()

a.recipe()
c.recipe()


파이썬 프로그래밍에서 패키지와 모듈을 사용하는 법

coffee라는 패키지에서 보신 것과 같이 패키지를 만들어 놓으면, 그 패키지를 이용하여 오브젝트를 만들고 패키지 안에 들어있는 함수를 이용하기가 무척 편리합니다. 내가 만든 파이썬 프로그램을 다른 사람과 공유하고 싶을 때, 또는 내가 그 코드를 다른 코드에서 다시 사용할 때도 패키지화하는 것은 아주 좋은 방법입니다. 패키지04, 05 코드의 ‘from coffee import americano’에서 보신 바와 같이 from 다음에 패키지 이름, import 다음에 모듈 이름을 쓰기만 하면 모듈이 가지고 있는 기능을 쓸 수 있을 정도로 간편하기 때문입니다.

패키지는 모듈들의 합입니다. 모듈(module)은 어떤 기능 하나를 코드로 구현해 놓은 파일입니다. 모듈은 변수와 함수로 구성됩니다. 여기까지는 나만의 패키지를 만들고, 활용하는 법을 알아보았습니다. 그런데 파이썬이 기본적으로 제공하는 모듈도 많습니다. 이렇게 파이썬이 기본적으로 제공하는 모듈을 표준모듈이라고 합니다.

파이썬 표준모듈을 사용할 때는 ‘from 패키지 이름’을 생략하고 ‘import 모듈 이름’ 만 쓰면 됩니다. 아래는 파이썬 표준 모듈을 사용하는 예를 보여줍니다. ‘이런 종류가 있구나’ 정도만 확인하시면 됩니다. 구지 외우지 않아도 책과 인터넷에서 참고할 수 있습니다.

import sys
import os
import time
import datetime
import math
import random


파이썬 표준 모듈에 대한 정보가 궁금하다면 파이썬 라이브러리 문서를 참고하면 됩니다. 필요한 것이 있을 때 찾아가서 사용방법을 확인하고, 다른 개발자가 짜 놓은 코드로 부터도 사용법을 확인하는데 도움을 받을 수 있습니다. https://docs.python.org/3/library/index.html

혹시 모듈 이름이 길다면, 또는 모듈 이름이 내가 만든 코드의 변수와 이름이 같을 경우 as 구문을 써서 간단하게 만들 수도 있습니다.

import math as m



마치며 …

파이썬 프로그래밍의 가장 큰 장점은 다양한 분야의 많은 사람들이 사용하고 있다는 것입니다. 그만큼 누군가 만들어 놓은 파이썬 코드들이 많아서 직접 프로그래밍하지 않고 가져다 쓸 수 있습니다. 이 포스팅에서는 다른 개발자가 만들어 놓은 코드를 가져다 쓸 때 필요한 개념인 패키지와 모듈에 대해 직접 따라하면서 배워보았습니다.

기존에 있던 패키지와 모듈을 사용하는 방법인, ‘from coffee import americano’ 또는 ‘from coffee import * ’에서 from과 import를 기억해주세요. 이 포스팅에서 배운 패키지와 모듈의 개념부터 활용법까지가 어린이 파이썬 프로그래머 여러분이 원하는 코드를 만들 때 유용하게 쓰이면 좋겠습니다.

 

 

함께 참고하면 더 좋은 글 :
1. 파이썬 프로그래밍 시작하기 (1) 온라인 프로그래밍 환경 replit
2. 파이썬 프로그래밍 시작 (2) 변수, 타입, 문자열 실습
3. 파이썬 프로그래밍 시작 (3) 파이썬 함수 실습
4. 파이썬 프로그래밍 시작 (4) 조건문
5. 파이썬 프로그래밍 시작 (5) 연습문제 : 함수 만들기
6. 파이썬 프로그래밍 시작 (6) 반복문
7. 파이썬 프로그래밍 시작 (7) 반복문과 무한루프
8. 파이썬 프로그래밍 시작 (8) 자료구조(Data Structure) : 리스트
9. 파이썬 프로그래밍 시작 (9) 자료구조(Data Structure) : 튜플
10. 파이썬 프로그래밍 시작 (10) 자료구조(Data Structure) : 딕셔너리
11. 파이썬 프로그래밍 시작 (11) 연습문제 : 자료구조
12. 파이썬 프로그래밍 시작 (12) 클래스, 오브젝트(object, 객체)
13. 파이썬 프로그래밍 시작 (13) 상속(inheritance)
14. 파이썬 데이터 분석! 데이터 분석을 위한 코딩언어 파이썬
15. 애플 실리콘 M1 시리즈 비교 : M1 Pro, M1 Max, M1 Ultra


참고자료

[1] 테크보이 워니(2020), 코딩 1시간만에 배우기 – 파이썬 (ft. 실리콘밸리 엔지니어)
[2] 윤인성(2019), 혼자 공부하는 파이썬, 한빛미디어

Leave a Comment