반응형

목차

  • 모듈이란?
    1. 모듈의 정의
    2. 모둘 생성
    3. __name__
    4. if __name__ == "__main__":
  • 패키지란?
    1. 엔트리 포인트(entry point)
    2. 패키지
    3. 패키지 관리 시스템
    4. 패키지 생성

엔트리 포인트(entry point)

엔트리 포인트(entry point)는 프로그램이 실행될 때 실행되는 첫 번째 코드 줄입니다. main 함수 또는 'main'은 종종 많은 프로그래밍 언어에서 엔트리 포인트(entry point) 역할을 합니다. 그러나 Python에는 C, C++ 또는 Java와 같은 다른 프로그래밍 언어와 같은 기본 제공 main 기능이 없습니다.

대신 Python은 특수 변수 __name__을 사용하여 스크립트가 기본 프로그램으로 실행되고 있는지 또는 다른 스크립트에 모듈로 가져오고 있는지를 결정합니다. Python 스크립트가 실행될 때 스크립트가 기본 프로그램으로 실행되는 경우 인터프리터는 __name__ 변수를 "__main__"으로 설정합니다. 이 경우 스크립트의 엔트리 포인트(entry point)는 if __name__ == "__main__": 블록 다음 코드의 첫 번째 줄입니다.

Python 스크립트의 일반적인 패턴은 프로그램의 기본 논리를 포함하는 main() 함수를 정의한 다음 if __name__ == "__main__": 블록을 사용하여 스크립트가 실행될 때 해당 함수를 호출하는 것입니다. 메인 프로그램으로. 예를 들면 다음과 같습니다.

def main():
    print("This is the main function of the script.")

def another_function():
    print("This is another function.")

if __name__ == "__main__":
    main()


이 예제에서 main() 함수는 메인 프로그램으로 실행될 때 스크립트의 엔트리 포인트(entry point) 역할을 합니다. 스크립트를 모듈로 가져오면 main() 함수가 자동으로 실행되지 않지만 필요한 경우 명시적으로 호출할 수 있습니다.

이러한 방식으로 코드를 구성하면 모듈로 가져올 때 실행되는 코드와 프로그램의 기본 논리를 분리하여 스크립트를 더 모듈화하고 이해하기 쉽게 만들 수 있습니다.


패키지

패키지(package)는 파이썬의 모듈을 구조화하고 조직화하는 데 사용되는 방법입니다. 패키지는 여러 모듈을 하나의 디렉토리에 그룹화하여 관리할 수 있게 합니다. 이를 통해 복잡한 프로젝트를 더 간결하게 관리하고, 다른 프로젝트에서 패키지를 재사용하기 쉽게 만듭니다.

패키지를 생성하는 방법은 다음과 같습니다.

1. 패키지 디렉토리 생성
먼저 패키지를 포함할 디렉토리를 생성합니다. 예를 들어, my_package라는 이름의 디렉토리를 생성할 수 있습니다.

2. __init__.py 파일 생성
패키지 디렉토리에 __init__.py 파일을 생성합니다. 이 파일은 패키지가 로드될 때 초기화 코드를 실행할 수 있도록 합니다. 또한 이 파일이 있어야 파이썬이 해당 디렉토리를 패키지로 인식합니다. 이 파일은 비워 둘 수도 있습니다.

3. 패키지에 모듈 추가
패키지 디렉토리에 모듈 파일(.py 파일)을 추가합니다. 예를 들어, my_package 디렉토리에 module1.py, module2.py와 같은 모듈을 추가할 수 있습니다.

4. 패키지 구조 예시

my_package/
    __init__.py
    module1.py
    module2.py


5. 패키지를 사용하는 방법

# 다른 파이썬 코드에서 패키지 사용
import my_package.module1
import my_package.module2

# 또는
from my_package import module1, module2

# 모듈 내 함수 사용 예시
result = my_package.module1.some_function()


패키지를 사용하면 여러 모듈을 하나의 디렉토리로 묶어 관리할 수 있으며, 관련된 기능을 한 곳에서 관리할 수 있어 프로젝트 구조를 더욱 체계적으로 만들 수 있습니다.


패키지 관리 시스템

Python은 pip(Pip Installs Packages)라는 패키지 관리 시스템을 사용하여 타사 패키지 또는 라이브러리를 설치하고 관리합니다. pip는 Python의 기본 패키지 관리자이며 Python 3.4부터 Python 설치와 함께 번들로 제공됩니다.

