10분
목요일 오후, 커넥션 풀이 고갈됐다
파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
목요일 오후, 커넥션 풀이 고갈됐다
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저
학습 목표
리소스 누수의 심각성을 체감한다 컨텍스트 매니저의 필요성을 이해한다
목요일 오후, 커넥션 풀이 고갈됐다
"김신입, 배치 서버가 'Too many connections' 에러 뿜으면서 죽었어!"
신입의 코드를 살펴봤다:
에디터 로딩 중...
더 큰 문제: 예외 발생 시
에디터 로딩 중...
박선배의 해결책
에디터 로딩 중...
with 문의 장점
| 특징 | try/finally | with 문 |
|---|---|---|
| 코드량 | 많음 | 적음 |
| 실수 가능성 | 높음 | 낮음 |
| 가독성 | 낮음 | 높음 |
| 중첩 리소스 | 복잡 | 간단 |
오늘의 학습 목표
- with 문의 동작 원리 - __enter__와 exit
- 커스텀 컨텍스트 매니저 - 클래스와 @contextmanager
- 실전 패턴 - DB 연결, 파일 처리, 락(Lock)
- ExitStack - 동적으로 여러 리소스 관리
핵심 포인트
- • 리소스 누수 = 시스템 장애의 주요 원인
- • with 문 = try/finally의 깔끔한 대안
- • 예외 발생해도 리소스 정리 보장