본문 바로가기
Python/기초

[파이썬/Python 기초] 모듈, 패키지, 라이브러리, 프레임워크의 차이

by 모두의 케빈 2023. 7. 1.

모듈, 패키지, 라이브러리, 프레임워크의 차이는 무엇일까


모듈이 모이면 패키지가 되고, 패키지가 모이면 라이브러리가 됩니다.

 

모듈, 패키지, 라이브러리의 포함 관계

 

모듈은 프로그램에서 어떤 기능을 하는 작은 단위이자 코드 덩어리입니다. 파이썬 파일(.py)이 하나의 모듈이라고 생각하시면 됩니다. 각각의 모듈은 독립적으로 존재하며 프로그래머는 필요한 기능을 가진 모듈을 그때그때 호출하며 코드를 작성합니다. 이런 방식을 모듈 프로그래밍(Module Programming)이라고 합니다. 

모듈 프로그래밍에는 다음과 같은 장점이 있습니다.

 

 - 모듈을 재사용할 수 있으므로 개발과 유지보수가 용이 (코드의 중복 방지)

 - 모듈은 독립적이므로 기능의 분리가 가능하며 오류 범위를 최소화할 수 있음

 - 여러 명의 프로그래머가 서로에게 독립적인 모듈을 개발하면 되기 때문에 협업에 용이

 - 프로그래머는 맡은 부분에 대해서만 집중하면 되므로, 개발의 효율성이 높아짐

 

패키지는 모듈을 모아두고 관리하는 상위 폴더 또는 디렉토리입니다. 모듈을 패키지에 모아두고 관리하면 관리의 효율성을 높일 수 있습니다.

예를 들어보겠습니다. 사칙연산 모듈, 미분 모듈, 적분 모듈, 삼각함수 모듈처럼 계산과 관련된 다양한 모듈이 있다고 가정해 보겠습니다. 이 모듈들이 모두 따로 흩어져 있으면, 관리하기가 불편합니다. 그래서 이 모듈을 '공학용 계산기'라는 패키지 안에 모아두는 겁니다.

그리고 미분 기능을 사용하고 싶을 때는 '공학용 계산기 폴더에 있는 미분 모듈을 꺼내줘.'라고 파이썬에게 명령하면 됩니다. 대표적인 파이썬의 패키지로 Numpy와 Pandas가 있습니다.

 

라이브러리는 패키지와 자주 혼용되어 사용되는 언어입니다. 아마 이는 가장 많이 활용되는 Numpy나 Pandas와 같은 패키지를 라이브러리라고 부르는 경우도 있기 때문일 것 같습니다. 사실 Numpy나 Pandas는 워낙 다양한 기능을 수행할 수 있기 때문에 라이브러리처럼 보이지만, 엄밀히 말하면 패키지입니다.

라이브러리는 사전적으로 패키지의 집합을 의미합니다. 라이브러리 안에는 무수히 많은 모듈이 포함되어 있기 때문에 라이브러리는 방대한 기능을 제공합니다. 특정 분야의 문제를 풀기 위한 기능의 집합체이자 끝판왕이라고 할 수 있습니다.

대표적인 파이썬 라이브러리로는 시각화 라이브러리인 Matplotlib이 있는데요. Matplotlib을 사용하면 '데이터 분석: 시각화'라는 분야에서 필요한 거의 모든 기능을 활용할 수 있습니다.

 

프레임 워크는 골격, 뼈대를 의미하는데요. 어떤 Task를 수행하기 위해 최적화된 기초 틀을 제공하는 것을 의미합니다. 이 뼈대에는 아키텍처와 애플리케이션 동작의 기본적인 Flow까지 포함되어 있습니다. 프로그래머는 이 뼈대 위에 코딩을 하는 것입니다. 대표적인 프레임 워크로는 Pytorch와 Tensorflow, Keras가 있습니다.

 

다음 시간에는 모듈과 패키지를 직접 코드로 구현해 보도록 하겠습니다.

댓글