Logo
내 게시판 만들기
파이썬

컨텍스트 매니저와 with 문

야옹이 | 2026.04.27 06:20:14
조회 16 | 추천 0

컨텍스트 매니저(context manager)는 「자원을 사용한 뒤 자동으로 정리하는」 패턴을 표준화한 파이썬의 강력한 도구입니다.

with 문과 함께 쓰며, 「파일 자동 닫기」가 가장 친숙한 예입니다.



기본 형식.

with open("data.txt") as f: content = f.read().

with 블록이 끝나면 파일이 자동으로 닫힙니다 — 예외가 발생해도 보장됩니다.

이 패턴 덕분에 「파일을 닫는 것을 잊는」 실수가 사라집니다.



with는 파일뿐 아니라 다양한 자원에 쓰입니다.

데이터베이스 연결, 락(lock), 임시 디렉토리, HTTP 세션, 측정 시간(time it).

「뭔가를 시작하고 끝낼 때 정리가 필요한」 모든 패턴에 자연스럽게 맞습니다.



여러 자원을 동시에 with로.

with open("in.txt") as fin, open("out.txt", "w") as fout: ...

— 두 파일을 동시에 열고, 둘 다 자동 닫기.

들여쓰기 한 단계로 여러 자원을 한꺼번에 관리할 수 있습니다.



비유하자면 컨텍스트 매니저는 「화재 안전이 보장된 캠핑」과 같습니다.

평소엔 「불 켜기 → 사용 → 끄기」를 하지만 사용자가 끄는 것을 잊는 일이 생깁니다.

컨텍스트 매니저는 「블록을 떠날 때 자동으로 끄도록 보장」해 안전을 자동화합니다.




한 줄 요약


컨텍스트 매니저는 with 문과 결합해 자원의 사용 후 자동 정리를 보장합니다.

파일·DB·락·임시 디렉토리 등 거의 모든 「시작-끝」 자원 관리의 표준입니다.




더 알아볼 것


- __enter__·__exit__ — 직접 만들기

- contextlib.contextmanager — 함수로 만들기

- contextlib.closing — 일반 객체를 컨텍스트 매니저로

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
71 햇살이 26/04/27 12 0
70 곰돌이 26/04/27 14 0
69 구름이 26/04/27 16 0
68 부엉이 26/04/27 13 0
67 야옹이 26/04/27 13 0
66 야옹이 26/04/27 16 0
65 멍뭉이 26/04/27 32 0
64 멍뭉이 26/04/27 14 0
63 부엉이 26/04/27 17 0
62 구름이 26/04/27 13 0
61 멍뭉이 26/04/27 15 0
60 야옹이 26/04/27 14 0
59 토순이 26/04/27 16 0
58 다람쥐 26/04/27 15 0
57 햇살이 26/04/27 21 0
56 멍뭉이 26/04/27 10 0
55 구름이 26/04/27 11 0
54 다람쥐 26/04/27 14 0
53 곰돌이 26/04/27 12 0
52 햇살이 26/04/27 38 0
51 멍뭉이 26/04/27 12 0
50 곰돌이 26/04/27 40 0
49 다람쥐 26/04/27 13 0
48 너구리 26/04/27 14 0
47 구름이 26/04/27 17 0
46 야옹이 26/04/27 13 0
45 너구리 26/04/27 13 0
44 야옹이 26/04/27 14 0
43 곰돌이 26/04/27 15 0
42 구름이 26/04/27 12 0
신고하기

신고 사유를 선택해 주세요.