- 웹 애플리케이션컨테이너 : 웹 애플리케이션이 배포되는 공간
- 자바 특징 : 한번 작성하면 플랫폼에 상관없이 쓸 수 있다(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
- 웹 애플리케이션 클래스 로더는 클래스 로더의 유형 중에서 시스템 클래스 로더 하위에 사용자가 정의한 클래스 로더에 해당한다.
'프로그래밍 이야기 > SPRING BOOT 공부' 카테고리의 다른 글
@RestController / @EnableAsync 어노테이션 (0) | 2023.09.08 |
---|---|
@RequiredArgsConstructor 어노테이션 (0) | 2023.09.07 |
스프링 프레임 워크의 변화 (0) | 2023.08.13 |
인프라 변화에 따른 기술의 변화 (0) | 2023.08.12 |
AOP의 개념 (0) | 2023.08.10 |