본문 바로가기
프로그래밍/Python

[Python]파이썬 프로젝트, 체계적으로 관리하고 싶다면? 패키지와 자주 쓰는 내장 모듈🛠️

by 다다면체 2025. 3. 28.
728x90
반응형

안녕하세요! 지난 시간에는 파이썬 코드를 효율적으로 관리하는 핵심 도구인 모듈에 대해 알아보았는데요. 오늘은 한 단계 더 나아가, 여러 개의 모듈을 묶어서 관리하는 패키지 (Package) 와 파이썬에서 기본적으로 제공하는 유용한 내장 모듈 들에 대해 자세히 살펴보겠습니다. 마치 잘 정리된 서류철과 기본적으로 갖춰진 사무용품 세트 같다고 생각하시면 돼요! 💼

📦 패키지 (Package): 모듈들을 폴더처럼 관리하세요!

개념 및 필요성

패키지는 관련된 모듈들을 하나의 디렉토리 (폴더) 안에 묶어 놓은 것 입니다. 마치 여러분의 컴퓨터에서 파일들을 폴더별로 정리하는 것과 같은 개념이죠.

패키지를 사용하는 이유는 다음과 같습니다:

  • 모듈 관리의 용이성: 여러 개의 모듈을 논리적으로 그룹화하여 관리하기 쉽습니다. 프로젝트 규모가 커질수록 패키지의 필요성은 더욱 커집니다. 마치 서랍장 안에 칸막이를 만들어 정리하는 것과 같아요! 🗄️
  • 이름 충돌 방지: 서로 다른 패키지 안에 같은 이름의 모듈이 존재하더라도 충돌을 방지할 수 있습니다. 마치 다른 회사의 같은 이름의 제품을 구분하는 것과 같습니다. 🏢
  • 코드의 구조화 및 가독성 향상: 코드를 의미 있는 단위로 나누어 관리함으로써 전체적인 프로젝트 구조를 파악하기 쉽고 코드의 가독성을 높여줍니다. 마치 책을 챕터별로 나누는 것과 같아요! 📖

구조

패키지는 계층적인 구조를 가질 수 있습니다. 즉, 패키지 안에 또 다른 패키지 (서브패키지)를 포함할 수 있습니다.

my_project/
├── main.py
└── my_package/
    ├── __init__.py
    ├── module1.py
    └── sub_package/
        ├── __init__.py
        └── module2.py

위 예시에서 my_package는 하나의 패키지이며, 그 안에 module1.py라는 모듈과 sub_package라는 서브패키지를 가지고 있습니다. 중요한 점은 각 패키지 디렉토리에는 반드시 __init__.py 라는 파일이 있어야 한다는 것입니다. 이 파일은 해당 디렉토리를 파이썬 패키지로 인식하도록 만들어주는 역할을 합니다. __init__.py 파일은 비어 있을 수도 있고, 패키지 초기화 코드를 포함할 수도 있습니다.

임포트 방법

패키지 안의 모듈을 임포트하는 방법은 다양합니다.

  1. 패키지 전체 임포트:패키지 이름과 모듈 이름을 점(.)으로 연결하여 임포트하고, 함수를 호출할 때도 같은 방식으로 접근합니다.
    import my_package.module1
    my_package.module1.some_function()
    
  2. 특정 모듈 임포트:from 키워드를 사용하여 패키지에서 특정 모듈만 직접 임포트하여 사용할 수 있습니다.
    from my_package import module1
    module1.some_function()
    
  3. 서브패키지 안의 모듈 임포트:서브패키지 안의 모듈도 마찬가지로 점(.)을 사용하여 접근할 수 있습니다.
    import my_package.sub_package.module2
    my_package.sub_package.module2.another_function()
    
  4. 서브패키지에서 특정 이름 임포트:from 키워드를 사용하여 서브패키지에서 특정 모듈을 직접 임포트할 수 있습니다.
    from my_package.sub_package import module2
    module2.another_function()
    
  5. 모듈 안의 특정 이름 임포트:모듈 안의 특정 함수나 클래스만 직접 임포트하여 사용할 수도 있습니다.
    from my_package.module1 import some_function
    some_function()
    

