데이터 베이스의 중복을 최소화 시켜줄 수 있는 DAO/DTO/DBCP에 대해 알아보자.
◆ DAO (Data Access Object)
데이터 베이스에 접속해서 데이터 추가/삭제/수정 등의 작업을 하는 클래스.
즉, DB작업을 코드의 모듈화를 통해 사용(중복방지)
데이터의 작업은 메서드 단위로 실행하여 연결과 해제 또한 메서드 내부에서 한다.
◆ DTO (Data Transfer Object)
DAO클래스를 이용하여 데이터를 일반 변수에 할당하는 것이 아닌 클래스화 하여 사용하는 객체.
( DTO를 사용하지 않고, Map객체를 사용해도 무방하다 )
▶ DAO/DTO 사용
위에서 만든 DAO와 DTO클래스를 활용하여 데이터베이스 작업을 해보자.
◆ 커텍션풀 (Data Base Connection Pool)
클라이언트의 다수 요청 발생 시 부하를 방지하기 위해 Connection객체를 미리 설정해 두고, 뽑아오는 방식
1. Server디렉터리에 context.xml에 아래와 같이 선언해 둔다.
프로젝트가 아닌 Server디렉터리에 미리 선언해 두는 것이다.
2. 커넥션 객체 불러오기
2-1 new InitialContext()를 통해 Context객체를 생성
2-2 Context객체의 lookup(“java:comp/env/jdbc/Oracle11g”)를 DataSource객체로 캐스팅하여 반환
2-3 DataSource객체의 getConnection() 메서드를 통해 커넥션 객체를 뽑아낼 수 있다.
▶ 위에서 예시로 든 DAO객체를 DBCP를 이용한 방법으로 수정해 보자.