상세 컨텐츠

본문 제목

모듈

인공지능_2026/1. 파이썬

by Ryuzy 2026. 4. 30. 17:43

본문

반응형

1. 모듈

파이썬에서 모듈(module)은 관련된 함수, 클래스, 변수들을 하나의 파일(.py)로 묶어 재사용할 수 있게 만든 코드 단위입니다. 모듈을 사용하면 프로그램을 기능별로 나누어 관리할 수 있어 코드의 가독성과 유지보수성이 향상되며, 다른 파일에서도 import 문을 통해 쉽게 불러와 사용할 수 있습니다. 파이썬은 기본적으로 다양한 표준 라이브러리 모듈을 제공하고, 사용자가 직접 만든 모듈도 동일한 방식으로 활용할 수 있습니다.

 

1. 모듈 파일 만들기

# 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}")

 

2. 다른 파일에서 모듈 사용하기

# 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("바나나")

👉 모듈 이름이 길 때는 별칭을 붙일 수 있습니다.

 

 

2. __name__

__name__은 파이썬에서 현재 실행 중인 모듈의 이름을 담고 있는 내장 변수로, 이 파일이 직접 실행된 것인지(import된 것인지)를 구분하는 데 사용됩니다. 만약 파일을 직접 실행하면 __name__의 값은 "__main__"이 되고, 다른 파일에서 import되어 사용되면 해당 모듈의 파일 이름이 들어갑니다.

# fruit.py

def hello():
    print("과일 모듈입니다.")

print("__name__ 값:", __name__)

if __name__ == "__main__":
    print("직접 실행되었습니다.")
    hello()

 

# 직접 실행
python fruit.py

# 결과
__name__ 값: __main__
직접 실행되었습니다.
과일 모듈입니다.

 

# 다른 파일에서 import
import fruit

# 결과
__name__ 값: fruit

👉 if __name__ == "__main__": 블록은 실행되지 않음

 

 

3. 패키지

패키지(package)는 관련된 여러 모듈(.py 파일)을 하나의 폴더로 묶어 계층적으로 관리하는 단위로, 코드 규모가 커질 때 기능별로 구조를 나누어 정리하고 재사용성을 높이기 위해 사용됩니다. 패키지는 디렉토리로 구성되며, 내부에 모듈과 서브패키지를 포함할 수 있고, 필요에 따라 __init__.py 파일을 통해 패키지 초기화나 공개 API를 정의할 수 있습니다. 이를 통해 import package.module처럼 이름공간(namespace)을 구분하여 충돌을 방지하고, 프로젝트를 깔끔하게 구조화할 수 있습니다.

myproject/
├── main.py
└── fruits/
    ├── __init__.py
    ├── apple.py
    └── banana.py

 

# fruits/__init__.py
from .apple import info as apple_info
from .banana import info as banana_info

__all__ = ["apple_info", "banana_info"]

👉 패키지에서 바로 사용할 API 정의

 

# fruits/apple.py
def info():
    return "사과입니다"

 

# fruits/banana.py
def info():
    return "바나나입니다"

 

# main.py
from fruits import apple_info, banana_info

print(apple_info())
print(banana_info())

 

 

4. random 모듈

random 모듈은 파이썬에서 무작위 값을 생성할 때 사용하는 표준 라이브러리 모듈입니다. 별도 설치 없이 import random으로 사용할 수 있으며, 임의의 숫자 생성, 리스트에서 랜덤 선택, 데이터 섞기, 난수 범위 지정 등에 자주 사용됩니다.

import random

 

1. 자주 사용하는 함수

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)

 

2. seed()

random.seed()는 난수 생성기의 초기값(시드)을 설정하여 동일한 난수 결과를 재현 가능하게 만드는 함수입니다. 파이썬의 random은 의사난수(pseudo-random)를 사용하므로 시드를 고정하면 실행할 때마다 같은 순서의 난수가 생성됩니다. 이 기능은 테스트, 디버깅, 머신러닝 실험처럼 결과를 반복 재현해야 하는 상황에서 매우 중요합니다.

import random

print(random.randint(1, 10))
print(random.randint(1, 10))
print(random.randint(1, 10))

👉 실행할 때마다 결과가 바뀜

 

import random

# 시드 설정
random.seed(2026)

print(random.randint(1, 10))
print(random.randint(1, 10))
print(random.randint(1, 10))

👉 실행 결과 (항상 동일)

 

의사난수

의사난수(pseudo-random number)는 완전히 무작위로 생성된 것이 아니라, 일정한 알고리즘에 의해 만들어진 “랜덤처럼 보이는 숫자”를 의미합니다. 즉, 내부적으로는 이전 값과 수학적 계산을 기반으로 다음 값을 생성하기 때문에 같은 시작값(시드, seed)을 주면 항상 동일한 난수 순서가 만들어집니다. 이러한 특성 덕분에 결과를 재현할 수 있어 테스트나 머신러닝 실험에 매우 유용하며, 속도도 빠르기 때문에 일반적인 프로그래밍에서 널리 사용됩니다.

 

 

5. 모듈 설치

1. 가상환경 생성

python -m venv venv

 

2. 가상환경 활성화

# windows
venv\Scripts\activate 

# mac
source venv/bin/activate

 

3. pip 위치 확인

where pip      # Windows
which pip      # Mac/Linux

👉 venv 안 pip인지 확인

 

4. python 경로 확인

where python

👉 반드시 venv 경로여야 함

 

5. numpy, pandas 설치

pip install numpy pandas # pip이 다른 python을 가리키고 있을 수도 있음
python -m pip install numpy pandas # 현재 python이 사용하는 환경에 설치됨

 

6. 패키지 목록과 각 버전 확인

pip list
  • 현재 환경 기준으로만 보여줌 (전역/다른 venv와 독립)
  • 패키지 이름 + 버전 확인 가능
  • 설치 여부 빠르게 체크 가능

 

 

6. requirements.txt

requirements.txt는 파이썬 프로젝트에서 필요한 외부 패키지와 그 버전을 기록해 두는 파일로, 동일한 개발 환경을 다른 사람이나 다른 시스템에서도 쉽게 재현할 수 있게 해줍니다.

 

1. requirements.txt 생성

pip freeze > requirements.txt

 

# 직접 작성
numpy
pandas

👉 버전 없이도 가능

 

2. requirements.txt 사용 방법

pip install -r requirements.txt

👉 다른 환경에서 실행하면 파일에 있는 모든 패키지 자동 설치

 

반응형

'인공지능_2026 > 1. 파이썬' 카테고리의 다른 글

매직 메서드  (1) 2026.04.30
예외 처리  (0) 2026.04.30
객체지향 프로그래밍 4대 패러다임  (0) 2026.04.28
객체지향 프로그래밍(OOP)  (0) 2026.04.27
사용자 정의 함수  (0) 2026.04.27

관련글 더보기