🌿 중급 DB
데이터베이스 커넥션 풀이 뭔가요?
쉽게 이해하기
식당에서 손님이 올 때마다 테이블을 새로 만들었다가 가면 부수는 게 아니라, 미리 테이블을 여러 개 준비해두고 돌려가며 쓰는 것처럼, 커넥션 풀은 DB 연결을 미리 만들어두고 필요할 때마다 빌려 쓰는 방식이에요.
핵심 정리
데이터베이스 연결을 미리 만들어두고 재사용해서 성능을 높이는 기술이에요.
자세히 알아보기
데이터베이스에 연결하려면 네트워크 통신, 인증, 세션 생성 등 여러 단계를 거쳐야 해서 시간이 걸려요. 매번 요청마다 새로 연결하고 닫으면 비효율적이죠. 커넥션 풀은 이런 연결을 미리 여러 개 만들어두고, 필요할 때 빌려 쓰고 반납하는 방식입니다.
예를 들어, Node.js에서 PostgreSQL을 쓸 때 pg 라이브러리의 Pool을 사용하면 자동으로 커넥션 풀이 관리돼요. 사용자가 요청하면 풀에서 연결 하나를 가져오고, 작업이 끝나면 다시 풀에 반납합니다. 연결 수는 보통 10~50개 정도로 설정해요.
커넥션 풀을 쓰면 응답 속도가 빨라지고, DB 서버의 부하도 줄어듭니다. 만약 풀이 없다면 동시 접속자가 많을 때 DB 연결이 계속 생성되고 닫히면서 서버가 느려지거나 다운될 수 있어요.
실무에서는 커넥션 풀 크기를 너무 크게 설정하면 DB 서버의 메모리가 부족해지고, 너무 작으면 대기 시간이 길어져서 적절한 크기를 찾는 게 중요합니다.