공부해야 할 것들 (필수 개념 정리)

[Python 문법 / 구조 관련]

주제 이유
if __name__ == "__main__" 배치 진입점 제어
import, __init__.py 모듈 구성
os, pathlib 경로/파일 다루기
argparse 커맨드라인 인자 처리
logging 로그 남기기
datetime, dateutil 날짜 기반 배치에 필수
schedule, time, sleep 시간 제어 (반복/딜레이)

[배치 구조 설계 관련]

주제 이유
모듈 구조 설계 기능별 책임 분리, 유지보수
서비스 계층(Service Layer) API/DB 호출 분리
예외 처리 (try-except) 에러 무중단 실행
리팩토링 원칙 job 단위로 나누기, 재사용성 고려

[외부 연동 기술 (선택형)]

주제 이유
requests, httpx 외부 API 호출
boto3 AWS S3 연동 (업로드/다운로드)
pymysql, sqlalchemy MySQL 등 DB 연동
dotenv (python-dotenv) .env 파일로 환경 변수 관리

[운영 / 자동화 관련]

주제 이유
cron 또는 schedule 모듈 주기적 실행 (시간별, 일별 등)
로그 로테이션 로그가 너무 커지는 것 방지
알림 연동 (Slack, 이메일 등) 배치 실패 알림 자동화
유닛 테스트 (pytest) 코드 안정성 확보
.gitignore 설정 민감정보, 로그, 가상환경 제외

[옵션: 도구 기반 자동화 (확장)]

주제 이유
Airflow 복잡한 배치 플로우, 의존성 관리
Prefect 파이썬 배치 자동화 대안
Docker 환경 이식성
GitHub Actions CI/CD, 스케줄 실행

추천 학습 순서

  1. 기본 문법 + 모듈 구조 (import / 함수 분리 / 파일 나누기)
  2. logging, datetime, 환경 변수 관리
  3. 배치 흐름 설계 연습 (jobs/ 폴더 기반 구조 연습)