안녕하세요 jju_developer입니다.
오늘은 파이썬의 모듈에 대해 알아보도록 하겠습니다.
모듈과 패키지 라이브러리를 정확하게 구분을 하는 법이 헷갈려서 찾아봤었습니다.
여기서 모듈 프로그램이 무엇인지 먼저 알아보고 패키지와 라이브러리도 조금 다뤄보도록 하겠습니다.
우선, 모듈이라는 것은 프로그램을 구성하는 요소로 기능의 일부분을 분리한 코드 덩어리를 말합니다.
모듈 프로그래밍은 이러한 필요한 기능을 분리해서 모듈화가 된 그 프로그램을 구현하는 것을 의미합니다.
프로그램을 구현할 때, 모든 코드를 하나의 파일에 모아둔다면, 다른 사람이 읽거나 혹은 미래의 내가 읽었을 때 가독성이 매우 떨어지며, 코드의 유지보수와 재사용이 매우 어렵게 됩니다.
이럴때 필요한 게 바로 모듈 프로그램입니다.
필요한 기능들을 묶어서 나누어 두면 오류의 범위를 최소화할 수 있을 뿐 아니라 시스템을 구조적으로 알아보기 편리하고, 추상화를 통해 프로그램의 효율적인 관리 및 성능 향상이 가능하게 됩니다.
자 이제 모듈과 모듈프로그램이 무엇인지 간단히 알아보았으니, 언어 자체에서 모듈을 제공하는 언어인 파이썬에서 모듈을 어떻게 활용할 수 있는지 살펴보도록 하겠습니다.
Python의 모듈
파이썬에서는 모듈을 .py 확장자로 파일을 생성하게 됩니다.
# calculator.py
def add(a, b):
return a + b
이 파일안의 변수, 함수, 클래스 등을 저장할 수도 있고, 모듈 자체적으로 실행가능한 코드를 구현할 수도 있습니다.
파이썬에서 모듈에 정의된 함수를 사용하려면 크게 세 가지 방법이 있습니다.
(1) 해당 모듈을 import하고, module.function()syntax를 따라 호출하는 방법
import calculator
calculator.add()
(2) from statement를 사용해 모듈 import 하는 방법
#from [module] import [function or value]
from calculator import add
add()
(3) import 후 alias를 사용하는 방법
import calculator as c
c.add()
즉! 정리하자면,
원하는 곳에 모듈을 생성하고 (그 안에 원하는 함수나 클래스나 자주 공통으로 쓰이는 변수를 저장하고) 그것을
쓰고자 하는곳에서 import를 해서 모듈.기능을 해서 불러서 쓰거나 이름을 줄여서 쓰거나 해도 된다는 것입니다.
그렇게 하게 된다면 여러 번 같은 코드를 반복해서 쓸 일이 없겠죵???
여기서 모듈 프로그램이 무엇인지 먼저 알아봤으니, 그럼 패키지와 다른 점이 무엇이냐 하면!
규모가 큰 애플리케이션을 개발하다 보면 모듈만으로는 관리가 어려워지게 됩니다.
이때에는 모듈을 그룹화하고 관리해 주는 패키지가 필요합니다.
대표적인 패키지는 아래가 있습니다.
- numpy
- pandas
- pytest
파이썬에서 패키지란 모듈을 모아놓은 특정 디렉터리입니다.
패키지를 사용하면 모듈의 namespace를 계층적인 구조로 구성할 수 있습니다.
일반적으로 폴더 안에 폴더를 사용해 파일들을 분리하는 방식과 동일하게 모듈을 분리할 수 있지만,
일반 디렉터리가 아닌 패키지임을 인식하기 위해서는 각 폴더마다 __init__.py 라는 파일을 생성해야 합니다.
여러 개의 모듈을 모아두고 하나의 util패키지로 구성하는 등 모듈이 점점 많아진다면 패키지로 패키징 해서 organize 하면 매우 깔끔하게 애플리케이션을 구현할 수 있습니다!!!!
그렇다면 파이썬에서의 라이브러리란? 무엇일까요?
파이썬에서 library란 파이썬 패키지와 자주 호환하여 사용되는 용어다.
물론 패키지도 sub 패키지를 가질 수 있지만 패키지는 모듈의 집합체라면,
라이브러리는 패키지의 집합체의 의미를 가지는 것이죠!
파이썬의 가장 큰 장점 중 하나가 많은 개발자들이 커뮤니티에 재사용한 코드를 모아둔 라이브러리가 풍부하다는 점입니다.
무언가를 개발할 때 처음부터 다 다시 구현하는 게 아니라 라이브러리를 import 해서 사용할 수 있으니 편리하겠죠?
파이썬에서 대표적인 라이브러리!
1. Matplotlib: Python용 데이터 시각화 라이브러리 2. Requests : Python용 HTTP라이브러리 3. Beautiful Soup : Python용 HTML 파싱 라이브러리 |
위에서 pandas와 numpy를 패키지로 분류해 두었지만 사실 pandas와 numpy가 하는 기능은 워낙 다양하기 때문에
이들을 library로 분류해도 무방합니다.
그럼 지금까지 python 모듈과 패키지, 라이브러리의 개념에 대해 알아보았습니다.
오늘도 수고하셨습니다 ^^
'주니어 기초 코딩공부 > Python 기초' 카테고리의 다른 글
파이썬 공부_사이트 (0) | 2023.03.20 |
---|---|
python_matplotlib로 다양한 그래프 그리기(데이터 시각화)_선그래프, 원그래프, 막대 그래프, 파이 그래프 (0) | 2023.03.09 |
python 판다스(pandas Series, DataFrame, Panel) 개념 설명 (2) | 2023.03.09 |
python 데이터 분석을 위한 패키지-넘파이 NumPy (0) | 2023.03.09 |
Python 시작하기 (0) | 2023.03.07 |