[파이썬] with 문을 사용하여 파일, 네트워크 연결 및 자원 관리를 간단하게 처리하는 방법

with 문은 파이썬에서 파일, 네트워크 연결 및 다른 자원 관리를 간단하게 처리하는 데 사용됩니다. with 문을 사용하면 자원을 열고 사용한 후에 자동으로 닫아주는 등의 작업을 처리할 수 있습니다. 이를 “컨텍스트 관리자”라고도 부릅니다. 아래 예제를 통해 with 문을 사용한 자원 관리를 살펴보겠습니다:

1. 파일 관리:

with 문을 사용하여 파일을 열고 사용한 후 자동으로 닫을 수 있습니다.

with open("example.txt", "r") as file:
    contents = file.read()
    print(contents)
# 파일이 자동으로 닫힘

2. 네트워크 연결 관리:

네트워크 연결도 with 문을 사용하여 간단하게 관리할 수 있습니다.

import socket

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(("www.google.com", 80))
    print("Connected to Google")
# 소켓이 자동으로 닫힘

3. 사용자 정의 컨텍스트 관리자:

자원 관리를 위해 사용자 정의 컨텍스트 관리자를 만들 수도 있습니다.

class CustomContext:
    def __enter__(self):
        print("Entering the context")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting the context")

with CustomContext() as context:
    print("Inside the context")
# 컨텍스트가 자동으로 종료됨

with 문은 예외가 발생하더라도 자원을 안전하게 해제해주므로 코드 안정성과 가독성을 향상시키는 데 도움이 됩니다.