CWN(CHANGE WITH NEWS) - 파이썬 개발자라면 알아둬야 할 ′컨텍스트 관리자′ 사용설명서

  • 구름조금보은15.7℃
  • 구름조금제주22.3℃
  • 구름많음산청16.8℃
  • 맑음세종17.8℃
  • 흐림순창군17.6℃
  • 흐림광주20.5℃
  • 구름많음울산18.2℃
  • 구름많음영천16.3℃
  • 구름조금목포20.4℃
  • 구름많음양산시19.4℃
  • 구름많음김해시19.0℃
  • 구름많음보령18.5℃
  • 구름조금남해19.6℃
  • 구름많음영월15.6℃
  • 구름많음부안19.0℃
  • 구름많음대관령13.1℃
  • 구름많음창원20.5℃
  • 흐림거창15.0℃
  • 흐림춘천17.2℃
  • 구름많음청송군14.3℃
  • 구름많음의성15.7℃
  • 구름많음흑산도20.9℃
  • 구름많음북창원20.1℃
  • 구름많음울진17.4℃
  • 구름많음문경15.8℃
  • 구름많음북춘천16.4℃
  • 구름조금속초21.6℃
  • 구름많음여수21.7℃
  • 구름많음북강릉19.1℃
  • 구름조금인천18.7℃
  • 흐림밀양18.2℃
  • 구름조금서울19.1℃
  • 구름많음충주17.5℃
  • 구름많음전주19.3℃
  • 구름많음동두천16.7℃
  • 구름조금울릉도19.9℃
  • 구름많음통영19.9℃
  • 구름많음해남17.2℃
  • 흐림합천16.6℃
  • 흐림서귀포23.4℃
  • 구름조금강화15.4℃
  • 구름많음고산22.4℃
  • 구름많음영주15.8℃
  • 구름많음북부산18.2℃
  • 구름많음군산18.5℃
  • 구름많음영덕17.1℃
  • 구름조금홍성18.3℃
  • 맑음강진군18.7℃
  • 흐림홍천17.6℃
  • 구름많음제천15.0℃
  • 구름많음진도군17.0℃
  • 구름많음안동16.7℃
  • 구름조금추풍령14.8℃
  • 구름많음장수14.9℃
  • 맑음대전18.6℃
  • 맑음서청주17.0℃
  • 구름많음거제18.1℃
  • 흐림봉화14.8℃
  • 구름많음부산22.1℃
  • 구름많음고흥17.2℃
  • 구름많음포항20.7℃
  • 구름많음양평17.3℃
  • 구름조금부여17.2℃
  • 구름많음순천15.7℃
  • 구름많음상주17.3℃
  • 흐림함양군16.4℃
  • 구름많음대구18.9℃
  • 구름조금서산16.8℃
  • 구름많음금산16.5℃
  • 구름많음강릉21.5℃
  • 구름많음보성군18.9℃
  • 구름많음철원16.3℃
  • 구름조금이천17.0℃
  • 구름많음원주18.2℃
  • 흐림동해19.8℃
  • 흐림남원17.1℃
  • 구름많음인제15.9℃
  • 구름많음경주시15.9℃
  • 흐림영광군18.2℃
  • 맑음청주20.7℃
  • 흐림태백13.4℃
  • 구름많음완도19.8℃
  • 흐림고창17.6℃
  • 맑음장흥17.3℃
  • 구름많음구미17.9℃
  • 흐림고창군17.7℃
  • 구름많음광양시19.8℃
  • 맑음수원17.1℃
  • 구름많음정선군14.8℃
  • 구름조금천안17.1℃
  • 구름조금파주15.8℃
  • 구름많음진주16.6℃
  • 구름많음의령군14.7℃
  • 구름많음백령도18.5℃
  • 구름많음성산20.5℃
  • 흐림임실16.5℃
  • 구름많음정읍18.4℃
  • 2025.10.01 (수)

파이썬 개발자라면 알아둬야 할 '컨텍스트 관리자' 사용설명서

오영주 / 기사승인 : 2022-05-11 20:30:57
  • -
  • +
  • 인쇄

파이썬 사용 개발자들은 파일의 사용이 끝나면 반드시 파일을 닫아야 한다는 점을 주의해야 한다. 그렇지 않으면 리소스가 낭비되고 파일에 예측 불가능한 작업이 이루어질 수 있기 때문이다. 하지만, 프로젝트의 규모가 커지고 로직이 복잡해질수록 모든 파일을 관리하며 닫는 일은 쉽지 않다.

이러한 상황 속 개발자에게 유용한 것이 바로 '파이썬 컨텍스트 매니저'다. 파이썬 컨텍스트 매니저는 특정 작업(여기서는 f에 대한 작업)의 context(f를 열고 닫기 또는 예외처리)를 관리해주는 object를 말한다.

즉, 특정 행동을 할 때 항상 일정한 런타임 환경을 만들어주기 위해 특정 행동에의 진입과 종료를 관리해주는 도구다. 이를 통해 파이썬을 사용하는 개발자는 코딩에만 더욱 전념할 수 있게 된다.

컨텍스트 매니저는 클래스 또는 함수(데코레이터 포함)를 사용하여 작성할 수 있다. 여기서 ‘리소스’는 파일, 네트워크 포트 또는 시스템 내의 기타 유한 엔티티를 나타낸다. 예를 들어 프로그램이 컴퓨터의 리소스에 액세스해야 할 때 OS에 요청하고 OS는 차례로 해당 리소스에 대한 핸들을 제공한다. 종종 해당 리소스의 가용성이 제한된다.

예를 들어, 네트워크 포트는 주어진 시간에 하나의 프로세스에서만 사용할 수 있으며 그 당시에는 너무 많은 포트만 사용할 수도 있다. 따라서 열려 있는 리소스 도 나중에 닫히는 지 확인하고 확인하는 것이 중요하다.

이에 대한 문제가 있지만 예외가 발생하면(즉, 코드의 오류) close 문이 있는 행은 결과적으로 실행에 실패한다. 마찬가지로, 프로그램이 계속 실행되는 동안 강제 종료되어야 하는 경우, 혹은 코드에 여러 반환 경로가 있는 복잡한 알고리즘이 있는 경우 모든 위치에서 파일을 닫는 것이 번거로워진다.

클래스를 사용하여 컨텍스트 매니저를 만들 때는 클래스에 __enter__() 및 __exit__( ) 메서드가 있는지 확인해야 한다 . __enter__()는 관리해야 하는 리소스를 반환하고 __exit__()는 아무 것도 반환하지 않고 정리 작업을 수행한다.

컨텍스트 매니저를 사용하면 파이썬 사용자가 종종 자동 "설정" 및 "해제" 메커니즘을 통해 원하는 정확한 방식으로 리소스를 안전하게 획득/할당 및 해제할 수 있다. 파이썬에서 이를 수행하는 방법은 놀라울 정도로 많지만 가장 일반적으로 키워드 " with ." 를 사용하여 수행된다. 문장이 실행될 때 바로 이어지는 표현 부분 은 컨텍스트 매니저 에 의해 평가되어야 한다. 기본적으로 컨텍스트 매니저는 __enter__() 및 __exit__() 두 가지 메서드를 포함하고 지원하는 객체를 생성해야 한다 .


[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue