2026. 5. 23. 15:57ㆍAI/Python
Python에서 모듈(Module)은 관련된 함수, 클래스, 변수들을 하나의 파일(.py)으로 묶어 재사용할 수 있게 만든 코드 단위이다.
모듈을 사용하면, 프로그램을 기능별로 나누어 관리할 수 있어 코드의 가독성과 유지보수성이 향상되며
다른 파일에서도 import 파일로 불러와 사용할 수 있다.
Python은 기본적으로 다양한 표준 라이브러리 모듈을 제공하고 사용자가 직접 만든 모듈도 동일한 방식으로 사용한다.
# fruit.py
PI = 3.14
def print_fruit(name):
print(f"{name}입니다.")
def add_quantity(quantity, amount):
return quantity + amount
class Fruit:
def __init__(self, name, quantity):
self.name = name
self.quantity = quantity
def print_info(self):
print(f"과일 이름: {self.name}")
print(f"수량: {self.quantity}")
# main.py
import fruit
fruit.print_fruit("사과")
result = fruit.add_quantity(10, 5)
print(result)
apple = fruit.Fruit("사과", 10)
apple.print_info()
from fruit import Fruit, add_quantity
apple = Fruit("사과", 10)
apple.print_info()
print(add_quantity(10, 5))
import fruit as fr
fr.print_fruit("바나나")
__name__
Python에서 현재 실행중인 모듈의 이름을 달고 있는 내장 변수로, 이 파일이 직접 실행된 것인지 import 된 것인지 구분한다.
만약 파일을 직접 실행하면 __name__은 main이 되고, import 되어 사용되면 해당 모듈의 이름이 들어간다.
패키지
관련 여러 모듈들을 하나의 폴더로 묶어 계층적으로 관리하는 단위로, 코드 규모가 커질 때 기능별로 구조를 나누어 정리하고
재사용성을 높이기 위해 사용된다. 패키지는 디렉토리로 구성되며, 내부에 모듈과 서브 패키지를 포함할 수 있고
필요에 따라 __init__.py 파일을 통해 패키지 초기화나 공개 API를 정의할 수 있다.
이를 통해 import package.module 처럼 이름 공간을 구분하여 충돌을 방지하고 프로젝트를 깔끔하게 구조화한다.
random 모듈
파이썬에서 무작위 값을 생성할 때 사용하는 표준 라이브러리 모듈이다. 별도 설치 없이 import random으로 사용하며
임의의 숫자 생성, 리스트에서 랜덤 선택, 데이터 선택, 난수 범위 지정 등에 자주 사용된다.
import random
# 1. random.random() → 0 이상 1 미만 실수
print("random():", random.random())
# 2. random.randint(a, b) → a 이상 b 이하 정수
print("randint(1, 6):", random.randint(1, 6))
# 3. random.randrange(a, b) → a 이상 b 미만 정수
print("randrange(1, 10):", random.randrange(1, 10))
# 4. random.choice() → 리스트에서 1개 선택
fruits = ["사과", "바나나", "오렌지"]
print("choice:", random.choice(fruits))
# 5. random.sample() → 중복 없이 여러 개 선택
numbers = list(range(1, 11))
print("sample:", random.sample(numbers, 3))
# 6. random.shuffle() → 리스트 섞기
cards = ["A", "K", "Q", "J"]
random.shuffle(cards)
print("shuffle:", cards)
seed()
random.seed()는 난수 생성기의 초기값(시드)를 설정하여 동일한 난수 결과를 재현하게 하는 함수이다.
Python의 random은 의사난수를 사용하므로, 시드를 고정하면 실행할 때마다 같은 순서의 난수가 생성된다.
이 기능은 테스트, 디버깅, 머신러닝 실험처럼 결과를 반복 재현해야 하는 상황에서 매우 중요하다.
의사 난수
완전히 무작위로 생성된 것이 아니라, 일정한 알고리즘에 의해 만들어진 랜덤처럼 보이는 숫자이다.
내부적으로는 이전 값과 수학적 계산을 기반으로 다음 값을 생성하기 때문에 같은 시작값을 주면
항상 동일한 난수 순서가 만들어진다.
이러한 특성 때문에 결과를 재현할 수 있어 테스트나 머신러닝 실험에 매우 유용하며
속도도 빠르므로 일반 프로그래밍에서 널리 사용된다.
모듈 설치
가상 환경 생성
python3 -m venv [venv이름]
가상 환경 활성화
source venv/bin/activate
pip 위치 확인
which pip
requirements.txt
Python 프로젝트에서 필요한 외부 패키지와 그 버젼을 기록해두는 파일로
동일한 개발 환경을 다른 사람이나 다른 시스템에도 쉽게 재현할 수 있게 해준다.
# requirements.txt 생성
pip freeze > requirements.txt
# requirements.txt 기반으로 설치
pip install -r requirements.txt'AI > Python' 카테고리의 다른 글
| 데이터 분석 - 판다스 (2) (0) | 2026.05.31 |
|---|---|
| 데이터 분석 - 넘파이 (1) (0) | 2026.05.23 |
| Python의 기본 - 매직 메서드 (11) (0) | 2026.05.23 |
| Python의 기본 - 예외 처리 (10) (0) | 2026.05.23 |
| Python의 기본 - 객체 지향 프로그래밍의 패러다임 (9) (0) | 2026.05.17 |