디비풀이 무엇이고 왜 이것을 써야하는지 알고 싶습니다. 0 2 1,051

by 연오랑 [DB 기타] dbpoo mongodb mysql [2018.10.24 19:16:51]


안녕하세요. 초보개발자입니다.

 

현재 node.js로 백앤드를 구성중인데..

 

dbpool의 존재에 대해 처음 알게되어 고수님들께 문의를 드립니다.

 

저는 지금까지는 mongodb의 mongoose를 이용하여 데이터베이스를 운영해왔었는데

 

작은 서비스를 운영하는데 있어 현재까지는 db connection 때문에 문제가 발생한 일이 없었기에

 

db pool이나 connection관리가 무엇인지 잘 몰랐습니다만..

 

혹시 이러한 것을 사용하지 않았을 때 무슨 일이 발생하는지 알 수 있을까요?

 

그리고 mongodb 의 mongoClient를 사용중인데.. 여기에서 자동으로 풀관리와 커넥션관리를 하고 있는건지 궁금합니다.

 

감사합니다.

by 우리집아찌 [2018.10.25 09:20:12]

CONNECTION POOL 은 DB쪽이 아니라 WAS쪽입니다.

질문할곳을 잘못 찾으신듯합니다.

인터넷에서 찾아봤습니다. 

http://brownbears.tistory.com/289


by 아발란체 [2018.10.25 10:12:00]

접속 사용자가 많아지면 DB 풀이 없을 경우 문제를 바로 확인 할 수 있습니다. 

 

프로그램을 통해 DB 접근시 

1명 접속하면 1개 프로세스를 전용하여 DB쪽 동시 접속자 제약이 있어 (오라클 명령어로 바로 프로세스 점유 확인가능)

만든 시스템 동시 접속자가 빈번하게 발생하는 경우 접속 장애가 발생합니다.

그렇다고 DB커넥션 허용수를 많이 늘리면 동시 접속자는 늘어나지만 프로세스 점유와 해지가 빈번하여 전체적 속도 등 

성능이 매우 저하됩니다. (추가 내용 / 오라클 동접수가 계약 비용에 직접적이라 저렴하게 적은수만 계약 할 때도 중요)

이를 해결하기 위해 어플리케이션 단에서 DB 자원을 공유 할 수 있도록 하는 방식이

Connection Pooling 기법입니다.

이게 오라클 대부분 쓰는 "전용 서버(Dedicated Server) 방식"에 대한 설명으로 커넥션풀을 필수적으로 사용해야 합니다.

사용하지 않고 문제가 없다면 거의 소규모 서비스만 하고 있다고 볼 수 있습니다.

 

그러나

오라클에는 전용 서버 방식 말고 "공유 서버(Chared Server)" 방식도 있습니다.

오라클 내부적으로 커넥션풀이 구현되어 있어 이건 좀 다릅니다.

 

마지막으로 몽고DB도 풀 관리를 합니다.

검색하면 자료가 많은데

몽고DB에서 어플로 제공하는 커넥션 드라이버에 커넥션풀 함수가 포함되어 있는 것으로 확인했습니다.

자바 경우 몽고 JDBC드라이버, C/S 경우 ODBC가 되겠네요.

 

홧팅~

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입