자바 이야기

DB 연동방식

김푸른초푸른 2020. 7. 30. 23:54

자바와 JSP를 배우면서 다양한 DB 연동 방식이 있다는 것을 알게 되었다. 

JDBC / DBCP / JNDI가 대표적으로 존재한다. 

 

1) JDBC (Java Data Base Connectivity)

= 자바 자료 기반 연결하기 

즉, 자바 어플리케이션 안에서 SQL문을 실행시켜서 데이터 베이스와 연동되게 도와준다. 

[특징]

1. 사용하려면 jdbc 전용 api를 사용해야한다. 

2. db 정보를 가져올때마다 열고 닫는 것을 의미한다. 

3. 데이터 베이스 통신에서 무조건 디비객체 생성, 커넥션 연결, 커넥션종료 등 반복하기 때문에 효율이 매우 떨어진다.

 

* 그래서 JDBC 보다 POOL 방식인 DBCP나 JNDI를 사용한다! 

 

2) DBCP (DataBase Connection Pool)

= 커넥션 풀에 미리 생성하여 사용하기 쉽게 해 놓았다. 

[단점]

1. 각 어플리케이션에서 DB POOL을 각각 생성되어 POOL 효율이 떨어진다. 

2. DB POOL은 비싼 자원이다. 

 

3) JNDI (Java Naming & directory interface)

= 분산환경에서 DB 서버 커넥션에 대한 위치를 naming을 통해서 접근 가능하게 만든다. 

즉, WAS 단에서 커넥션 객체들을 미리 NAMING 해두어 사용하는 방식이다! 

 

[특징]

1. DB 설정 정보를 파악하기 쉽다. 

-> WAS 단에서 설정정보를 저장해놓으면, DB가 몇개 붙었는지 설정정보를 파악하기 쉽다.

 

2. DB 커넥션 풀을 효율적으로 사용할 수 있다. 

-> 내부 어플리케이션 소스는 하나 이상일 수 있다. 

WAS 단에서 DB POOL을 하나로 관리한다. 

그래서 JNDI를 공유객체라고도 한다! 

 

 

참고 : https://m.blog.naver.com/PostView.nhn?blogId=tgmuseum&logNo=40151553032&proxyReferer=https:%2F%2Fwww.google.com%2F

참고 : https://eongeuni.tistory.com/43