본문 바로가기

프로그래밍 언어/AI & 파이썬_Python

파이썬 Python 코딩_14_패키지&모듈

여기부터는 지난 글에서 설치한 '파이참(PyCharm)' 커뮤니티판으로 코딩을 할 것이다.

 

패키지(package)는 어떤 기능을 구현하는 모듈(module)들을 모아놓은 것이다.

다른 언어에서 사용하는 라이브러리(Library)와 같은 의미로 쓰인다.

 

쉽게 말하면 어떤 기능을 다시 사용하기 위해 만들어 놓은 것이다.

예를 들어 레고 블록으로 자동차, 건물, 나무, 사람, 자동차를 패키지 또는 라이브러리로 만들어 놓고 필요할 때 마다 가져다 사용하는 것과 같다.

 

파이참을 실행한다.

 

 

New Project (새 프로젝트)를 클릭한다.

 

Location(저장할 위치)에 프로젝트를 저장할 폴더 이름을 적는다. 여기서는 'pythonPackage'라는 폴더를 만들었다.

파이썬 해석기는 디폴트로 선택되어 있는 New environment(새 환경)인 Virtualenv(가상환경)을 선택하고 Create(만들기) 클릭한다.

 

팁을 알려주는 창을 더 이상 보고 싶지 않으면 Don't show tips(팁 안보기)를 체크한 후 Close를 클릭한다.

 

다음과 같은 첫화면을 볼 수 있다.

같은 회사에서 만들었기 때문에 첫화면은  IntelliJ IDEA(인텔리제이)와 상당히 비슷하다.

main.py라는 파이썬 파일이 만들어져 있다.

이 파일 안에는 샘플 코드가 적혀있는데 print_hi라는 함수와 if 조건문이 보인다.

실행하려면 오른쪽 위 삼각형 아이콘을 클릭하거나 Shift+F10키를 누르면 아래에 Run(실행) 창이 나타난다.

 

main.py에 있는 샘플 코드를 삭제하려면 마우스로 드래그해서 선택하거나 Ctrl+A를 클릭해서 전체 코드를 선택한 후 Delete(삭제)를 누른다.

 

패키지 만들기

 

이제 여기서 만들 패키지를 만들어 보자.

만들어야 할 내용은 다음과 같다.

 

# animal(동물) 이라는 package(패키지)를 만들 것이다.

# dog(개), cat(고양이) 이름을 가진 modules(모듈) 2개를 만들 것이다.

# dog, cat 모듈의 내용은 동물 소리를 출력하는 hi라는 함수를 만들 것이다. 

 

 

library root(라이브러리 루트)라고 적혀있는 venu 폴더를 마우스 오른쪽 클릭 후 New > Directory(디렉토리; 폴더)를 만든다. 디렉토리 이름은 패키지 이름인 animal 이라고 하자.

 

animal(패키지) 폴더 안에 모듈을 만들자.

모듈을 만들기 위해서 파이썬 파일을 2개 (dog.py , cat.py) 만들자.

 

animal 폴더를 마우스 오른쪽 클릭 후 New > Python File을 클릭한다.

입력창에 dog를 입력하면 다음과 같이 dog.py가 만들어진다.

 

dog.py 파일안에 다음과 같이 클래스와 함수를 만든다.

 

참고로 자동 입력 기능을 지원하므로 클래스명을 넣을때 cl만 입력한 후 다음과 같은 상태에서 엔터키만 치면 자동으로 class가 입력된다. (아래 상태에서 다른 코드를 넣고 싶으면 화살표 위,아래키를 눌러서 선택할 수 있다)

 

다음과 같이 코드를 완성한다.

 

클래스명은 Dog

함수명은 say_hi (안녕 말하기)

실행 내용은 "bark(멍멍)" 출력하기

 

이제 같은 방법으로 cat.py를 만들고 클래스와 함수를 만들자.

 

 

 

여기까지 만들었다면 animal 이라는 package(패키지) 안에 dog와 cat 모듈을 만든 것이다. 

하지만 animal 폴더가 패키지로 지정하기 위해서는 앞에서 한번 보았던 초기화 파일을 만들어줘야 한다.

 

animal폴더 안에 새 파이썬파일을 만들고 다음과 같이 이름을 입력한다.

언더스코어 기호( _ ) 2개를 init 좌우에 적는다.

이 초기화 파일에 적을 내용은 animal 패키지가 어떤 모듈들을 포함하고 있는지 적어야 한다.

 

from .cat import Cat 의 뜻은 다음과 같다.

 

from .cat ( 폴더 안에 있는 cat 으로 부터) 

import Cat ( 클래스Cat을 불러와라)

 

메인(main) 파일

 

코틀린을 main() 함수로 부터 시작하는 것과 같이 파이썬도 main.py 파일이 프로젝트의 시작이다.

이제 main파일로 가자. 위에 main.py탭을 클릭하면 된다.

 

메인에서 조금 전에 만들었던 animal패키지에 있는 dog 와 cat 모듈을 불러오려면 위와 같이 코드를 적는다.

 

from animal import dog는 "animal로 부터 dog를 불러오라"는 뜻이다.

 

오른쪽에 보면 경고2 표시가 보인다.

설명을 보기 위해 경고 아이콘을 클릭하면 아래쪽 창에 나타나고 오른쪽 노란색줄에 마우스를 갖다대면 위와 같이 내용을 볼 수 있다. (Unused : 아직 사용하지 않았다)는 메시지가 나타난다. 

불러온 모듈을 아직 사용하지 않았기 때문에 코드의 색도 회색인 것을 알 수 있다.

 

모듈을 사용하는 코드를 작성해 보자.

인스턴스 객체 d를 만들고 여기에 dog모듈 안에 있는 Dog클래스를 저장한다.

이 인스턴스 객체를 사용하여 say_hi함수를 실행할 수 있다.

실행하려면 오른쪽 삼각형을 클릭한다.

 

 

같은 방법으로 고양이도 소리를 내도록 코드를 적어보자.

 

아래쪽 Run 탭을 클릭해도 실행할 수 있다.

 

위 코드를 간단하게 표현하는 방법이 있다.

 

 

from animal import * 처럼 코드를 작성하면 animal 패키지에서 있는 모든 모듈을 불러올 수 있다.

 

그러면 모듈과 클래스의 경로를 따로 적어주지 않아도 클래스를 바로 불러올 수 있다.

 

실행하면 같은 결과가 나타난다.

 

어떤 차이가 있는지 확인해 보자.

1,2번줄은 필요없으므로 삭제해도 된다.

여기까지 패키지와 모듈을 만들고 메인에서 불러와서 사용하는 예를 살펴보았다.

 

다음 글에서는 실제로 다른 사람이 만들어 놓은 패키지를 어떻게 불러와서 사용하는지 실습해 본다.