with와 @contextlib.contextmanager
파이썬으로 작성된 소켓연결 코드를 보는 와중에 소켓연결할 때, with 접두사로 활용하는 모습들이 보였다. 혹은, @contextlib.contextmanager 라는 데코레이터를 붙힌 후, 해당 fn 를 with문으로 활용하는 문법들을 보면서, 대체 with를 왜 쓰는것이고, 무엇을 하는 역활인지 궁금했고 찾아보았다. with 문은 Python의 컨텍스트 관리 프로토콜을 사용하는 문법이며, 주로 리소스 관리에 사용되며, 이를 통해 파일, 네트워크 연결, 데이터베이스 연결 등의 리소스를 안전하게 사용하고 정리할 수 있다고 한다. with 문의 3단계로 걸쳐 실행된다 진입: with 블록에 진입할 때, 컨텍스트 관리자의 enter 메서드가 호출됩니다. 이 메서드는 필요한 리소스를 할당하거나 초기화할 수 있..