혼공파 | 07. 모듈

yeonk·2021년 9월 25일
0

python

목록 보기
7/23
post-thumbnail

1. 표준모듈


모듈(module)이라는 기능을 활용하여 코드를 분리하고 공유할 수 있다.
여러 함수와 변수를 가지고 있는 집합체와 같은 개념

표준 모듈: 파이썬에 기본적으로 내장되어 있는 모듈
외부 모듈: 다른 사람들이 만들어서 공개한 모듈

import 모듈 이름

표준 모듈 등의 정보가 궁금하다면? 파이썬 라이브러리 문서






from, as 구문

from 구문: 한 모듈에서 일부 함수만 사용하고 싶을 때
as 구문: 이름 충돌로 인한 문제 방지, 모듈의 이름을 간단하게 사용하고 싶은 경우

* 를 사용하면 모든 기능을 가져올 수 있다.

# from 구문 기본 구조
 from 모듈 이름 import 가져오고 싶은 변수 또는 함수
 
 # as 구문 기본 구조
 import 모듈 as 사용하고 싶은 식별자
 
 # * 사용
 from 모듈 이름 import *






math 모듈: 수학과 관련된 기능
random 모듈: 랜덤한 값을 생성할 때 사용하는 모듈 (random 모듈 문서 예시)
sys 모듈: 시스템과 관련된 정보를 가지고 있는 모듈. 명령 매개변수를 받을 때 많이 사용.
os 모듈: 운영체제와 관련된 기능을 가진 모듈
datetime 모듈: date, time과 관련된 모듈로 날짜 형식을 만들 때 자주 사용되는 코드들로 구성
time 모듈: 시간과 관련된 기능. 특정 시간 동안 코드 진행을 정지할 때 많이 사용
urllib 모듈: URL을 다루는 라이브러리






2. 외부 모듈


다른 사람들이 만들어 제공해주는 모듈.
scikit-learn, Tensorflow, Django, Flask, NumPy 등이 있다.

외부모듈은 cmd에서 설치할 수 있다.

pip install 모듈 이름

pip 패키지 설치 문서



  • 모듈을 찾아보는 방법
    • 특정 분야의 파이썬 책을 통해 필요한 모듈을 추천 받는다
    • 파이썬 커뮤니티
    • 구글링






BeautifulSoup: 웹페이지 분석 모듈( BeautifulSoup 문서)
Django: 다양한 기능을 제공하는 웹 개발 프레임 워크
Flask: 작은 기능만을 제공하는 웹 개발 프레임 워크

# flask 코드 실행 방법
set FLASK_APP = 파일이름.py
flask run






3. 라이브러리와 프레임워크


라이브러리와 프레임워크를 확실하게 구분하는 기준은 제어역전이다.

라이브러리(library): 정상적인 제어를 하는 모듈(개발자가 모듈의 기능을 호출하는 형태)
프레임워크(framework): 제어 역전이 발생하는 모듈(모듈이 개발자가 작성한 코드를 실행하는 형태)
제어역전(Inversion of Control, IoC): 제어가 역전 된 것






데코레이터(decorator)

파이썬에는 함수 데코레이터와 클래스 데코레이터가 있다.

함수 데코레이터: 대상 함수의 앞뒤에 꾸밀 부가적인 내용 또는 반복할 내용을 데코레이터로 정의해서 손쉽게 사용할 수 있도록 한 것. 소스의 가독성을 높일 수 있다.






분야에 따른 모듈

웹서버 개발: Django, Flask

인공지능 개발: scikit-learn, tensorflow, keras

데이터 분석: pandas, matplotlib

크롤러 개발: BeautifulSoup, requests, scrapy






4. 모듈 만들기


  1. module directory 생성
  2. main.py 파일 작성 및 저장



엔트리 포인트(entry point), 메인(main): 프로그램의 진입점
__name__: 모듈에서는 모듈 이름, 메인 내부에서는 __main__
(현재 파일이 엔트리 파일인지 확인할 수 있다)






패키지

모듈이 모여서 구조를 이루면 피키지가 된다.

__init__.py: 패키지와 관련된 초기화 처리 가능. 패키지를 읽을 때 어떤 처리를 수행해야 하거나 패키지 내부의 모듈들을 한꺼번에 가져오고 싶을 때 만들어 사용.






텍스트 데이터

파일은 텍스트 데이터바이너리 데이터로 구분

바이너리 데이터(binary data): 텍스트 데이터로 표현할 경우 의미를 알 수 없는 데이터로 변화할 때의 변화된 데이터를 의미 (대표적으로 이미지, 동영상이 있다)



  • 텍스트 데이터
    • 텍스트 에디터로 열었을 때 읽을 수 있다.
    • 사람이 쉽게 읽을 수 있다.
    • 텍스트 에디터로 쉽게 편집할 수 있다.
    • 용량이 크다.
  • 바이너리 데이터
    • 텍스트 에디터로 열어도 읽을 수 없다.
    • 용량이 적다.
    • 사람이 쉽게 읽을 수 없다.
    • 일반적으로는 텍스트 에디터로 편집할 수 없다.






reference


윤인성, 『혼자 공부하는 파이썬』, 한빛미디어

0개의 댓글