본문 바로가기
IT지식/개발

라라벨은 언제 DB 컨넥션을 끊나요? Laravel DB disconnect

by 7$ 2023. 3. 9.

라라벨10으로 개발 중 연결하였던 DB 컨넥션을 수동으로 닫아야할 필요가 있는지 궁금해졌습니다.

 

검색해보니 과거 라라벨 4 또는 5 버전의 공식 문서에는 한 줄 설명이 나와있었습니다.

PDO인스턴스의 max_connections한계를 넘어서서 데이터베이스 연결을 끊어야하는경우 disconnect메소드를 사용하면 됩니다:

DB::disconnect('foo');

 

반면, 라라벨10 공식 문서에는 disconnect에 대한 설명이 따로 없는 것 같습니다. 

그렇다면 굳이 안 닫아도 되는 걸까요?

 

라라벨은 기본적으로 DB 커넥션을 사용한 후 해당 커넥션을 자동으로 닫지 않습니다.

대신, 각각의 HTTP 요청 끝에, 라라벨은 모든 오픈된 DB 커넥션을 자동으로 닫습니다.

이러한 방식으로 라라벨은 DB 커넥션을 유지하면서도, 메모리 누수나 다른 이슈들로부터 애플리케이션을 보호합니다.

물론, 만약 DB 연결을 수동으로 닫으려면, DB::disconnect 메서드를 사용하여 연결을 종료할 수 있습니다.