8. Python Programming Course : Modules and Packages

8장. 모듈 및 패키지

'모듈'과 '패키지'는 단순히 코드를 나누기 위한 수단이 아니라, 하나의 프로젝트를 논리적으로 구성하고, 재사용 가능하며 유지보수가 쉬운 코드로 발전시키기 위한 필수적인 도구입니다. 
특히 파이썬은 다양한 표준 라이브러리와 외부 패키지를 통해 개발자의 생산성을 크게 향상시킬 수 있는 환경을 제공하고 있기 때문에, 이러한 구조적 요소들에 대한 이해는 더욱 중요합니다. 
본 강의에서는 파이썬에서 모듈과 패키지를 어떻게 활용할 수 있는지에 대해 이론과 실습을 병행하며 자세히 살펴보고자 합니다.


강의 개요

  1. 모듈 가져오기(Importing Modules)

  2. 표준 라이브러리 모듈(Standard Library Modules)

  3. 사용자 정의 모듈 만들기(Creating Your Own Modules)

  4. 파이썬 패키지(Python Packages)


1. 모듈 가져오기 (Importing Modules)

1.1 개념 및 필요성

  • 모듈: 관련된 함수, 변수, 클래스 등을 하나의 파일로 모아 둔 파이썬 파일(.py)

    - 이 파일은 .py 확장자를 가진 일반적인 파이썬 스크립트와 동일하지만, 다른 파일에서 import 문을 통해 불러와 사용할 수 있다는 점에서 큰 차이를 가집니다. 즉, 모듈은 하나의 독립적인 기능 단위로 작동하며, 여러 프로그램에서 재사용할 수 있는 코드 조각이라고 볼 수 있습니다.

  • 필요성: 서로 다른 파일에 정의된 기능을 재사용하여 코드 중복을 줄이고, 구조적인 설계를 가능하게 함

    - 프로그램의 규모가 커지면, 모든 코드를 하나의 파일에 넣는 것은 매우 비효율적이고, 유지보수도 어렵습니다. 예를 들어, 숫자를 더하거나 날짜를 계산하는 함수들이 여러 파일에 흩어져 있다면, 나중에 수정할 때 중복된 코드를 일일이 찾아 고쳐야 할 수도 있습니다. 하지만 이 기능들을 별도의 모듈로 정리해두면, 필요한 곳에서 간편하게 불러와 사용할 수 있고, 한 곳만 수정해도 전체 프로그램에 반영되기 때문에 훨씬 효율적인 코드 관리가 가능해집니다.

    모듈을 사용하면 협업 시에도 이점이 큽니다. 각 팀원이 서로 다른 기능을 담당할 때, 각각의 기능을 모듈로 분리해 작업하면 충돌을 줄이고, 전체적인 코드 구조도 명확하게 유지할 수 있습니다. 요약하자면, 모듈은 코드의 재사용성, 유지보수성, 협업 효율성을 모두 높여주는 핵심 도구입니다.

1.2 기본 문법

1.3 실습 예제

  1. random 모듈을 import하여 1~100 사이의 난수 5개 출력

  2. os 모듈을 import하여 현재 작업 디렉터리 확인


2. 라이브러리 모듈 (Library Modules)

2.1 표준 라이브러리(Standard Library) 개요

  • 파이썬 설치 시 기본 제공되는 모듈 모음
  • 외부 패키지 설치 없이 즉시 사용 가능 (별도 설치 불필요)

2.2 외부 라이브러리 개요

  • 파이썬의 방대한 오픈소스 생태계로 수많은 개발자들이 다양한 분야에 특화된 외부 라이브러리를 만들어 배포하고 있습니다. 이 외부 라이브러리들은 다양한 작업을 손쉽게 처리할 수 있도록 해줍니다.

  •  파이썬에 기본적으로 포함되어 있지 않기 때문에, 보통 pip이라는 패키지 관리 도구를 사용해 설치합니다. 

    - pip install 패키지 이름 (예: pip instal pandas) 명령어를 입력하면 패키지가 자동으로 다운로드되어 설치됩니다.

2.3 주요 모듈 소개

