1. DBCP
(1) DBCP란?
- DataBase Connection Pool
- 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(pool)에서 가져다쓰고 반환하는 기법
(2) 커넥션 풀 장점
- 커넥션 풀은 이용하면 커넥션을 미리 만들어두고 사용
- 사용자가 요청할 경우 드라이버를 로드하고, 커넥션 객체를 생성해 연결하고 종료하는 비효율적인 작업 필요없음
- 즉 데이터베이스이 부하를 줄일 수 있고 자원을 효율적으로 관리가능
(3) dbcp 사용하기
1) Servers > **-config 폴더 > context.xml 파일
<Resource
name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:xe"
username="jsp"
password="jsp"
maxActive="20"
maxIdle="20"
maxWait="-1"
/>
</Context>
2) 다이나믹 프로젝트 폴더 > src > WEB-INF > web.xml 파일
3) dbcp 사용하기
👍 결과
2. JNDI
(1) JNDI란?
- Java Naming and Directory Interface
자바 API
- 디렉토리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 API
- 외부(WAS)에 있는 객체를 가져오기 위한 기술
- DB Pool을 미리 Naming시켜두는 방법 (DB 연결 방법중 하나)
- 우리가 저장해 놓은 WAS의 데이터베이스 정보에 JNDI를 설정 -> 웹 어플리케이션은 JNDI만 호출
(2) 사용하는 이유
① WAS에서 설정되어 있는 것을 선호
- 개발을 한 사람과 실제 서비스를 운영하는 담당자는 다른 경우가 많기 때문에, 소스 레벨에서 설정되어 있는 것보다 WAS에서 설정되어 있는 것을 선호
② 자원낭비 줄이기 가능
- WAS에서 한 번 설정하면 여러개의 웹 어플리케이션에 올려서 사용 가능
③ 대리 가능
- 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일 가능