: 데이터베이스에 접근하여 SQL문을 실행하기 위한 자바 라이브러리
>> 자바프로그래밍의 일반적인 데이터 엑세스 제공
>> 자바프로그래밍의 일반적인 데이터 엑세스 제공
>> 데이터베이스 풀 방식을 사용하지 않고 DB에서 정보를 가져올 때마다 매번 디비 연결을 열고 닫음
>> 효율이 떨어짐
>> 그렇기 때문에 보통 pool 방식을 사용함. (ex DBCP)
==========================================================
DBCP(Database Connection Pool)
: 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(Pool)에서 가져다 쓰고 반환하는 기법
>> DB커넥션을 어플리케이션 소스 내에서 제어하면서 DB 풀을 가짐
: 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(Pool)에서 가져다 쓰고 반환하는 기법
>> DB커넥션을 어플리케이션 소스 내에서 제어하면서 DB 풀을 가짐
>> 사용자가 요청할 경우 드라이버를 로드하고, 커넥션 객체를 생성해 연결하고 종료하는 비효율적인 작업을 하지 않아도 됨
>> 데이터베이스의 부하를 줄이고 자원을 효율적으로 관리
>> 데이터베이스의 부하를 줄이고 자원을 효율적으로 관리
==========================================================
JNDI(Java Naming and Directory Interface)
: 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바API
(외부에 있는 객체를 가져오기 위한 기술)
>> DB커넥션을 WAS단(외부)에서 제어하면서 서버에서 하나의 커넥션 풀을 가짐
: 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바API
(외부에 있는 객체를 가져오기 위한 기술)
>> DB커넥션을 WAS단(외부)에서 제어하면서 서버에서 하나의 커넥션 풀을 가짐
>> DBCP처럼 어플리케이션 소스단에 설정하느 방식이 아닌 WAS단에 데이터베이스 커넥션 객체를 미리 네이밍함
>> 소스단에 정보를 설정해놓으면 소스 개발자 외에는 정보를 찾기가 힘들다. 하지만 JNDI를 사용하면 WAS단에 저장하기 때문에 파악하기 쉬움..????
>> 서버단에서 어플리케이션 컨테이너는 하나이더라도 내부 어플리케이션 소스는 홈페이지 하나 이상이 될 수있는데(디렉토리 서비스, 서브도메인을 사용하여 서비스하는 경우) 이 경우, DBCP를 사용하면 각 어플리케이션마다 DB Pool이 각자 생성되어 풀이 많아져 효율이 떨어질 수 있음.
JNDI는 WAS단에서 DB Pool를 하나로 관리하기 때문에 효율이 좋아진다고 함..
(WAS에 스태틱 객체를 생성 후에 쉽게 가져다 쓸 수 있기 때문??)
참고
http://eongeuni.tistory.com/43
http://all-record.tistory.com/104
todo
http://nastyle.tistory.com/15
https://d2.naver.com/helloworld/5102792
http://all-record.tistory.com/104
todo
http://nastyle.tistory.com/15
https://d2.naver.com/helloworld/5102792