부스트코스 강의 인공지능(AI) 기초 다지기 중 'File / Exception / Log Handling'을 정리한 내용이다.
예상 가능한 예외: 발생 여부를 사전에 인지할 수 있는 예외, 개발자가 반드시 명시적으로 정의해야 함
예상 불가능한 예외: 인터프리터 과정에서 발생하는 예외, 개발자의 실수, 리스트의 범위를 넘어가는 값 호출 등
예외가 발생할 경우 Exception Handling을 해줌
try ~ except 문법
raise 구문: 필요에 따라 강제로 Exception을 발생
assert 구문: 특정 조건에 만족하지 않을 경우 예외 발생
File system: OS에서 파일을 저장하는 트리구조 저장 체계
File from wiki: 컴퓨터 등의 기기에서 의미있는 정보를 담는 논리적인 단위
파일의 종류
text 파일: 인간도 이해할 수 있는 문자열 형식으로 저장된 파일, ex) 메모장
binary 파일: 컴퓨터만 이해할 수 있는 형태인 이진법 형식으로 저장된 파일, ex) 엑셀 파일
컴퓨터는 text파일을 처리하기 위해 binary 파일로 변환시킴
text파일도 실제는 binary 파일로, ASCII/Unicode 문자열 집합으로 저장되어 사람이 읽을 수 있음
파일 처리를 위해 "open" 키워드 사용
python의 file read
python의 file write
python의 directory 다루기
Log 파일 생성하기
Pickle
파이썬의 객체를 영속화(persistence)하는 built-in 객체
데이터, object 등 실핼 중 정보를 저장 -> 불러와서 사용
저장해야하는 정보, 계산 결과(모델) 등 활용이 많음
로그 남기기 - Logging
프로그램이 실행되는 동안 일어나는 정보를 기록으로 남기기
유저의 접근, 프로그램의 Exception, 특정 함수의 사용
Console 화면에 출력, 파일에 남기기, DB에 남기기 등
기록된 로그를 분석하여 의미있는 결과를 도출할 수 있음
실행시점에서 남겨야하는 기록, 개발시점에서 남겨야 하는 기록
기록을 print로 남기는 것도 가능하지만 Console 창에만 남기는 기록은 분석시 사용불가
레벨별(개발, 운영)로 기록을 남길 필요가 있고, 모듈별로 별도의 logging을 남길 필요도 있음
logging 모듈
logging level
프로그램 진행 상황에 따라 다른 level의 log를 출력함
개발 시점, 운영 시점마다 다른 log가 남을 수 있도록 지원함
DEBUG > INFO > WARNING > ERROR > Critical
log 관리시 가장 기본이 되는 설정 정보
configparser
프로그램의 실행 설정을 file에 저장함
Section, Key, Value 값의 형태로 설정된 설정 파일을 사용
설정파일을 Dict Type으로 호출 후 사용
argparser
Console 창에서 프로그램 실행 시 Setting 정보를 저장함
거의 모든 Console 기반 Python 프로그램 기본으로 제공
특수 모듈도 많이 존재하지만(TF) 일반적으로 argparse 사용
Command-Line Option이라고 부름
logging formmater