모듈을 만드는 방법
- 파이썬 파일 내부에 변수와 함수를 선언하여 외부에서 읽어 들이도록 구현한다
모율 만들기 예제
- module_basic 디렉토리 생성
- module_basic
__name__
변수
- 모듈의 이름을 저장하는 파이썬 코드 내부에 사전 정의된 변수
- 모듈 내부에서
__name__
을 출력하면 모듈의 이름을 문자열로 반환- 해당 파일 자체를 실행한 경우
'__main__'
을 저장
엔트리 포인트
- (또는) 메인
- 프로그램의 진입점
- 엔트리 포인트 파일을 실행한 경우
__name__
은'__main__'
으로 저장
__name__
활용하기
패키지
패키지
- 복잡하고 구조화된 거대한 모듈
- 모듈이 모여서 구조를 이룬 것을 패키지라고 함
패키지 만들기
- 패키지로 사용할 디렉토리(폴더) 내부에 하나 이상의 모듈의 저장
- module_package 디렉토리 ㄴ test_package 디렉토리 ㄴ module_a.py 파일: 모듈 ㄴ module_b.py 파일 ; 모듈 ㄴ main.py 파일 : 엔트리 포인트
__init__
- 패키지를 읽을 때 어떤 처리를 수행해야 하거나 패키지 내부의 모듈들을 한꺼번에 가져오고 싶을 때 사용
__all__
from test_package import *
파일의 종류
텍스트 데이터
- 우리가 쉽게 읽을 수 있는 형태의 데이터로 텍스트 에디터로 편집이 가능
- 컴퓨터는 내부적으로 모든 처리를 0과 1로 이루어진 이진숫자로 수행- 프로그램 소스 코드도 텍스트 데이터로 저장됨
- 텍스트 데이터로 쉽게 편집
바이너리 데이터
- 컴퓨터가 처리할 수 있는 0과 1로 저장된 데이터
이진 숫자
- 컴퓨터는 내부적으로 0과 1로 이루어진 이진 숫자로 모든 작업을 처리
텍스트 인코딩
- 문자와 숫자를 대응시키는 것
- 인코딩 방식
- 문자와 숫자를 대응시키는 방법 : ASCII 인코딩
100을 저장하는 방법
- 텍스트 파일로 저장하기
- 1, 0, 0
- 49 / 48 / 48 로 인코딩
- 00110001 / 00110000 / 00110000
- 3byte(24bit)가 필요
- 바이너리 데이터로 저장하기
- 100
- 01100100 = 64 + 32 + 4
- 1byte로 저장해도 충분
바이너리로 저장된 파일을 텍스트 에디터로 불러오면?
- 숫자 100을 바이너리로 저장하면 01100100이 저장
- 01100100은 숫자 100을 의미하며 텍스트 데이터로 읽게 되면 ASCII 코드 상 100에 해당하는 'd'를 읽어오게 됨
- 바이너리 데이터를 텍스트 데이터로 읽게 되면 의미를 이해할 수 없는 상황이 발생함
- 이미지, 동영상, 음악 파일 등이 바이너리 형식으로 저장됨
- 바이너리 데이터를 제대로 읽기 위해선 프로그램이 필요함
인코딩과 디코딩
인코딩
- A라는 형식을 (컴퓨터가 이해할 수 있는) B라는 형식으로 변환하는 것
- 텍스트 인코딩
- ASCII, UTF-8(텍스트 인코딩이 사용), UTF-16, EUC-KR(Windows가 사용), Shift-JIS ...etc- 이미지 인코딩
- JPEG, PNG, GIF ...etc디코딩
- 인코딩된 데이터를 다시 반대로 변환하는 것
인터넷 상의 이미지 파일 저장하기
- 이미지 파일은 바이너리 데이터로 저장해야 함
- 파일을 열 때 "wb"을 사용
(이미지 파일이 저장됨)