모듈명 분류 설명
math표준 라이브러리수학 관련 함수 제공 (삼각함수, 제곱근 등)
random표준 라이브러리난수 생성 및 무작위 선택 기능 제공
datetime표준 라이브러리날짜 및 시간 처리 (현재 시간, 날짜 연산 등)
os표준 라이브러리운영체제와 상호작용 (파일/디렉터리 관리 등)
sys표준 라이브러리파이썬 인터프리터와 실행 환경 정보 접근
pandas외부 라이브러리표 형태의 데이터 분석 및 처리 도구 (DataFrame 등)
numpy외부 라이브러리고성능 수치 계산을 위한 배열, 선형대수 연산 기능
seaborn외부 라이브러리통계적 데이터 시각화 
matplotlib외부 라이브러리기본 시각화 도구 (선형 그래프, 막대그래프 등)
requests외부 라이브러리HTTP 요청 처리 및 웹 데이터 크롤링

⚠️ 참고사항
  • 외부 라이브러리를 처음 사용할 때 pip install로 패키지 설치
  • 새로운 컴퓨터나 가상환경(예: venv, conda)을 쓸 때는 패키지를 다시 설치
  • 설치한 라이브러리 목록은 pip list로 확인 가능
  • 라이브러리 버전이 오래된 경우 pip install --upgrade 패키지명으로 업데이트 가능

2.3 실습 예제


3. 사용자 정의 모듈 만들기 (Creating Your Own Modules)

3.1 모듈 파일 작성

1. 프로젝트 디렉토리에  원하는 모듈이름.py 파일을 생성 (예: utils.py)

⚠️ 사용자 정의 모듈 사용 시 주의할 점
1) 모듈 파일은 .py 확장자여야 함 
    - 반드시 .py 확장자를 가진 파이썬 파일이어야 하며, 이름에 공백이나 특수문자가 들어가면 안 됩니다. 

(예: my utils.py - 사용불가 , my_utils.py - 사용가능)


2) 모듈과 사용하는 스크립트가 같은 디렉터리에 있어야 함
    import 문은 기본적으로 현재 실행 중인 파일과 같은 폴더 내의 .py 파일을 찾습니다. 만약 다른 폴더에 있다면, sys.path를 수정하거나 패키지 구조로 설정해야 합니다.


3) 모듈 이름과 표준 라이브러리 이름이 겹치면 안 됨
    - 예를 들어, random.py라는 이름으로 모듈을 만들면 파이썬의 표준 라이브러리인 random과 충돌이 일어나 오류가 발생할 수 있습니다. 따라서 사용자 정의 모듈은 이름을 고유하게 짓는 것이 좋습니다.


2. 다음과 같이 원하는 기능의 함수를 정의


3.2 모듈 사용 방법


3.3 실습 과제

  • 자신만의 계산기 모듈 calc.py를 작성하여 덧셈, 뺄셈, 곱셈, 나눗셈 함수 생성 후 테스트


4. 파이썬 패키지 (Python Packages)

4.1 패키지 개념

  • 패키지: 여러 모듈을 디렉터리 구조로 관리하는 단위

  • 최상위 디렉터리에 __init__.py 파일을 두어 패키지임을 표시

4.2 패키지 구조 예시

project_root/
│
├─ my_package/
│   ├─ __init__.py
│   ├─ module_a.py
│   └─ module_b.py
│
└─ main.py
  • module_a.py 내용:

  • module_b.py 내용:

  • __init__.py: 빈 파일 또는 패키지 초기화 코드 작성

4.3 패키지 사용 방법

4.4 실습 과제

  • 자신만의 패키지 data_tools를 생성하여 파일 입출력, 데이터 정제 함수를 포함한 모듈 작성 및 테스트


강의 요약 및 확장 활동 추천

  1. 모듈과 패키지를 활용하여 코드 재사용성과 유지 보수성을 극대화할 수 있습니다.

  2. 실습을 통해 다양한 표준 라이브러리를 익히고, 직접 모듈과 패키지를 구성해 보세요.

  3. 추가 과제로 GitHub에 패키지 구조를 올리고 버전 관리 경험을 쌓아 보세요.

댓글

이 블로그의 인기 게시물

Python 올인원 강좌: 기초부터 실전 프로젝트까지 완벽 정리!

7. Python Programming Course : Working with Files

4. Python Programming Course : Data Structures