티스토리 뷰

이 전 글에서 설명한 사용자 정의 (User-Defined) ClassLoader에 속한 3가지의 웹 로직(WebLoagic) ClassLoader를 알아보려한다.

 

· EJB-JAR ClassLoader

EJB를 JAR 형식으로 배포하게 되면 1개의 JAR마다 EJB-JAR ClassLoader가 생성된다.

즉 JAR을 5개 배포한다면 EJB-JAR ClassLoader도 5개가 생성되는 것이다.

 

EJB-JAR ClassLoader는 부모 ClassLoader로 System ClassLoader을 가지고 있다.

여기서도 부모 ClassLoader의 Class 참조 여부에 대해 JAVA의 상속 관계와 비슷한 형태를 보인다.

? EJB (Enterprise JavaBeans) ?

Enterprise 개발을 단순화하기 위해 발표한 스펙이며 비즈니스 관련 객체가 많은 애플리케이션에서 

"비즈니스 객체들을 관리하는 컨테이너를 만들어 필요할 때 컨테이너로부터 객체를 받는 식으로 관리하면 좋겠다"는

생각에서부터 탄생하게 되었다.

 

· WAR ClassLoader

JSP, 서블릿(Servlet)을 로딩하는 ClassLoader이며, 기본적인 ClassLoader의 특징을 가지고 있지만

일반적인 상위 ClassLoader보다 WEB-INF/classes와 WEB-INF/lib 디렉토리를 설정을 통해 우선 로딩이 가능하다.

? JAR와 WAR ?

Java의 Jar 툴을 이용하여 생성된 압축 파일

애플리케이션을 쉽게 배포하고, 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징해 주는 것이 주 역활

자세한 것은 아래 링크에서 볼 수 있다.

https://resian-programming.tistory.com/16

 

? 설정 방법 ?

웹 콘솔 -> PreferWeblnfClasses = true로 설정

 

· EAR ClassLoader

EAR을 로딩하는 ClassLoader이다.

내부적으로 EJB를 로딩하는 EJB-JAR ClassLoader을 부모, 서블릿/JSP를 로딩하는 WAR ClassLoader가 자식 관계로 생성된다.

즉, 서블릿/JSP에서 EJB를 참조하여 호출이 가능하다는 의미이다.

 

- 회고 -

이것으로 ClassLoader의 정리가 끝났다.

뭔가 시원하기도 하고, 시야가 넓어진 느낌이 들기도 한다.

항상 직접 구현하던 API 코드 기준에서만 객체 지향, OOP 등을 적용해서 봤고, 이런 CS 지식은 별개의 것으로 이해했던 것이

조금이긴 하지만 어떤 식으로 돌아가고, 어떻게 연관되어있는지 볼 수 있었던 좋은 기회였다.

 

JVM까지 정리가 다 끝난 뒤 코드를 구현하면 어떤 느낌이 들지 기대된다.

 

 

- 참고 블로그 -

https://blueyikim.tistory.com/37

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함