⚙️ 자주 사용되는 내장 모듈: 파이썬 기본 기능들을 편리하게!

파이썬은 다양한 기능을 미리 구현해 놓은 내장 모듈 들을 제공합니다. 별도의 설치 없이 바로 사용할 수 있어 매우 편리합니다. 몇 가지 자주 사용되는 내장 모듈들을 살펴볼까요?

  • math: 수학적인 계산을 위한 함수들을 제공합니다. (예: math.sqrt() - 제곱근 계산, math.sin() - 사인 값 계산, math.pi - 원주율 상수)
    import math
    print(math.sqrt(25))  # 출력 결과: 5.0
    print(math.pi)       # 출력 결과: 3.141592653589793
    
  • random: 무작위 수 생성과 관련된 함수들을 제공합니다. (예: random.randint(a, b) - a와 b 사이의 랜덤한 정수 생성, random.random() - 0.0과 1.0 사이의 랜덤한 실수 생성, random.shuffle(list) - 리스트의 요소들을 무작위로 섞음)
    import random
    print(random.randint(1, 10))  # 1부터 10 사이의 랜덤한 정수 출력
    my_list = [1, 2, 3, 4, 5]
    random.shuffle(my_list)
    print(my_list)           # 리스트의 요소들이 무작위로 섞인 결과 출력
    
  • datetime: 날짜와 시간 관련 작업을 위한 클래스들을 제공합니다. (예: datetime.datetime.now() - 현재 날짜와 시간 얻기, datetime.date() - 날짜 객체 생성, datetime.time() - 시간 객체 생성)
    import datetime
    now = datetime.datetime.now()
    print(now)             # 현재 날짜와 시간 출력
    today = datetime.date(2025, 3, 27)
    print(today)           # 2025-03-27 출력
    
  • os: 운영체제와 상호작용하기 위한 함수들을 제공합니다. (예: os.getcwd() - 현재 작업 디렉토리 얻기, os.listdir() - 특정 디렉토리 안의 파일 및 디렉토리 목록 얻기, os.mkdir(path) - 새로운 디렉토리 생성)
    import os
    print(os.getcwd())    # 현재 작업 디렉토리 경로 출력
    print(os.listdir('.')) # 현재 디렉토리 안의 파일 및 디렉토리 목록 출력
    # os.mkdir('new_directory') # 'new_directory'라는 새로운 디렉토리 생성 (실행 시 주의)
    
  • sys: 파이썬 인터프리터와 관련된 변수 및 함수들을 제공합니다. (예: sys.path - 모듈 검색 경로 목록, sys.argv - 명령행 인수 목록, sys.exit() - 프로그램 종료)
    import sys
    print(sys.path)      # 파이썬 모듈 검색 경로 목록 출력
    # print(sys.argv)    # 명령행 인수 목록 출력 (스크립트 실행 시 전달된 인수를 확인)
    # sys.exit()         # 프로그램 종료 (실행 시 주의)
    

이 외에도 파이썬은 수많은 유용한 내장 모듈들을 제공합니다. 필요에 따라 다양한 모듈들을 찾아보고 활용해 보세요! 💡

마무리하며

오늘은 파이썬 패키지의 개념과 필요성, 그리고 자주 사용되는 내장 모듈들에 대해 알아보았습니다. 패키지를 통해 여러분의 프로젝트를 더욱 체계적으로 관리하고, 내장 모듈을 활용하여 더욱 쉽고 빠르게 원하는 기능을 구현할 수 있습니다. 앞으로 파이썬 프로그래밍을 하면서 이 두 가지 개념을 잘 활용해 보시길 바랍니다! 😊

728x90
반응형