이번 강의는 production checklist를 실무에서 바로 쓰는 관점으로 정리합니다. 초보자가 이 구간에서 가장 자주 하는 오해는 "작동만 하면 됐다"는 생각입니다. 하지만 운영 환경에서는 입력 데이터가 흔들리고, 예외가 발생하며, 사람이 코드를 교체합니다. 그래서 이번 강의 목표는 개념 이해 + 재현 가능한 예…
[파이썬 100강] 98강. ast로 파이썬 코드를 분석하고 자동 점검 규칙 만들기
코드를 사람이 눈으로만 리뷰하면 놓치는 패턴이 반드시 생깁니다. 특히 팀 규모가 커질수록 “이 금지 API는 왜 또 들어갔지?”, “print 디버깅 코드가 왜 운영 브랜치까지 왔지?” 같은 문제가 반복됩니다. 이때 문자열 검색(grep)만으로는 한계가 있습니다. 같은 단어라도 주석인지, 문자열인지, 실제 함수 호출인지…
[파이썬 100강] 97강. concurrent.futures 고급 패턴으로 대량 작업 파이프라인 운영하기
대량 작업을 처리할 때 가장 흔한 오해는 "스레드 풀만 쓰면 성능이 자동으로 좋아진다"는 믿음입니다. 실제로는 작업 성격(CPU 바운드/IO 바운드), 실패 처리 방식, 타임아웃 정책, 재시도 규칙을 같이 설계하지 않으면 오히려 느려지거나 장애를 더 크게 만들 수 있습니다. 이번 강의에서는 concurrent.futur…
[파이썬 100강] 96강. urllib로 HTTP 요청과 URL 처리를 표준 라이브러리로 해결하기
외부 API를 붙이거나 웹 리소스를 가져올 때 가장 먼저 떠오르는 건 보통 requests입니다. 하지만 모든 환경에서 외부 패키지를 쉽게 추가할 수 있는 건 아닙니다. 사내 배포 제약, 서버 이미지 최소화 정책, 에어갭(폐쇄망) 환경처럼 표준 라이브러리만 써야 하는 상황은 생각보다 자주 만납니다. 이때 urllib를…
[파이썬 100강] 95강. sqlite3 트랜잭션과 인덱스로 데이터 처리 안정화하기
데이터를 DB에 넣는 코드는 금방 만들 수 있지만, 중간에 실패해도 데이터가 일관되게 남는 코드를 만드는 건 완전히 다른 문제입니다. 오늘은 sqlite3에서 그 차이를 만드는 두 축, 트랜잭션(transaction)과 인덱스(index)를 실전 관점으로 정리합니다. 설명은 짧게 하고 바로 코드로 들어가 보겠습니다.
[파이썬 100강] 94강. difflib로 텍스트 변경점 비교 자동화하기
문서 버전 비교, 설정 파일 변경 검토, 코드 리뷰 보조처럼 “어디가 어떻게 바뀌었는지”를 자동으로 보여줘야 할 때가 많습니다. 이때 파이썬 표준 라이브러리 difflib를 잘 쓰면 외부 도구 없이도 꽤 강력한 변경점 분석 파이프라인을 만들 수 있습니다. 오늘은 이론 설명을 길게 끌기보다, 실무에서 바로 재사용 가능한…
[파이썬 100강] 93강. graphlib.TopologicalSorter로 작업 의존성 순서화하기
작업 순서가 얽히기 시작하면 for문만으로는 금방 한계가 옵니다. 배치 파이프라인, 데이터 변환 단계, 빌드/배포, 문서 생성 같은 자동화는 거의 항상 “이 작업이 끝나야 다음 작업을 시작할 수 있다”는 의존성을 갖기 때문입니다. 이번 강의에서는 표준 라이브러리 graphlib.TopologicalSorter로 의존성…
[파이썬 100강] 92강. zoneinfo로 타임존 오류 없이 시간 처리하기
서버는 UTC로 잘 돌고 있는데, 사용자 화면에서 예약 시간이 한 시간씩 밀리는 순간이 있습니다. 대부분은 서머타임(DST) 경계나 "naive datetime"(타임존 정보 없는 datetime) 처리 실수에서 시작됩니다. 이번 강의는 zoneinfo를 문법 소개 수준이 아니라, 운영에서 시간 버그를 줄이는 기준으로…
[파이썬 100강] 91강. tomllib로 TOML 설정 파일을 안전하게 로딩하기
설정 파일은 "코드가 바뀌지 않아도 동작을 바꾸게" 해주는 핵심 장치입니다. 그리고 파이썬 3.11부터는 TOML을 표준 라이브러리 tomllib로 바로 읽을 수 있습니다. 오늘은 이 기능을 단순 파싱 수준이 아니라, 실무에서 실패를 줄이는 방식으로 정리합니다.