2 분 소요

모듈(Module)과 라이브러리(Library)의 개념과 차이

파이썬의 모듈(Module)과 라이브러리(Library)의 개념과 차이에 대해 정리해보겠습니다.
파이썬에서는 코드의 재사용성을 높이기 위해 다양한 모듈과 라이브러리를 활용합니다.


1. 모듈(Module)과 라이브러리(Library)의 차이점

개념 설명
모듈(Module) .py 파일 하나
패키지(Package) 여러 모듈을 포함하는 디렉토리 (폴더)
라이브러리(Library) 여러 패키지를 포함하는 대규모 코드 집합
구분 모듈(Module) 라이브러리(Library)
정의 특정 기능을 포함하는 .py 파일 여러 모듈과 패키지를 모아둔 것
구성 요소 하나의 .py 파일 (함수, 클래스, 변수 포함) 여러 개의 모듈과 패키지를 포함
예시 math.py, random.py NumPy, Pandas, Matplotlib
사용 방식 import module_name import library_name (라이브러리는 패키지 형태로 제공)
규모 단일 기능 제공 (작음) 다양한 기능 포함 (크고 복잡함)

2. 모듈(Module)이란?

  • 모듈(Module)은 특정 기능을 포함하는 .py 파일
  • 여러 함수와 클래스를 포함하여 특정 기능을 수행
  • 모듈을 사용하면 코드의 재사용성을 높이고, 유지보수를 쉽게 할 수 있음

모듈 사용 방법

import math  # math 모듈 불러오기

print(math.sqrt(16))  # 제곱근 계산 (출력: 4.0)
print(math.pi)  # 원주율 값 (출력: 3.141592...)

3. 라이브러리(Library)란?

  • 라이브러리(Library)는 여러 개의 모듈(Module)과 패키지(Package)로 구성된 코드 모음
  • 특정 기능을 수행하는 다양한 모듈을 모아둔 형태
  • 라이브러리는 파이썬 표준 라이브러리(내장)와 외부 라이브러리(설치 필요)로 나뉨

라이브러리 사용 방법

import numpy as np  # NumPy 라이브러리 불러오기

arr = np.array([1, 2, 3])
print(np.mean(arr))  # 평균값 계산

4. 패키지(Package)와의 관계

  • 패키지(Package)는 여러 개의 모듈을 포함하는 폴더(디렉토리)입니다.
  • 패키지는 모듈을 그룹화하여 체계적으로 관리하는 역할을 합니다.
  • 패키지는 __init__.py 파일을 포함하여 여러 모듈을 묶어서 관리합니다.

패키지 구조 예시

mypackage/  
│── __init__.py  
│── module1.py  
│── module2.py  

패키지 사용 예시

from mypackage import module1
print(module1.some_function())

5. 주요 내장 모듈과 메소드

(1) Math 모듈 (수학 연산)

메소드 설명
math.sqrt(x) x의 제곱근 반환
math.pow(x, y) x의 y승 반환
math.factorial(n) n! (팩토리얼) 반환
math.log(x, base) 밑이 base인 로그 계산
import math
print(math.sqrt(16))  # 4.0
print(math.pow(2, 3))  # 8.0
print(math.factorial(5))  # 120
print(math.log(8, 2))  # 3.0

(2) Random 모듈 (난수 생성)

메소드 설명
random.randint(a, b) a~b 사이의 정수 난수 생성
random.random() 0~1 사이의 실수 난수 생성
random.choice(list) 리스트에서 랜덤 요소 선택
random.shuffle(list) 리스트 요소를 랜덤하게 섞음
import random
print(random.randint(1, 10))  # 1~10 사이 난수
print(random.random())  # 0~1 사이 실수 난수
print(random.choice(["apple", "banana", "cherry"]))  # 리스트에서 랜덤 선택

(3) Datetime 모듈 (날짜 및 시간)

메소드 설명
datetime.datetime.now() 현재 날짜 및 시간 반환
datetime.datetime.strptime(date_str, format) 문자열을 날짜 객체로 변환
datetime.datetime.strftime(format) 날짜 객체를 문자열로 변환
import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 현재 날짜 및 시간 출력

6. 데이터 분석을 위한 주요 라이브러리

(1) NumPy (수학 연산)

import numpy as np
arr = np.array([1, 2, 3, 4])
print(np.mean(arr))  # 평균값
print(np.sum(arr))  # 합계

(2) Pandas (데이터 분석)

import pandas as pd
df = pd.DataFrame({"이름": ["홍길동", "이순신"], "나이": [25, 30]})
print(df.head())

(3) Matplotlib (데이터 시각화)

import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [10, 20, 30]
plt.plot(x, y, marker="o")
plt.show()

7. 사용자 정의 모듈 만들기

  • 사용자가 직접 .py 파일을 만들어 함수나 변수를 정의하고, 다른 파일에서 가져올 수 있습니다.

1) 사용자 정의 모듈 생성 (mymodule.py)

# mymodule.py

def greet(name):
    return f"안녕하세요, {name}님!"

2) 다른 파일에서 사용자 정의 모듈 사용

import mymodule
print(mymodule.greet("철수"))  # 안녕하세요, 철수님!

8. 결론

모듈, 패키지, 라이브러리의 차이

  • 모듈(Module): .py 파일 하나 (함수 및 클래스를 포함)
  • 패키지(Package): 여러 모듈을 포함하는 폴더 (__init__.py 포함)
  • 라이브러리(Library): 여러 패키지와 모듈을 모은 큰 기능 집합

모듈을 사용하면?

  • 코드의 재사용성이 증가
  • 파일 크기를 줄이고 유지보수가 쉬워짐
  • 필요한 기능을 모듈로 분리하여 관리 가능

-> 모듈과 라이브러리를 잘 활용하면 더욱 효율적인 파이썬 프로그래밍이 가능

태그:

카테고리:

업데이트:

댓글남기기