JSP - Class.forName()에 관해...

Class.forName()


동적으로 메모리에 클래스를 로드하여 정보를 읽어온다.
이때 '동적' 이 의미하는것은 클래스가 컴파일될때가 아닌 run-time(실행시간)동안을 말하는것이다.

jsp에서의 class.forName()은 jdbc를 이용해 동적으로 DriverManager에 원하는 데이터베이스의 드라이버를
바인딩 시켜주고자 할때 사용한다. 옛날 jdbc API가 존재하지 않을때는 데이터베이스 드라이버에 접근하기
위해 c언어로 직접 네이티브 메서드를 만들어 연결해주는 방법밖에 없었다. 그러나, jdbc 가 등장함에 따라
Class.forName() 메서드로 동적으로 각 데이터베이스의 드라이버에 접근이 가능해지면서 코딩 시간뿐만
아니라 드라이버에 접속하는 시간까지 현저히 줄어들 수 있게 되었다.


-Class.forName()과 import의 차이점-

import는 클래스의 정보를 직접 클래스에 접근해 가져오는 반면
Class.forName()은 동적으로 현재 메모리 상의
클래스 또는 객체에 접근해 정보를 해석해서 가져오는 방식이다.
또한 둘의 실행시점도 컴파일 중, 런타임 중으로 차이가 있다.

댓글