1.1 인프라와 스프링 프레임워크의 변화
1.1.1 아키텍처의 변화
- 1단계) 서버/클라이언트 개념의 등장 : GUI개발의 본격화, 델파이를 이용한 업무 프로그램과 ActiveX를 이용한 웹 애플리케이션
- 2단계) 서버에서 파일로 데이터를 저장하거나 소켓 통신을 통해 클라이언트와 통신
- 3단계) 전자상거래, 웹의 인기, 상용 관계형 DB의 흥행
3tier : 서버(JSP,PHP,ASP) - 클라이언트 - 데이터베이스
- 4단계) 클라우드 서비스 :
장점 : 인스턴스 형태로 자유롭게 확장 가능
단점 : 클라우드 업체의 기술에 종속, 정해진 요금제 사용
1.1.2 스프링 프레임워크의 변화
초기 : 오라클, IBM 등 업체가 제공하는 솔루션을 사용
-> 웹로직, 웹스피어 같은 서버 사용 + EJB(Enterprise JavaBean)을 이용하여 개발 + 톰캣의 성능 안정
이후 : 많은 스타트업의 클라우드 사용 빈도 증가
-> PasS로 서버를 인스턴스로 사용함에 따라 JDK, 톰캣을 설치, XML 설정 단계의 간소화 필요
-> 로드 존슨이 만든 '스프링 프레임워크'
-> 루비온레일스, 장고로 빠르게 개발하지만 스프링은 빠르게 개발할 수 없다.
-> 무거워진 스프링을 대체하기 위해 스프링 부트의 등장
1.2 웹 애플리케이션 컨테이너
- 웹 서버 : HTML과 같은 정적 파일들을 전달해 주는 서버
- 웹 애플리케이션 컨테이너(Web Application Container) : 웹 애플리케이션이 배포되는 공간 + 동적인 페이지를 생성하는 웹 서버
= 웹 애플리케이션 서버(WAS, Web Application Server)
1.2.1 자바 개발을 위해 꼭 필요한 클래스 로더
WAS가 웹 애플리케이션을 인식하고 동작시키는지 알기 위한 클래스 로더
- 클래스 로더
- Write once, run anywhere
- 자바 코드를 작성한 후 컴파일하면 JVM에서 실행 가능한 상태가 된다.
- 이 클래스를 JVM이 실행하기 위해서는 클래스로더가 클래스를 로딩해야한다.
- 클래스 로더의 특징
- 구조가 계층적이다. 상위 클래스 로더가 하위 클래스 로더를 갖는 방식이다. 최상위 클래스 로더는 부트스트랩 클래스 로더.
- 클래스 로딩을 위임할 수 있다.
- 가시적인 규약이 있다.
- 클래스 언로딩 불가능이다. 가비지 컬렉터가 동작하거나, WAS가 재시작할때 초기화된다.
- 클래스 로더의 유형
- WAR파일의 특성

'프로그래밍 > 스프링' 카테고리의 다른 글
[스프링 인 액션] 0. 이 책을 다시 읽는 이유 (0) | 2024.02.27 |
---|---|
[스프링 마이크로서비스 코딩 공작소] 2. 스프링 부트로 마이크로서비스 구축 (3) | 2023.08.21 |
[스프링 마이크로서비스 코딩 공작소] 1. 스프링, 클라우드와 만나다 (3) | 2023.08.21 |
[스프링 마이크로서비스 코딩 공작소] 0. 개요 (0) | 2023.08.20 |
2. 서블릿 - 1)서블릿 생명주기, 초기화 (0) | 2018.11.18 |