본문 바로가기
파이썬/기초 학습

Day 9: 모듈 & 외부 라이브러리

by CBROJIN 2025. 8. 5.

1) 학습 요약표

학습내용 설명
모듈 개념 복잡한 코드를 기능별로 나누어 파일 단위로 관리하며, 다른 파일에서 가져다 쓸 수 있게 함
모듈 사용방법 import, from-import 문법을 통해 다른 파일의 함수나 변수를 현재 파일에서 사용
자체 모듈 작성 자주 사용하는 함수들을 별도 파일에 정의해 재사용성을 높임
주요 내장 모듈 random(무작위), os(파일 시스템), datetime(날짜/시간), subprocess(외부 명령 실행) 등
from-import-* 모듈 전체를 불러올 때 사용하며, 이름 없이 직접 함수 호출 가능
 

2) 이론 설명

1. 모듈(module)이란?

  • 모듈이란 관련된 함수나 변수를 하나의 .py 파일로 저장해 놓은 것을 말합니다.
  • 모듈을 사용하면 코드의 재사용성을 높이고, 유지보수가 쉬워집니다.
  • 예: math, os, random, subprocess, datetime 등이 자주 쓰이는 표준 모듈입니다.

2. 모듈 사용 방법

import 방식

  • 모듈 전체를 불러오고, 모듈명.함수명() 형태로 사용합니다.
import random
print(random.randint(1, 100))

from-import 방식

  • 모듈 안의 특정 함수나 객체만 선택적으로 불러옵니다.
from random import randint
print(randint(1, 100))

from-import * 방식

  • 해당 모듈의 모든 함수나 변수를 현재 파일로 불러옵니다.
from random import *
print(choice(['a', 'b', 'c']))

 

예제: random 모듈 사용

import random

device_list = ["Core-R1", "Edge-SW2", "Firewall-A"]
selected = random.choice(device_list)
print(f"선택된 장비: {selected}")

 

3. 자체 모듈 만들기

  • 자주 사용하는 함수를 별도의 파일로 분리해 관리할 수 있습니다.
  • 예를 들어 calculator.py라는 파일에 여러 함수 정의:

calculator.py

def merge_ip(ip, mask):
    return f"{ip} / {mask}"

def uppercase_hostname(name):
    return name.upper()

main.py (사용 예시)

import calculator

print(calculator.merge_ip("10.0.0.1", "255.255.255.0"))
print(calculator.uppercase_hostname("access-sw1"))

4. from-import 방식으로 함수만 불러오기

my_module.py

def device_location(loc):
    return f"위치: {loc}"

def device_id(id_num):
    return f"DEVICE-{id_num}"

main.py (사용 예시)

from my_module import device_location, device_id

print(device_location("RACK-19"))
print(device_id("ZZ8899"))

 

3) 종합 실습 과제

과제 1: 장비 정보 문자열 생성 모듈 작성

문제 설명

  • 자주 사용하는 장비 정보 출력 형식을 함수로 구성해 모듈로 저장하세요.
  • device_utils.py라는 파일을 만들고 다음의 두 함수를 작성합니다:
  1. format_device_name(name, role) : 장비 이름과 역할을 조합해 "[ROLE] NAME" 형식 문자열로 반환
  2. generate_serial(sn) : 시리얼 번호 앞에 "SN-"을 붙여 반환
  • 메인 파일에서는 사용자로부터 이름, 역할, 시리얼 번호를 입력받아 이 모듈의 함수를 통해 출력합니다.

과제 2: 랜덤 장비 선택기 만들기

문제 설명

  • random 모듈을 활용하여 네트워크 장비 목록에서 무작위로 하나를 선택하는 프로그램을 작성하세요.
  • 장비 목록은 리스트로 구성되며, random.choice() 함수를 사용하여 하나를 무작위로 출력합니다.
  • 이 기능은 점검 대상 장비를 자동으로 선정하거나 샘플 테스트용 장비를 무작위로 고를 때 유용하게 활용됩니다.

 

과제 3: IP 병합 모듈 호출

문제 설명

  • ip_merge.py라는 모듈을 만들어 merge_ip(ip, mask) 함수를 작성합니다.
  • 이 함수는 IP 주소와 서브넷 마스크를 입력받아 IP / MASK 형식으로 결합한 문자열을 반환합니다.
  • 메인 파일에서는 사용자로부터 IP 주소와 마스크를 입력받아 해당 함수를 통해 결과를 출력합니다.