22주차. 모듈 만들기

09Roalwlzm01·2023년 11월 23일
0

Python

목록 보기
31/36

모듈을 만드는 방법

  • 파이썬 파일 내부에 변수와 함수를 선언하여 외부에서 읽어 들이도록 구현한다

모율 만들기 예제

  • 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"을 사용

    (이미지 파일이 저장됨)

0개의 댓글