ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WAS ?? Class Loader?
    개발 2020. 10. 23. 01:35

    웹 애플리케이션 컨테이너는 웹 애플리케이션이 배포되는 공간을 뜻한다.

    HTML 같은 정적 파일들을 전달해 주는 역할을 하는 서버를 웹서버 라 칭하고

    PHP, JSP, ASP 같은 언어를 사용해 동적인 페이지들을 생성 가능한 서버를 웹 애플리케이션 서버(WAS)라 한다. 

     

    Class Loader

    JAVA는 컴파일 하면 class 파일이 생성된다. 이 class 파일은 JVM에서 실행 가능한 상태가 된다.

    JVM이 class를 실행하기 위해서는 클래스를 로딩하는 과정이 필요하며 이를 위한 것이 Class Loader이다.

     

    Class Loader의 4가지 특징

    • 계층적 구조를 가지고 있다. 상위 클래스 로더에서 하위 클래스 로더를 갖는 방식으로, 최상위 클래스 로더는 부트스트랩 클래스 로더이다.
    • 두 번째, 클래스 로딩을 위임할 수 있다.
    • 세 번째, 클래스 로더는 가시적인 규약이 존재한다. 클래스를 로딩할 때 가능한 범위가 존재한다는 말이다. 자식 클래스 로더는 로딩 요청 위임을 통해 부모 클래스 로더가 로딩한 클래스를 찾을 수 있지만, 부모 클래스 로더는 자식 클래스 로더가 로딩한 클래스를 알 수 없다.
    • 마지막, 클래스 언로딩 불가능이다. 클래스 로더로 로딩한 클래스들은 언로딩 할 수 없다. 가비지 컬렉션이 동작하거나 WAS가 재시작할 때 초기화 된다.

    Class Loader 4가지 유형

    부트스트랩 클래스 로더 (Bootstrap Class Loader)

    • JVM 런타임 실행을 위해 기반이 되는 파일들을 로드하는 클래스 로더. rt.jar 파일과 연관이 있다.

     

    확장 클래스 로더 (Extension Class Loader)

    • 부트스트랩 로더가 로딩이 끝나면 최상위 객체인 Object를 포함한 자바 API를 로드하는 로더.

     

    시스템 클래스 로더 (System Class Loader)

    • 확장 클래스 로더가 로딩이 끝나면 Class Path에 포함된 클래스들을 로딩하는 로더.

     

    사용자 정의 클래스 로더 (user-defined class Loader)

    • 독립적인 영역이 필요한 WAS의 경우 시스템 클래스 로더 하위에 만들어서 사용하는 로더이다.

     

     

    '개발' 카테고리의 다른 글

    Spring 기초  (0) 2020.11.28
    Servlet?  (0) 2020.10.23
    AWS EC2 환경에 nginx를 설치해 배포하는 방법.  (0) 2020.10.21
    [Linux] Ununtu에서 MariaDB 설치 하기  (0) 2020.10.21
    Pandas  (0) 2020.09.02
Designed by Tistory.