52. 파이썬 – 패키지의 정의와 만드는 방법

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난 포스팅에서는 파이썬에서 모듈을 불러오는 다른 방법에 대해 공부해 봤습니다.
이제 파이썬 패키지에 대해 공부를 해 볼텐데요
먼저 패키지의 정의와 패키지 만드는 방법에 대해 공부해 보도록 하겠습니다.

파이썬 패키지

패키지의 정의

패키지의 정의에 대해 먼저 알아 보겠습니다. 패키지는 Packages 로 도트(.) 를 사용하여 파이썬의 모듈들을 계층적 디렉터리 구조 형태로 관리를 할 수 있게 끔 해줍니다.
예로 모듈 이름이 AAA.BBB 인 경우에 A 는 패키지 이름이 되며, BBB 는 A 패키지의 B 모듈이 되는 것 입니다.
여기에서 나오는 파이썬에서 모듈의 이전에 공부 했듯이 하나의 파이썬 파일(.py) 입니다

파이썬에서 패키지는 디렉터리와 파이썬 모듈로 이루어 집니다.

패키지의 구조

패키지의 구조를 살펴보면 아래 와 같습니다.
가상으로 game 이란 패키지의 예를 보겠습니다.

Python
game/
    __init___.py
    sound/
        __init__.py
        echo.py
        wav.py
    graphic/
        __init__.py
        screen.py
        render.py
    play/
        __init__.py
        run.py
        test.py

위의 패키지 예를 보게 되면 game, sound, graphic, play 는 디렉터리이고 확장자가 .py 인 파일들은 파이썬 모듈입니다.
game 디렉터리가 이 패키지의 루트 디렉터리이고 sound, graphic, play 는 서브 디렉터리입니다.

간단한 파이썬 프로그램이라면 굳이 이렇게 패키지로 구조로 만들 필요가 없겠지만
이렇게 패키지 구조로 파이썬 프로그램을 만들게 되면 공동 작업이나 유지 보수 등을 할 때
여러가지 유리한 점들이 생깁니다.
그리고 패키지 구조로 모듈을 만들게 되면 다른 모듈과 이름이 겹치게 되더라도 안전하게 사용이 가능합니다.

패키지 만드는 방법

이제 위의 예와 비슷한 game 패키지를 만들어 보면서 패키지에 대해 더 공부해 보도록 하겠습니다.

패키기 기본 구성 요소

1. 디렉터리 생성과 파일 생성

game 디렉터리를 생성하고 game 디렉터리 밑에 서브 디렉터리까지 생성을 해보겠습니다.
그리고 파이썬 파일들을 만들어 보겠습니다.

저는 기존에 진행하던게 있어서 계속적으로 아래 폴더에 생성을 해보겠습니다.

D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game\

game 디렉터리를 생성하고 하위 폴더인 graphic 과 sound 디렉터리도 생성했습니다.
그리고 각각 디렉터리에 비어 있는 __init__.py 파일을 생성해 주었습니다.

BAT
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game>dir /s
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: C4C6-D950

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game 디렉터리

2023-04-28  오후 05:26    <DIR>          .
2023-04-28  오후 03:26    <DIR>          ..
2023-04-28  오후 05:26    <DIR>          graphic
2023-04-28  오후 05:26    <DIR>          sound
2023-04-28  오후 05:26                 0 __init__.py
               1개 파일                   0 바이트

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game\graphic 디렉터리

2023-04-28  오후 05:26    <DIR>          .
2023-04-28  오후 05:26    <DIR>          ..
2023-04-28  오후 05:26                 0 __init__.py
               1개 파일                   0 바이트

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game\sound 디렉터리

2023-04-28  오후 05:26    <DIR>          .
2023-04-28  오후 05:26    <DIR>          ..
2023-04-28  오후 05:26                 0 __init__.py
               1개 파일                   0 바이트

     전체 파일:
               3개 파일                   0 바이트
               8개 디렉터리  549,653,786,624 바이트 남음

2. echo.py 파일 생성

아래와 같이 echo.py 파일을 생성해 줍니다.

Python
# echo.py
def echo_test():
    print("echo")

3. render.py 파일 생성

아래와 같이 render.py 파일을 생성해 줍니다.

Python
# render.py
def render_test():
    print("render")

4. 파이썬 환경변수 PYTHONPATH 에 디렉터리 추가하기

지금 진행하고 있는 game 패키지를 파이썬에서 참조할 수 있도록 명령 프롬프트 창에서 set 명령어를 통해 PYTHONAPTH 환경 변수에 현재 디렉토리를 추가해 줍니다.
그리고 파이썬 대화형 인터프리터(Interractive Shell) 을 실행을 해보겠습니다.

BAT
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game>set PYTHONPATH=D:/Dropbox/02.My_Job/80.Study/01.Python/00.study_python_3.11.0/01.TEST

(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\game>python
Python 3.11.0 | packaged by Anaconda, Inc. | (main, Mar  1 2023, 18:18:21) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

여기까지 파이썬 패키지에 대해서 공부하기 위한 준비 작업을 마쳤습니다.
다음 포스팅에 이어서 패키지에 대한 공부를 이어가 보겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
52. 파이썬 - 패키지의 정의와 만드는 방법

Leave a Comment