프로그래밍 이야기/SPRING BOOT 공부

웹애플리케이션컨테이너, 클래스로더의 특징

글쓰는 개발자 김뉴네 2023. 8. 23. 10:14
728x90
반응형

- 웹 애플리케이션컨테이너 : 웹 애플리케이션이 배포되는 공간

- 자바 특징 : 한번 작성하면 플랫폼에 상관없이 쓸 수 있다(Writer onec, run anyWhere)

- 클래스로더 : JVM에서 실행 가능한 상태, JVM이 클래스를 실행하기 위해서는 클래스를 로딩하는 과정이 필요함.

- classNotFoundException : 클래스 로더가 추가된 라이브러리 또는 클래스를 인식하지 못해서 발생하는 오류

- 클래스 패스에 추가되면 클래스 로더는 식별자로 클래스 파일 메타 정보 중 첫번째 싲가 필드를 이용해 클래스 로딩

 

- 클래스 로더의 특징

 1> 구조가 계층적이다

 2> 클래스 로딩을 위임할 수 있다.

 3> 가시적인 규약이 있다. : 클래스를 로딩할때 가능한 범위

 4> 클래스 언로딩 불가

 

- 클래스 로더의 유형

 부트스트랩 클래스로더, 확장 클래스 로더, 시스템 클래스 로더, 사용자 정의 클래스 로더

클래스로더 구조

- 부트스트랩 클래스 로더 : JVM 런타임 실행을 위해 기반이 되는 파일들을 로드한다.

- 개발환경 설정 관련에서 톰캣 설치 위치를 CATALINA_HOME로 지정하는 것은 WAS에서 생성한 클래스 로더를 기준으로 동작하기 위함이다

 

- 배포할때 로컬 실행프로그램은 JAR로 패키징하고 웹은 WAR로 패키징한다.

- 웹 애플리케이션 컨테이너는 WAR 파일의 WEB-INF 폴더 기준으로 클래스 파일을 로드한다.

- WAR  : Web Application Archive / Web Application Resource

- 웹 애플리케이션 클래스 로더는 클래스 로더의 유형 중에서 시스템 클래스 로더 하위에 사용자가 정의한 클래스 로더에 해당한다.

 

728x90
반응형