커넥션 풀 이해하기

이율곡·2023년 2월 4일
0

Node js

목록 보기
14/26
post-thumbnail

서두

지금 프로젝트를 진행하면서 MySQL의 커넥션을 너무 과하게 사용하고 있다는 것을 안다. 그래서 이 부분을 어떻게 해결할까 고민하다가 커넥션 풀이라는 개념을 찾아서 공부한 내용을 정리하려 한다.


네트워크 통신방법 (TCP)

네트워크 통신 방법에는 TCP와 UDP가 있다. 그 중 TCP 방법은 한번의 요청에 한 번의 응답의 형태로 진행된다.

그래서 클라이언트(사용자)가 DB에 요청을 하면 2단계가 진행된다.

1단계: TCP 통신 요청
2단계: TCP 통신에 대한 응답

이 두 가지를 합쳐서 핸드쉐이크라 하며, 웹서버와 DB연결 확인 과정이라 할 수 있다. 최초 1회 성공하면 종료까지 유지가 된다.

2단계가 끝나면 Connection이 생성되고 연결된 상태가 된다. 이때 서로 데이터를 주고 받을 수 있게 된다. 그리고 서버도 클라이언트에 요청할 수 있는데 이를 '소켓 통신'이라 한다.

HTTP 통신: 클라이언트가 요청, 서버가 응답 / 단방향 통신 성격
소켓 통신: 양방향 연결이 이루어지는 통신 (ex. 채팅)

그리고 끝내려 하면 커넥션이 종료되고 그 후 소켓 통신이 종료된다.


커넥션 풀

미리 커넥션을 맺어놓고 그것을 가져다 쓰는 방식이다. 커넥션을 담아두는 공간(pool)이라 생각하면 된다(DB서버와 소켓이 열려 있는 상태).

그래서 클라이언트는 DB서버와 통신하고 싶을 때 커넥션 풀에서 커넥션을 을려서 사용한다(마치면 반환).

정리하기

이번에는 커넥션 풀을 사용하기 위한 사전공부와 커넥션 풀을 알아봤다. 리펙토링은 아직 할 수 없지만 1차적으로 프로젝트를 마치면 바로 커넥션 풀을 사용하고 싶다. 이렇게 하나씩 배워가면서 Node js 개발자로 단계별로 거듭나고 싶다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글