Python 프로그램 계층 구조

(2026-02-13)

파이썬 프로그램 계층 구조, pip, 파이썬 모듈, 모듈


1. Python 프로그램 계층 구조

  ※ 파이썬은, 작은 단위가 모여 큰 시스템을 이루는, 체계적인 구조를 가짐
     - 라이브러리 > 패키지 > 모듈 > 문장 > 표현식 > 객체

  ㅇ 라이브러리 (Library)  :  여러 패키지와 모듈을 묶어 놓은 최상위 집합
     - 例) PSL(표준 라이브러리) 등
     * 파이썬 표준 라이브러리 (Python Standard Library, PSL)
        . 파이썬 설치 시 기본으로 제공되는, 모듈 및 함수 집합
    ㅇ 패키지 (Pakage)  :  모듈을 디렉토리(폴더) 구조로 조직화한 것
     - 例) __init__.py 포함 (버전별 상이)
  ㅇ 모듈 (Module)  :  유용한 변수,함수,클래스들을 모아놓은 .py 파일
     - 코드 재사용의 단위
  ㅇ 문장 (Statement)  :  실행 가능한 코드의 최소 독립 단위
     - 例) if, for, def 등
  ㅇ 표현식 (Expression)  :  값을 계산하여 결과를 내는 코드
     - 例) 1 + 2, func() 등
  ㅇ 객체 (Object)  :  메모리에 할당된 데이터 실체
     - 사실상, 파이썬의 모든 것이 객체임

  ※ [참고] ☞ 파이썬 표준 라이브러리 (파이썬 홈페이지)


2. 모듈 관리

  ㅇ 모듈 : 유용한 변수,함수,클래스들을 모아놓은 집합체 (스크립트 파일)

  ㅇ def를 사용하여 정의됨
     - def가 실행되면, 함수의 객체 및 참조가 함께 생성됨

  ㅇ 주요 내장 모듈 例)
     - collections : 기본 파이썬 자료형(list, tuple, dict)들 보다 좀더 확장된 대안 기능을 제공 
        . (Counter, deque, defaultdict, namedtuple, OrderdDict)
        . 표와 인덱싱 같은 데이터를 다룰 때 유용
     - datetime : 날짜,시간 형식과 관련된 기능들을 다룸
     - math : 수학과 관련된 기능들을 다룸 (특히, 실수의 연산)
        . pi,sqrt(),sin(),cos(),exp(),ceil(),floor(),log2() 등 
     - os : 운영체제와 관련된 기능들을 다룸
     - random : 랜덤 값 생성
        . choice(), randrange(), randint() 등
        . 例) random.randint(0,10) => 0,10 포함 범위에서 임의 정수 하나 출력
        . 例) random.uniform(1.5,9.5) => 1.5~9.5에서 균등하게 분포된 난수 소수 하나 출력 
     - re : 정규표현식을 다룸                                    ☞ 파이썬 정규표현식 참조
        . match(),search(),findall(),finditer(),sub() 등
     - sys : 시스템 관련 정보를 담음
        . getsizeof(),stdin 등
        . 주로, 명령 매개변수를 입력 받을 때 많이 사용되는 등
     - time : 시간 관련 기능들을 다룰 때
     - urllib : URL을 다룸

  ㅇ 모듈 관련 명령어
     - 올리기 : import 모듈명
     - 내리기 : del 모듈명
     - 특정 함수/클래스/변수 만 불러오기 : from 모듈명 import 이름
     - 임포트된 모듈 목록 확인 : print(dir())

  ㅇ 모듈 설치 여부 확인
     - (운영체제)  pydoc modules
     - (파이썬)  help("modules")


3. 패키지 관리
 
  ※ 외부 라이브러리를 설치하고 관리하기 위한 생태계

  ㅇ 패키지 관리자 (PIP & PyPI)
     - PyPI (Python Package Index)  :  파이썬 소프트웨어의 공식 저장소 (Cloud)
     - PIP (Package Installer for Python)  :  PyPI에서 패키지를 내려받아 설치하는 도구
        . pip install --upgrade pip : 패키지 매니저의 최신 버전으로 업그레이드 설치

  ㅇ 필수 PIP 명령어
     - # 패키지 설치 및 업데이트
        .  pip install 패키지명          # 설치
        .  pip install 패키지명==1.2.0   # 특정 버전 설치
        .  pip install --upgrade pip     # PIP 자체 업데이트
     - # 관리 및 확인
        .  pip list                       # 설치된 목록 확인
        .  pip uninstall 패키지명         # 삭제
        .  pip show 패키지명              # 패키지 상세 정보 확인

  ㅇ [참고]  운영체제별 프롬프트> pip  [options]

  ㅇ 例) 
     - pip install numpy : 최신 버전의 NumPy 패키지를 설치
     - pip install 패키지명==버젼
     - from bar import foo : bar 패키지 내 foo 모듈의 사용
     - from flask import Flask
        . flask라는 패키지에서 Flask라는 모듈(클래스)를 가져오겠다는 의미
           .. flask : 소스 저장소(폴더) 지정, '도구함(폴더)'의 이름
           .. Flask : 가져올 대상 지정, 도구함 내 '설계도(클래스)'
     - import numpy as np : 넘파이 라이브러리 모듈을 불러와서, np라는 명칭으로 사용함


4. 특수 변수와 실행 환경  :  (__name__)

  ※ 파이썬 스크립트가 실행되는 맥락을 파악하기 위해 사용됨

  ㅇ __name__ 변수의 역할
     - 파이썬은, 모듈을 실행할 때, 자동으로 __name__ 변수를 생성함
        . 직접 실행 시  :  해당 파일의 __name__에는, "__main__"이라는 값이 할당됨
        . Import 시  :  해당 파일의 __name__에는, 실제 "모듈의 이름"이 할당됨

▷ 파이썬
1. 파이썬   2. 파이썬 기초 문법   3. 파이썬 변수   4. 파이썬 연산자   5. 파이썬 함수   6. 파이썬 객체   7. Python 프로그램 계층 구조   8.
▷파이썬 자료형
  9.
▷파이썬 반복
  10.
▷파이썬 활용
 
용어해설 종합 (단일 페이지 형태)

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]