파이썬 - 패키지: 코드 재사용성과 구성의 문

안녕하세요, 파이썬 프로그래머를 꿈꾸는 여러분! 오늘, 우리는 파이썬 패키지의 세계로 흥미로운 여행을 떠나보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 여러분의 코딩 기술을 다음 단계로 이끌어주는 이 중요한 개념을 안내해 드리게 되어 기쁩니다. 그래서, 가상의 배낭을 준비하고, 함께 빠져나가보죠!

Python - Packages

파이썬 패키지란 무엇인가요?

우리가 자신의 패키지를 만들기 전에, 그것이 무엇인지 그리고 왜 그리 중요한지 이해해 보겠습니다.

여러분이 엄청나게 큰 레고 구조물을 만들고 있다고 상상해 보세요. 레고 조각이 어디서나 퍼져 있을 때보다, 그것들이 용도에 따라 별도의 상자에 정리되어 있었으면 얼마나 좋을까요? 이것이 바로 파이썬 패키지가 여러분의 코드에게 제공하는 것입니다!

파이썬 패키지는 관련 모듈을 디렉토리 계층 구조로 조직화하는 방법입니다. 이를 통해 여러분은 관련 기능을 하나로 묶어, 코드를 더욱 조직화하고, 재사용성을 높이고, 유지보수하기 쉽게 만들 수 있습니다.

파이썬 패키지 만들기

이제, 여러분만의 파이썬 패키지를 만들기 위해 손을 더듬어보겠습니다. 우리는 간단한 예제로 시작해보겠습니다.

단계 1: 패키지 디렉토리 만들기

먼저, 우리의 패키지를 위한 디렉토리를 만들어야 합니다. my_math_package라고 이름을 붙여보겠습니다.

my_math_package/

단계 2: init.py 파일 추가하기

my_math_package 디렉토리 안에, 빈 파일을 __init__.py라고 이름붙여 만들어 주세요. 이 파일은 파이썬에 디렉토리가 패키지로 취급되어야 한다는 것을 알려줍니다.

my_math_package/
__init__.py

단계 3: 모듈 파일 만들기

이제, 우리의 패키지에 몇 가지 모듈을 추가해보겠습니다. basic_operations.pyadvanced_operations.py라는 두 개의 간단한 모듈을 만들어보겠습니다.

my_math_package/
__init__.py
basic_operations.py
advanced_operations.py

단계 4: 모듈에 코드 추가하기

모듈에 몇 가지 간단한 함수를 추가해보겠습니다.

basic_operations.py에서:

def add(a, b):
return a + b

def subtract(a, b):
return a - b

advanced_operations.py에서:

def power(base, exponent):
return base ** exponent

def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)

단계 5: 패키지 사용하기

이제 우리는 우리의 패키지를 만들었으니, 이를 파이썬 코드에서 어떻게 사용할 수 있는지 살펴보겠습니다.

# 특정 함수 임포트
from my_math_package.basic_operations import add, subtract
from my_math_package.advanced_operations import power, factorial

# 임포트한 함수 사용
print(add(5, 3))  # 출력: 8
print(subtract(10, 4))  # 출력: 6
print(power(2, 3))  # 출력: 8
print(factorial(5))  # 출력: 120

멋지지 않나요? 우리는 방금 자신만의 파이썬 패키지를 만들고 사용했습니다!

패키지 목록 정의

더 큰 프로젝트를 작업할 때, 여러 패키지를 사용해야 할 수 있습니다. 프로젝트가 의존하는 모든 패키지를 추적하는 것은 좋은 관행입니다. 이때 패키지 목록이 매우 유용합니다.

패키지 목록은 일반적으로 requirements.txt라는 파일에 저장됩니다. 이 파일은 프로젝트가 올바르게 작동하기 위해 필요한 모든 패키지와 그 버전을 나열합니다.

다음은 requirements.txt 파일의 예시입니다:

numpy==1.21.0
pandas==1.3.0
matplotlib==3.4.2

각 줄은 패키지 이름과 그 버전을 지정합니다. 더블 등호(==)는 우리가 정확히 그 버전을 원한다는 것을 나타냅니다.

패키지 설치

이제 필요한 패키지를 목록을 작성하는 방법을 알았으므로, 이를 설치하는 방법을 배워보겠습니다. 파이썬은 패키지 설치에 강력한 도구인 pip를 제공합니다.

단일 패키지 설치

단일 패키지를 설치하려면, 터미널이나 명령 프롬프트에서 다음 명령어를 사용할 수 있습니다:

pip install package_name

예를 들어, NumPy를 설치하려면:

pip install numpy

requirements.txt에서 설치

requirements.txt 파일에 나열된 모든 패키지를 설치하려면, 다음을 사용합니다:

pip install -r requirements.txt

이 명령어는 pip에게 requirements.txt 파일을 읽고, 그 안에 나열된 모든 패키지를 설치하도록 지시합니다.

가상 환경

여기 프로 팁이 있습니다: 다른 프로젝트를 작업할 때는 가상 환경을 사용하는 것이 좋습니다. 가상 환경은 각 프로젝트에 대해 별도의 놀이터를 제공하는 것처럼, 그 의존성을 서로 겹치지 않게 분리합니다.

가상 환경을 만들려면:

python -m venv myenv

활성화하려면:

  • Windows: myenv\Scripts\activate
  • macOS 및 Linux: source myenv/bin/activate

활성화된 후에 설치하는 모든 패키지는 이 환경에 특정하여, 프로젝트를 깔끔하게 유지합니다!

결론

축하합니다! 여러분은 파이썬 여행에서 패키지에 대해 배우는 큰 걸음을踏み出しました. 자신의 패키지를 만들고 설치하고 관리하는 방법을 배우면서, 여러분은 이제 프로처럼 코드를 조직화할 수 있는 도구를 갖추게 되었습니다.

기억하십시오, 패키지는 여러분의 코드 라이브러리의 책장과 같습니다. 그들은 모든 것을 정리하여, 필요한 것을 찾고, 다른 사람과 코드를 공유하는 데 도움이 됩니다. 파이썬 모험을 계속하면서, 여러분의 프로젝트에 강력한 기능을 추가할 수 있는 더 많은 흥미로운 패키지를 발견하게 될 것입니다.

좋은 연습을 계속하고, 호기심을 지켜두고, 즐거운 코딩 되세요!

메소드 설명
pip install package_name 단일 패키지 설치
pip install -r requirements.txt requirements.txt에 나열된 패키지 설치
python -m venv myenv 가상 환경 생성
myenv\Scripts\activate (Windows) Windows에서 가상 환경 활성화
source myenv/bin/activate (macOS/Linux) macOS/Linux에서 가상 환경 활성화

Credits: Image by storyset