lazy var session: URLSession = { [weak self]
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config, delegate: self, delegateQueue: OperationQueue.main)

return session
}()

session 을 lazy로 생성하는 부분에서 self를 weak로 작성하신 이유가 궁금합니다.
리턴 타입이 클로저가 아니고 즉시 실행하고 결과를 리턴해주면 메모리 누수가 발생하지 않는다고 알고 있는데 제가 모르고 있는 부분이 있는 것 같아 질문드립니다.