728x90
프로젝트 빌드
- 프로젝트 폴더로 이동
- "./gradlew build" 명령어를 입력하여 빌드
- build/libs/server-0.0.1-SNAPSHOT.war 파일 생성된 것을 확인
war 파일 구조
"jar -xvf server-0.0.1-SNAPSHOT.war" 명령어 실행
- WEB-INF
- classes
- hello/servlet/TestServlet.class
- lib
- jakarta.servlet-api-6.0.0.jar
- classes
- index.hml
JAR, WAR 간단 소개
JAR 소개
- 자바는 여러 클래스와 리소스를 묶어서 JAR (Java Archive)라고 하는 압축 파일을 만들 수 있다. 이 파일은 JVM 위에서 직접 실행되거나 또는 다른 곳에서 사용하는 라이브러리로 제공된다.
- 직접 실행하는 경우 main() 메서드가 필요하고, MANIFEST.MF 파일에 실행할 메인 메서드가 있는 클래스를 지정해두어야 한다.
- 실행 예) java -jar abc.jar
- Jar는 쉽게 이야기해서 클래스와 관련 리소스를 압축한 단순한 파일이다. 필요한 경우 이 파일을 직접 실행할 수도 있고, 다른 곳에서 라이브러리로 사용할 수도 있다.
WAR 소개
- WAR(Web Application Archive)라는 이름에서 알 수 있듯 WAR 파일은 웹 애플리케이션 서버(WAS) 에 배포할 때 사용하는 파일이다.
- JAR 파일이 JVM 위에서 실행된다면, WAR는 웹 애플리케이션 서버 위에서 실행된다.
- 웹 애플리케이션 서버 위에서 실행되고, HTML 같은 정적 리소스와 클래스 파일을 모두 함께 포함하기 때문에 JAR와 비교해서 구조가 더 복잡하다. 그리고 WAR 구조를 지켜야 한다.
- WEB-INF
- classes : 실행 클래스 모음
- lib : 라이브러리 모음
- web.xml : 웹 서버 배치 설정 파일(생략 가능)
- index.html : 정적 리소스
- WEB-INF
- WEB-INF 폴더 하위는 자바 클래스와 라이브러리, 그리고 설정 정보가 들어가는 곳이다
- WEB-INF 를 제외한 나머지 영역은 HTML, CSS 같은 정적 리소스가 사용되는 영역이다.
war 배포
- 톰켓 폴더 하위의 /webapps 파일로 이동한다(파일 존재하면 모두 삭제)
- 빌드된 .war 파일을 복사해서 톰켓폴더/webapps 에 붙여 넣고 이름의 "ROOT.war"로 변경한다.
- 톰켓서버/bin 으로 이동하여 "./startup.sh" 명령어로 톰켓을 실행한다.
- 종료는 "./shutdown.sh" 명령어로 종료하면 된다.
728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch01. 웹 서버와 서블릿 컨테이너 - 스프링 MVC 서블릿 컨테이너 초기화 지원 (0) | 2023.03.03 |
|---|---|
| Ch01. 웹 서버와 서블릿 컨테이너 - 스프링 컨테이너 등록 (0) | 2023.03.03 |
| Ch01. 웹 서버와 서블릿 컨테이너 - 서블릿 컨테이너 초기화 (0) | 2023.03.03 |
| Ch01. 웹 서버와 서블릿 컨테이너 - 톰켓 설정 (0) | 2023.03.02 |
| Ch01. 웹 서버와 서블릿 컨테이너 - 웹 서버와 스프링 부트 소개 & 톰켓 설치 & 프로젝트 설정 (0) | 2023.03.01 |