Framework :: JNDI vs JDBC(DBCP)
1. JNDI
Java naming and directory interface
디렉토리 서비스에서 제공하는 데이터나 객체를 발견하고 참고(look)하기 위한 자바 API.
DB Pool을 미리 Naming 시켜놓는 방법. 외부에 있는 객체를 가져오기 위한 기술.
클래스에 이름을 부여하고 원격으로 접속하여 클래스 사용시 클래스의 다른 이름 역할을 함.
Tomcat과 같은 WAS를 보면 특정 폴더에 필요한 라이브러리가 있는데, 그것을 사용하기 위해 JNDI를 사용하여 가져온다.
(WAS가 부팅시 JNDI 객체를 등록함)
* JNDI를 사용하던 하지 않던, JDBC는 무조건 필요하다
* Naming Service 종류
- LDAP (Lightweight Directory Access Protocol) : 네트워크 디렉토리 서비스 표준인 x.500을 위한 간단한 형태 제공
- DNS (Domain Name System) : 인터넷 네이밍 시스템. 도메인을 IP 주소로 변환함. 대규모 분산 DB 서버 구조
- NIS (Network Information System) : SUN에서 개발된 네트워크 네이밍 서비스
- CosNaming (Common Object Service) : 코바 응용프로그램을 위한 네이밍 서비스 지원
- JNDI : SUN에서 개발된 자바 기반 객체 등록 서비스. JNDI SPI (Service Provider Interface) 제공
JNDI 서버의 실제 구현 기능은 각 Application Server의 vender가 관리함
2. JDBC (DBCP)
Java database connectivity (Database connection pool)
자바 데이터베이스 연결. 데이터베이스와 연결하기 위한 자바 인터페이스.
DB와 커넥션을 맺고 있는 객체를 관리하는 커넥션풀.
* DBCP : JDBC를 이용하여 생성한 커넥션의 효율성을 높이기 위해 커넥션 객체를 관리하는 것
ㄱ. 프로세스
DriverManager 통한 DB Connection 객체 생성
> Connection 객체에서 statement 객체 생성, 쿼리 실행
> ResultSet
> Connection close