모듈(module)이라는 기능을 활용하여 코드를 분리하고 공유할 수 있다.
여러 함수와 변수를 가지고 있는 집합체와 같은 개념
표준 모듈
: 파이썬에 기본적으로 내장되어 있는 모듈
외부 모듈
: 다른 사람들이 만들어서 공개한 모듈
import 모듈 이름
표준 모듈 등의 정보가 궁금하다면? 파이썬 라이브러리 문서
from 구문: 한 모듈에서 일부 함수만 사용하고 싶을 때
as 구문: 이름 충돌로 인한 문제 방지, 모듈의 이름을 간단하게 사용하고 싶은 경우
*
를 사용하면 모든 기능을 가져올 수 있다.
# from 구문 기본 구조
from 모듈 이름 import 가져오고 싶은 변수 또는 함수
# as 구문 기본 구조
import 모듈 as 사용하고 싶은 식별자
# * 사용
from 모듈 이름 import *
math 모듈
: 수학과 관련된 기능
random 모듈
: 랜덤한 값을 생성할 때 사용하는 모듈 (random 모듈 문서 예시)
sys 모듈
: 시스템과 관련된 정보를 가지고 있는 모듈. 명령 매개변수를 받을 때 많이 사용.
os 모듈
: 운영체제와 관련된 기능을 가진 모듈
datetime 모듈
: date, time과 관련된 모듈로 날짜 형식을 만들 때 자주 사용되는 코드들로 구성
time 모듈
: 시간과 관련된 기능. 특정 시간 동안 코드 진행을 정지할 때 많이 사용
urllib 모듈
: URL을 다루는 라이브러리
다른 사람들이 만들어 제공해주는 모듈.
scikit-learn, Tensorflow, Django, Flask, NumPy 등이 있다.
외부모듈은 cmd
에서 설치할 수 있다.
pip install 모듈 이름
BeautifulSoup
: 웹페이지 분석 모듈( BeautifulSoup 문서)
Django
: 다양한 기능을 제공하는 웹 개발 프레임 워크
Flask
: 작은 기능만을 제공하는 웹 개발 프레임 워크
# flask 코드 실행 방법
set FLASK_APP = 파일이름.py
flask run
라이브러리와 프레임워크를 확실하게 구분하는 기준은
제어역전
이다.
라이브러리(library)
: 정상적인 제어를 하는 모듈(개발자가 모듈의 기능을 호출하는 형태)
프레임워크(framework)
: 제어 역전이 발생하는 모듈(모듈이 개발자가 작성한 코드를 실행하는 형태)
제어역전(Inversion of Control, IoC)
: 제어가 역전 된 것
파이썬에는 함수 데코레이터와 클래스 데코레이터가 있다.
함수 데코레이터
: 대상 함수의 앞뒤에 꾸밀 부가적인 내용 또는 반복할 내용을 데코레이터로 정의해서 손쉽게 사용할 수 있도록 한 것. 소스의 가독성을 높일 수 있다.
웹서버 개발: Django
, Flask
인공지능 개발: scikit-learn
, tensorflow
, keras
데이터 분석: pandas
, matplotlib
크롤러 개발: BeautifulSoup
, requests
, scrapy
엔트리 포인트(entry point)
, 메인(main)
: 프로그램의 진입점
__name__
: 모듈에서는 모듈 이름, 메인 내부에서는 __main__
(현재 파일이 엔트리 파일인지 확인할 수 있다)
모듈이 모여서 구조를 이루면 피키지가 된다.
__init__.py
: 패키지와 관련된 초기화 처리 가능. 패키지를 읽을 때 어떤 처리를 수행해야 하거나 패키지 내부의 모듈들을 한꺼번에 가져오고 싶을 때 만들어 사용.
파일은 텍스트 데이터
와 바이너리 데이터
로 구분
바이너리 데이터(binary data)
: 텍스트 데이터로 표현할 경우 의미를 알 수 없는 데이터로 변화할 때의 변화된 데이터를 의미 (대표적으로 이미지, 동영상이 있다)
윤인성, 『혼자 공부하는 파이썬』, 한빛미디어