파이썬 실전 미니 자동화 프로젝트
- 1. 파이썬 자동화 미니 프로젝트 실전 정리, 설정부터 cron까지 한 번에 완성
- 2. 파이썬 설치와 VS Code 세팅 방법 완전 정리
- 3. 파이썬 변수와 자료형 정리 실전 가이드, list dict JSON까지 한 번에
- 4. 파이썬 조건문 반복문 실전 정리, if for로 자동화 흐름 이해하기
- 5. 파이썬으로 로그와 설정파일 다루는 법, 파일 읽기 쓰기 핵심 패턴
- 6. 파이썬 JSON 파일 읽기 쓰기 실전 정리, 설정 자동화까지 한 번에
- 7. 파이썬 requests HTTP 요청 실전 정리, API 호출과 응답 처리 완전 가이드
- 8. 파이썬 API 인증 실전 정리, API Key 토큰 헤더 처리 완전 가이드
- 9. 파이썬 크롤링 기초 실전 정리, requests BeautifulSoup로 데이터 수집하기
- 10. 파이썬 예외 처리 실전 정리, try except로 자동화 안정성 높이기
- 11. 파이썬 logging 모듈 실전 정리, 로그 처리와 디버깅 운영 가이드
- 12. 파이썬 스케줄링 자동화 실전 정리, cron으로 주기 실행 완성
![]()
로그 처리가 운영 자동화의 기준인 이유
print 디버깅의 한계
print는 개발 단계에서는 빠르지만 운영 환경에서는 한계가 명확합니다.
언제, 어디서, 어떤 상태였는지 기록이 남지 않습니다.
자동화가 커질수록 문제 추적이 거의 불가능해집니다.
로그는 증거다
로그는 코드가 실제로 어떤 경로를 거쳤는지 보여주는 증거입니다.
에러가 재현되지 않아도 로그로 원인을 추적할 수 있습니다.
운영 환경에서는 로그가 유일한 단서가 되는 경우가 많습니다.
외주 코드에 logging이 많은 이유
외주 파이썬 코드에는 대부분 logging 설정이 포함되어 있습니다.
운영 중 발생하는 문제를 원격으로 확인해야 하기 때문입니다.
logging 구조를 이해하면 코드 의도가 훨씬 잘 보입니다.
이번 편의 학습 범위
logging 모듈 기본 사용법을 다룹니다.
로그 레벨과 파일 로그 패턴을 설명합니다.
운영 기준 로그 설계에 집중합니다.
logging 모듈 기본 구조 이해하기
logging 모듈의 역할
logging은 메시지를 시간과 함께 기록합니다.
콘솔 출력과 파일 저장을 동시에 처리할 수 있습니다.
파이썬 표준 라이브러리이므로 추가 설치가 필요 없습니다.
기본 import와 사용
logging은 import 후 바로 사용할 수 있습니다.
기본 설정만으로도 로그 출력이 가능합니다.
처음에는 이 구조부터 익히는 것이 좋습니다.
import logging
logging.warning("경고 메시지")
logging.error("에러 메시지")
print와 logging의 차이
print는 단순 출력이고 logging은 기록입니다.
logging은 시간, 레벨, 위치 정보를 함께 남길 수 있습니다.
운영 환경에서는 logging이 기본 선택입니다.
외주 코드에서 보이는 기본 패턴
logging.info, logging.error 형태가 가장 흔합니다.
print는 거의 사용되지 않습니다.
이 차이를 이해하면 코드 수준이 구분됩니다.
로그 레벨 이해하기
주요 로그 레벨 5가지
logging은 여러 단계의 로그 레벨을 제공합니다.
상황에 맞는 레벨 사용이 중요합니다.
레벨 선택이 곧 로그 품질입니다.
- DEBUG: 디버깅용 상세 정보
- INFO: 정상 동작 기록
- WARNING: 주의가 필요한 상황
- ERROR: 처리 실패
- CRITICAL: 치명적 오류
INFO와 ERROR의 실무 차이
INFO는 정상 흐름을 기록합니다.
ERROR는 예외나 실패 상황을 기록합니다.
이 둘만 정확히 써도 운영 로그 품질이 크게 올라갑니다.
DEBUG는 언제 사용하는가
DEBUG는 개발 또는 테스트 환경에서 사용합니다.
운영 환경에서는 로그가 너무 많아질 수 있습니다.
환경별 레벨 분리가 중요합니다.
로그 레벨 선택 기준
문제가 되었을 때 확인하고 싶은 정보인지 기준으로 판단합니다.
모든 메시지를 남기면 로그는 쓰레기가 됩니다.
의미 있는 정보만 남기는 것이 핵심입니다.
파일 로그 설정 기본 패턴
basicConfig로 파일 로그 설정
basicConfig는 가장 간단한 설정 방식입니다.
로그 파일 경로와 레벨을 지정할 수 있습니다.
소규모 자동화에는 이 방식으로 충분합니다.
logging.basicConfig(
filename="app.log",
level=logging.INFO
)
파일 로그의 장점
실행이 끝나도 로그가 남습니다.
장애 발생 시 원인 추적이 가능합니다.
서버 자동화에서는 필수입니다.
로그 파일 위치 관리
로그 파일은 별도 디렉터리에 두는 것이 좋습니다.
코드와 로그를 분리하면 관리가 쉬워집니다.
외주 프로젝트에서 자주 요구되는 구조입니다.
로그 파일 크기 주의
로그는 계속 쌓입니다.
장기 운영 시 파일 크기 관리가 필요합니다.
회전 로그는 이후 편에서 다룹니다.
예외 처리와 logging 결합
예외 발생 시 로그 남기기
예외를 출력만 하면 기록이 남지 않습니다.
logging으로 에러를 기록해야 합니다.
운영 장애 분석의 핵심 포인트입니다.
try:
x = int("abc")
except ValueError as e:
logging.error(e)
에러 메시지에 맥락 추가
단순 에러 메시지보다 상황 설명이 중요합니다.
어떤 작업 중 발생했는지 기록합니다.
이 차이가 문제 해결 시간을 줄입니다.
logging.exception 활용
logging.exception은 스택 트레이스를 함께 기록합니다.
except 블록 안에서 사용합니다.
디버깅에 매우 유용합니다.
예외를 삼키지 않는다
로그만 남기고 아무 일도 없었던 것처럼 넘기면 위험합니다.
필요한 경우 예외를 다시 발생시킵니다.
통제 가능한 예외만 처리하는 것이 원칙입니다.
운영 기준 로그 설계 원칙
누가 봐도 이해되는 메시지
로그는 미래의 나 또는 다른 개발자를 위한 메시지입니다.
맥락 없는 숫자나 변수 출력은 피합니다.
행동 중심으로 기록합니다.
민감 정보 로그 금지
토큰, 비밀번호, API Key는 로그에 남기지 않습니다.
보안 사고로 이어질 수 있습니다.
외주 작업에서 특히 주의해야 합니다.
로그와 알림의 구분
모든 로그가 알림이 되어서는 안 됩니다.
치명적인 상황만 별도 알림으로 연결합니다.
이 구분이 운영 피로도를 줄입니다.
앞선 편과의 연결
9편의 예외 처리가 로그로 기록됩니다.
API, 크롤링, 파일 처리 모두 로그로 묶입니다.
이제 자동화는 운영 단계에 들어갑니다.
다음 편 예고와 학습 흐름 정리
이번 편에서 반드시 이해해야 할 핵심
logging은 운영 자동화의 기본 장치입니다.
print를 버리고 로그를 남겨야 합니다.
예외와 로그는 항상 함께 설계합니다.
실무 자동화 수준 변화
문제 발생 시 원인을 바로 추적할 수 있습니다.
운영 중에도 코드 상태를 파악할 수 있습니다.
혼자 운영해도 버틸 수 있는 구조가 됩니다.
다음 편에서 다룰 내용
다음 편에서는 cron 개념과 스케줄링 자동화를 다룹니다.
정해진 시간에 스크립트를 실행하는 구조를 설명합니다.
완전 자동화의 마지막 퍼즐입니다.
추천 연습 방법
모든 print를 logging으로 바꿔보세요.
일부러 예외를 발생시켜 로그가 남는지 확인해보는 것이 좋습니다.
로그 파일을 읽으며 코드 흐름을 복기해보세요.