[JSP] DBCP & JNDI

김윤섭·2023년 9월 7일
0

JSP

목록 보기
13/18
post-thumbnail

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에서 한 번 설정하면 여러개의 웹 어플리케이션에 올려서 사용 가능
    ③ 대리 가능
  • 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일 가능
profile
안녕하세요

0개의 댓글