[개발 일지] 게시판(커넥션 풀)

홍범선·2023년 8월 26일
0

MyStory 개발일지

목록 보기
1/27
post-thumbnail

커넥션 풀

사용배경

기존에는 데이터베이스에 연결할 때마다 connection을 새로 생성하고 반환하는 방법을 사용하였다. 하지만 데이터베이스와 매번 연결을 새로 생성하고 종료하는 데에는 많은 오버헤드가 발생한다고 한다.

이것을 해결하기 위해서 커넥션 풀을 사용했다. 커넥션 풀을 사용하면 일정량의 Connection 객체를 미리 생성하여 Pool 이라는 공간(캐시)에 저장해둔다. 그리고 DB연결 요청이 있을때 마다 Pool 에서 Connection 객체를 꺼내서 사용하고 사용이 끝나면 다시 Pool에 반납한다.
Connection pool을 사용함으로써 얻는 이점은 무엇일까?

기존 코드


커넥션 풀을 사용하기 전 코드이다. 보게 되면 api호출 될 때마다 매번 연결을 새로한다. 정말 비효율적이다.

커넥션풀 사용하기

1. database.json


데이터베이스의 관한 정보를 저장하는 파일이다.
connectionLimit : 최대 컨넥션 개수 (default: 10) 이다.

2. db.js


커넥션 풀을 생성하는 코드이다. createPool함수를 사용해서 커넥션풀을 만들 수 있다.

3. 커넥션풀


커넥션풀을 이용하여 데이터베이스에 접근한다. 매번 Connection을 하는 것이 아니라 풀에 있는 conn 객체를 가져오기 때문에 성능적인 측면에서 향샹되었다.
Node.js에서 Mysql Connection Pool 이용하기

profile
알고리즘 정리 블로그입니다.

0개의 댓글