본문 바로가기
네이버 부스트캠프 AI Tech/Pre-course

3. Module and Project

by 중앙백 2021. 12. 5.

 - 파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해서 구현되어 있다.

 

 - 남이 만든 프로그램 쓰는 법 : 객체(OOP개념) < 모듈

 

* 모듈 개요 : 어떤 대상의 부분 혹은 조각 (예) 레고 블록, 벽돌, 자동차 부품들

                 프로그램에서는 작은 프로그램 조각들, 모듈들을 모아서 하나의 큰 프로그램을 개발함

                 프로그램을 모듈화 시키면 다른 프로그램이 사용하기 쉬움

 

 - 패키지 : 모듈을 모아놓은 단위, 하나의 프로그램

 

 

1. Module

 

* 모듈 만들기 : 파이썬의 모듈은 py파일을 의미

                    같은 폴더에 module에 해당하는 .py파일과 사용하는 .py을 저장한 후 import문을 사용해서 모듈 호출.

 

* namespace : 모듈을 호출할 때 범위 정하는 방법.

                   모듈 안에는 함수와 클래스 등이 존재 가능

                   필요한 내용만 골라서 호출 할 수 있음

                   from과 import 키워드 사용

 

     - Alias 설정하기 : 모듈명을 별칭으로 써서 [제일 선호하는 방식 : 어디서 왔는 지를 명확하게 보여줄 수 있음]

import fah_converter as fah  # fah_converter를 fah라는 이름으로
print(fah.convert_c_to_f(41.6))    # 그 안에 covert_c_to_f 함수를 사용

 

     - 모듈에서 특정 함수 또는 클래스만 호출하기

from fah_converter import covert_c_to_f
print(covert_c_to_f(41.6))    # covert_c_to_f 함수만 호출함

 

     - 모듈에서 모든 함수 또는 클래스를 호출하기

from fah_converter import *
print(covert_c_to_f(41.6))    # 전체 호출

 

* built-in Modules : 파이썬이 기본 제공하는 라이브러리

                          문자처리, 웹, 수학 등 다양한 모듈이 제공됨

                          별다른 조치없이 import문으로 활용 가능

                          (예) random(난수), time(시간), urllib.request(웹)

                          수 많은 파이썬 모듈을 어떻게 검색할 것인가? 구글 검색

 

 

2. Package

 

 - 하나의 대형 프로젝트를 만드는 코드의 묶음

 - 다양한 모듈들의 합. 폴더로 연결됨

 - __init__ , __main__ 등 키워드 파일명이 사용됨

 - 다양한 오픈 소스들이 모두 패키지로 관리됨.

 - 폴더별로 __init__.py 구성하기 (현재 폴더가 패키지임을 알리는 초기화 스크립트. 없을 경우 패키지로 간주하지 않음.

                                          but 3.3 이상부터는 없어도 괜찮음

                                          import와 __all__ keyword사용)

 

(참고) package namespace

 - Package 내에서 다른 폴더의 모듈을 부를 때 상대 참조로 호출하는 방법

from game.graphic.render import render_test
                         #절대참조
from .render import render_test
     .현재 디렉토리 기준
from ..sound.echo import echo_test
     ..부모 디렉토리 기준

 

 

3. 오픈 소스 라이브러리 사용

 

두 개의 패키지를 설치할 때 충돌을 방지하기 위해 가상환경 설정.(Virtual Environment)

 

 - 프로젝트 진행시 필요한 패키지만 설치하는 환경

 - 기본 인터프리터 + 프로젝트 종류별 패키지 설치 (예) 웹 프로젝트, 데이터 분석 프로젝트, 각각 패키지 관리하는 기능

 - 다양한 패키지 관리 도구를 사용함

 - 대표적인 도구로 virtualenv와 conda가 있음

       - virtualenv + pip : 가장 대표적인 가상환경 관리 도구. 레퍼런스 + 패키지 개수

       - conda : 상용 가상환경도구. miniconda 기본 도구. 설치의 용이성 및 windows에서 장점.

 - conda 가상환경 예시 : matplotlib를 활용하면 그래프 표시 가능.

 

 

 

 

 

댓글