pip를 사용하면 무엇보다도 패키지를 검색하고 패키지를 설치, 제거 및 업데이트할 수 있습니다. Python Package Index(PyPI)를 기본 리포지토리로 사용하여 패키지를 찾고 다운로드합니다. PyPI는 커뮤니티에서 기여한 방대한 Python 패키지 모음이며 대부분의 Python 패키지에 대한 중앙 리포지토리 역할을 합니다.

다음은 pip와 함께 사용할 수 있는 몇 가지 기본 명령입니다.

1. 패키지 설치

pip install package_name


2. 패키지 제거

pip uninstall package_name


3. 패키지 업그레이드

pip install --upgrade package_name


4. 설치된 패키지 나열

pip list


5. 패키지 검색

pip search package_name


6. 패키지 정보 표시

pip show package_name


pip를 사용하려면 시스템에 Python이 설치되어 있어야 하며 명령 프롬프트, 터미널 또는 셸에서 pip를 사용할 수 있어야 합니다. 시스템 전체에 패키지를 설치하려면 관리자 또는 루트 권한이 필요할 수 있습니다. 또는 가상 환경을 사용하여 시스템 Python 설치에 영향을 주지 않고 특정 프로젝트에 대한 패키지를 설치할 수 있습니다.


패키지 생성

Python 패키지를 만드는 것은 코드를 정리하고 공유할 수 있는 좋은 방법입니다. 다음은 간단한 패키지를 만드는 단계별 가이드입니다.

1. 패키지 이름을 선택하고 디렉토리 구조를 만듭니다.
패키지를 설명할 수 있는 고유한 이름을 선택합니다. 이 예에서는 my_package를 사용하겠습니다. 같은 이름의 디렉터리를 만든 다음 그 안에 my_package라는 하위 디렉터리를 만듭니다.

my_package/
    my_package/


2. __init__.py 파일을 추가합니다.
__init__.py 파일은 디렉터리를 파이썬 패키지로 표시하여 인터프리터가 이를 모듈로 취급할 수 있도록 하는 데 사용됩니다. my_package 하위 디렉토리에 빈 __init__.py 파일을 추가합니다.

my_package/
    my_package/
        __init__.py


3. 코드를 추가합니다.
이제 Python 코드 파일(모듈)을 my_package 하위 디렉터리에 추가합니다. 이 예제에서는 say_hello 함수가 있는 간단한 hello.py 모듈을 추가하겠습니다.


hello.py:

def say_hello(name):
    print(f"안녕하세요, {이름}!")


이제 패키지 구조가 다음과 같이 보일 것입니다.

my_package/
    my_package/
        __init__.py
        hello.py


4. (선택 사항) README.md 파일을 추가합니다.
패키지 루트 디렉터리에 README.md 파일을 포함하는 것이 좋습니다. 이 파일에는 패키지에 대한 설명, 목적, 사용 방법이 포함되어야 합니다.

5. (선택 사항) LICENSE 파일을 추가합니다.
패키지 루트 디렉터리에 LICENSE 파일을 포함시켜 코드를 사용, 수정 및 배포할 수 있는 조건을 지정해야합니다.

6. (선택 사항) setup.py 파일을 추가합니다.
패키지를 배포하려는 경우(예: PyPI에 업로드) 패키지 루트 디렉터리에 setup.py 파일을 생성해야합니다. 이 파일은 패키지에 대한 메타데이터와 설치 지침을 제공합니다.

기본 setup.py 파일은 다음과 같습니다.

from setuptools import setup, find_packages

setup(
    name="my_package",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[],
)


이 과정을 통해 간단한 Python 패키지를 만들었습니다. 이제 패키지 루트 디렉터리를 PYTHONPATH에 추가하거나 pip로 설치하여 다른 Python 프로젝트에서 이 패키지를 사용할 수 있습니다. 배포 가능한 패키지를 만들려면 setuptools를 사용하여 소스 배포 또는 휠 배포를 생성한 다음 다른 사람이 pip를 사용하여 설치할 수 있습니다. 이렇게 하려면 터미널에서 다음 명령을 실행합니다.

# 설치도구 및 휠 설치(아직 설치되지 않은 경우)
pip install setuptools wheel

# 패키지 배포를 생성합니다(.tar.gz 및 .whl 파일 생성).
python setup.py sdist bdist_wheel


이제 프로젝트에서 사용하거나 다른 사람들과 공유하거나 PyPI와 같은 패키지 리포지토리를 통해 배포할 수 있는 Python 패키지가 생겼습니다. 패키지를 더욱 유용하고 유지 관리하기 쉽게 만들려면 깔끔하고 잘 문서화되고 테스트된 코드를 작성하기 위한 모범 사례를 따르는 것을 잊지 말아야합니다.

반응형