본문 바로가기

Information Technology/Programming19

ClassLoader 3 : Classloader & JAVA Packages 1. Classloader와 JAVA 패키지 JAVA의 압축 Package들은 Application이 압축된 형태 그대로 사용할 수 있다. 어떤 Application이 사용하느냐에 따라 확장자가 달라진다. - JAR (Java ARchive) - 기본적으로 JAVA Application이 사용할 수 있도록 되어 있다. path 등의 방식을 이용하여 경로를 유지하기 때문에 jar 파일의 사용 및 배포는 경로설정의 문제에서 벗어날 수 있다. Class Loader 관점에서는 EJB 파일을 배치하게 되면, JAR 파일 당 각각의 Class Loader를 생성하게 된다. 그래서, 다른 JAR파일에 있는 Class들은 참조를 할 수가 없고, 오로지 Parent Class Loader인 JVM Level의 CLAS.. 2012. 11. 28.
ClassLoader 2 : Java Application Server ClassLoader 1. Java Application Server ClassLoader 자바 취약점 분석을 위해서는 Web Application Server의 위계구조까지 확장해서 알아둘 필요성이 있는 것 같다. Web Application Server의 위계구조를 그려보면 다음과 같다. - Bootstrap ClassLoader - (=Primordial ClassLoader, 부트스트랩 클래스로더) 모든 ClassLoad의 부모 ClassLoader이다. JVM이 실행될 때 맨 처음 실행되는 Class Loader로, 이 ClassLoader를 사용해서 JAVA실행에 필요한 기본적인 JDK 클래스들(/jre/lib/jt.jar, i18n.jar와 같은 기본적인 Archieve, -Xbootclasspath)를 로드하게.. 2012. 11. 22.
ClassLoader 1 : ClassLoader Delegation Model 1. ClassLoader의 기술적 특징 Class Loader란 자바의 장점중 하나로, Runtime시 동적으로 Class를 로딩할 수 있게 해주는 기술이다. 이는 모든 Class는 참조 되는 순간 동적으로 Load 및 Link가 이루어진다는 의미이다. 그래서 Bytecode를 Filesystem, Jar Archieve 또는, network socket(Applet)를 동적으로 로딩 할 수 있도록 지원한다. 이러한 모든 Performance는 Dynamic Linking이라고 한다. 1.1. Hierarchical "계층적 구조(위계 구조 or 위임 구조)"라는 의미이다. Class loader는 계층적 구조를 가지도록 생성이 가능하다. 이는 상위(부모, Parent) 클래스로더에서 자식 클래스로더를.. 2012. 11. 20.