Python Context Manager에 대해 알아보자

파이썬에는 with 블록과 함께 쓰이는 Context Manager라는게 있습니다. 주로 외부에서 제공해주는 패키지를 사용하다보면 볼 수 있는데, 가장 대표적인 사용 사례가 바로 open() 함수를 통해 파일을 읽고 쓰는 것입니다.


with open(file_path, 'r') as f:
  print(f.readlines())


Context Manager는 실제 코드를 작성할때 자주 사용됩니다. 예컨대, 외부 저장소 혹은 서버에 연결을 맺고 작업을 진행하는 경우나, 특정 함수를 일시적으로 mocking해야하는 경우, 혹은 lock 매커니즘을 도입해 lock을 관리하는 경우 등이 있습니다.


이처럼, 리소스 정리를 필요로 하거나, 일시적으로 상태를 변환시켰다가 다시 원상복구하는 작업들을 할때 유용하게 사용할 수 있는 것이 바로 Context Manager입니다.


이번 포스트에서는 Context Manager가 어떤 역할을 하고, 어떤 원리에 의해서 작동하는지 적어보았습니다. 실무에서 파이썬을 사용하고 계시다면, 이번 기회에 Context Manager를 사용해보시면 어떨까요?


https://brunch.co.kr/@growthminder/129

[Python] Context Manager

Brunch Story

[Python] Context Manager

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 10일 오후 4:13

댓글 0

    함께 읽은 게시물

    이젠 Claude 모델이 그렇게 압도적으로 좋은 건 아닌데, Claude Code는 진짜 분명하게 좋음. 아마도 프롬프트가 잘 되어 있어서 그런 것 같음. Claude의 다른 프롬프트들은 공개해뒀는데 Claude Code용 프롬프트는 공개를 안해줌. 역시 아무리 투명하게 공개한다고 해도 진짜 좋은 건 다 기업비밀임..


    나는 종종 생산성을 올리기 위한 각종 개발 툴은 물론, 라이브러리나 소스 코드를 구매하기도 한다.


    소스 코드의 경우 실제로 써먹지 못하는 경우도 상당수 되긴 하지만, 그래도 구성이나 코드를 보면서 배우는게 있기 때문에 학습 비용이라고 생각하고 가끔 구매하는 편이다.


    ... 더 보기

    🍜 짜파게티가 왜 거기서 나와?

    ... 더 보기

    액터모델을 이용 이벤트소스/클러스터상태관리를 우아하게하기 - 코틀린


    ... 더 보기

    kopring-reactive-labs/AgenticCoding/Projects/PERSIST_DURABLE_CLUSTER at main · psmon/kopring-reactive-labs

    GitHub

    kopring-reactive-labs/AgenticCoding/Projects/PERSIST_DURABLE_CLUSTER at main · psmon/kopring-reactive-labs

    “무엇을 만들까”보다 “왜 해야 하나요?”를 묻는 사람들, 토스페이먼츠

    “이 문제는 왜 해결해야 하죠?” 토스페이먼츠의 Product Manager는 늘 이 질문에서 시작합니다. 화면을 기획하거나, 기능을 정리하는 일보다 먼저 우리는 문제의 본질을 정의하고 싶은 사람들입니다. 그렇다면 ‘문제의 본질’부터 고민하는 토스페이먼츠의 PM은 실제로 어떤 방식으로 일하고 있을까요? 토스페이먼츠 PM 김명훈님의 이야기를 함께 들어보세요.

    “무엇을 만들까”보다 “왜 해야 하나요?”를 묻는 사람들, 토스페이먼츠 PM

    toss.im

    “무엇을 만들까”보다 “왜 해야 하나요?”를 묻는 사람들, 토스페이먼츠 PM

    사람들이 요즘 AI, ChatGPT에게 의존하여 사고력이 저하되고 있다는 이야기가 많이 나온다.


    두뇌 발달에 안 좋으니, 80년대에 계산기 쓰지마라, 90년대에 컴퓨터 쓰지마라, 2000년대에 엑셀 팡션 쓰지마라, 2010년에 스마트폰 쓰지마라는 말과 같다는 생각이다.


    ... 더 보기

     • 

    저장 7 • 조회 2,531