파이썬을 하다보면 라이브러리, 패키지, 모듈에 관한 이야기를 듣곤 합니다. 이 세 가지 개념은 중요하게 쓰이면서도 헷갈리기 때문에 정확한 개념을 갖는 것이 중요합니다.
이번 시간에는 라이브러리, 패키지, 모듈에 대한 개념과 차이점을 다뤄보겠습니다.
결론부터 말하자면, 라이브러리,패키지,모듈의 관계는 다음과 같습니다.
하나씩 살펴보겠습니다.
모듈(module)은 프로그램의 일부 기능을 담당하는 파일 하나를 말합니다. 즉, .py
파일 하나가 모듈 하나라고 볼 수 있죠. 주로 기능에 필요한 함수나 변수, 클래스 등이 담겨있습니다.
때문에 우리가 어떤 프로젝트를 한다고 하면, 생각하고자 하는 기능들을 모듈들로 만들어 main.py
와 같은 실행 파일에서 모듈들을 불러와 사용합니다.
패키지(package)란 기능과 관련된 모듈들을 모은 폴더를 말합니다. 큰 프로젝트에서는 여러 모듈들을 사용하기 때문에 비슷한 모듈끼리 묶어 관리할 필요가 있습니다. 때문에 패키지를 사용하여 모듈들을 분류하고 정리합니다.
라이브러리(library)는 여러 패키지들과 모듈들을 모아둔 것을 의미합니다. 일종의 코드가 담긴 선물상자인거죠. 라이브러리는 크게 두 가지로 나뉩니다.
종류 | 개념 |
---|---|
표준 라이브러리 | 파이썬 설치 시 같이 설치되는 라이브러리입니다.(ex. os, time, random 등) |
외부 라이브러리 | 별도의 설치가 필요한 라이브러리입니다. (ex. pandas, numpy 등) |
이처럼 라이브러리는 프로그래밍을 할 때 유용하게 쓰이는 기능들을 모아놨기 때문에 자주 사용됩니다. 하지만 표준 라이브러리가 아닌 이상 별도의 설치가 필요하죠.
코랩에서 라이브러리 설치는 다음과 같은 방법으로 가능합니다.
%pip install 라이브러리명
라이브러리 설치가 완료되면 파이썬 코드를 짜면서 해당 라이브러리를 가져와 사용할 수 있습니다.
이러한 모듈, 패키지, 라이브러리를 파이썬에서 가져올 때는 import
를 사용합니다. 사용법은 다음과 같습니다.
import 파일명
만약, random 라이브러리의 choice() 함수를 사용하고 있다면 다음과 같이 작성할 수 있습니다.
import random
lst = [1,2,3,4,5]
print(random.choice(lst))
# 결과
# lst의 무작위 원소 하나가 출력됩니다.
이렇듯, 사용할 때는 파일명.함수명()
의 형태로 사용합니다.
파일명을 쓰지 않고, 함수명만 쓰고 싶을 때는 from
을 사용합니다.
from 파일명 import 함수명
앞선 choice() 함수를 from을 사용하여 나타내면 다음과 같습니다.
from random import choice
lst = [1,2,3,4,5]
print(choice(lst))
복잡한 패키지 구조를 가진 경우, .
을 붙여 함수의 경로를 상세히 적을 수도 있습니다.
from nltk.tokenize import word_tokenize
# 외부 라이브러리이기에 별도의 설치가 필요합니다.
또한, random 라이브러리의 모든 요소를 사용하고 싶을 때는 *
을 사용합니다.
from random import *
lst = [1,2,3,4,5]
print(choice(lst))