• poolclass(type): 어떤 종류의 커넥션 풀을 사용할지 지정하는 인자입니다. 기본적으로 SQLAlchemy는 적절한 Pool 클래스를 자동 선택하여 사용하지만, 특정한 목적이나 환경에 따라 다른 Pool 클래스를 사용하고 싶다면 poolclass를 통해 명시적으로 설정합니다.
▪ QueuePool(기본값): 정해진 개수의 연결을 풀 내에서 관리하며, 필요하다면 대기열(queue)에 대기시킵니다. 대부분의 상황에서 적합합니다.
▪ NullPool: 풀을 유지하지 않고, 매 실행할 때마다 새로운 연결을 생성하고 사용 종료 후 닫습니다. 빠르게 연결/해제하는 환경 혹은 커넥션 풀이 불필요한 단발성 스크립트에 유용합니다. 대개 SQLite 3를 메모리 모드로 구동하여 사용하는 테스팅 환경에 유용합니다.
▪ SingletonThreadPool: 스레드 하나에서만 동작하는 간단한 풀을 제공하며, NullPool과 마찬가지로 주로 SQLite 메모리 데이터베이스 같은 특수 환경에서 사용됩니다.
▪ AsyncAdaptedQueuePool: 비동기 엔진(create_async_engine)을 사용할 때 기본적으로 적용되는 Pool 클래스 역할을 합니다. 기존 동기식으로 동작하는 QueuePool을 확장한 것으로, 동시성(cuncurrent)과 확장성(scalbility) 등을 조정할 수 있습니다.