10

목요일 오후, 커넥션 풀이 고갈됐다

파일 닫는 걸 또 깜빡했다 - 컨텍스트 매니저

학습 목표

리소스 누수의 심각성을 체감한다 컨텍스트 매니저의 필요성을 이해한다

목요일 오후, 커넥션 풀이 고갈됐다

"김신입, 배치 서버가 'Too many connections' 에러 뿜으면서 죽었어!"

신입의 코드를 살펴봤다:

에디터 로딩 중...

더 큰 문제: 예외 발생 시

에디터 로딩 중...

박선배의 해결책

에디터 로딩 중...

with 문의 장점

특징try/finallywith 문
코드량많음적음
실수 가능성높음낮음
가독성낮음높음
중첩 리소스복잡간단

오늘의 학습 목표

  1. with 문의 동작 원리 - __enter__와 exit
  2. 커스텀 컨텍스트 매니저 - 클래스와 @contextmanager
  3. 실전 패턴 - DB 연결, 파일 처리, 락(Lock)
  4. ExitStack - 동적으로 여러 리소스 관리
핵심 포인트
  • 리소스 누수 = 시스템 장애의 주요 원인
  • with 문 = try/finally의 깔끔한 대안
  • 예외 발생해도 리소스 정리 보장