(책) 자바 웹을 다루는 기술

[4장] 웹 애플리케이션 이해하기 -1

EunaSon 2022. 9. 3. 16:16

4.1 웹 애플리케이션

- 웹 애플리케이션의 정의

 

기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 이 책에서 다루는 서블릿(자바로 만든 CGI 프로그램), JSP, 자바 클래스들을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램

 

웹 컨테이너에서 실행되는 JSP, 서블릿, 자바 클래스들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램을 웹 애플리케이션이라 함,

따라서 정적 웹 애플리케이션의 기능인 html, 자바스크립트, css 등도 웹 애플리케이션에서 그대로 사용할 수 있다.

이런 요소들과 연동하는 기능들도 다루므로 기본적으로 숙지해 두어야 함.

장별로 학습하며 jsp나 서블릿이 이런 정적인 요소들과 어떻게 연동하는지는 따로 설명함.

 

 

4.2 웹 애플리케이션의 기본 구조

실제 톰캣과 같은 웹 컨테이너에서 실행하는 웹 애플리케이션의 기본 디렉터리(폴더) 구조에 대해 살펴보자.

컨테이너에서 실행되는 모든 웹 애플리케이션은 웹 애플리케이션의 이름으로 이루어진 루트 디렉터리와 하위 디렉터리의 구조를 기본 구조로 가짐.(웹 애플리케이션 이름 -- WEB-INF -- classes, lib, web.xml)

 

톰캣 9 버전 부터는 xml을 추가해주어야 함.(103p)

 

- 웹 애플리케이션 구성 요소의 기능

구성요소 기능
webShop 웹 애플리케이션의 루트 디렉터리. 다른 웹 애플리케이션 이름과 중복을 허용하지 않음. 여기에는 JSP HTML 파일이 저장됨.
WEB-INF 웹 애플리케이션에 관한 정보가 저장됨. 이 디렉터리는 외부에서 접근할 수 없음.
classes 웹 애플리케이션이 수행하는 서블릿다른 일반 클래스들이 위치하는 곳.
lib 웹 애플리케이션에서 사용되는 여러 가지 라이브러리 압축 파일(jar 파일)이 저장됨. DB 연동 드라이버나 프레임워크 기능 관련 jar 파일이 여기에 저장됨. lib 디렉터리의 jar는 클래스패스가 자동으로 설정됨.
web.xml 배치 지시자(deployment descriptor)로서 일종의 환경 설정 파일. 웹 애플리케이션에 대한 여러 가지 설정을 할 때 사용됨.

* 웹 애플리케이션 구성요소, 기능 (105p)

bin : 애플리케이션에서 사용되는 각종 실행파일이 저장됨.

conf : 프레임워크에서 사용하는 각종 설정 파일이 저장된 곳.

src : 자바 소스 파일이 저장된 곳.

 

4.3 컨테이너에서 웹 애플리케이션 실행하기

웹 애플리케이션은 자바 애플리케이션과 달리 단독으로 실행할 수 없고 톰캣과 같은 웹 컨테이너에서 실행되는 구조. 따라서 웹 애플리케이션을 톰캣에 우선 등록해야함.

%CATALINA_HOME%webApp 디렉터리에 애플리케이션을 저장하거나

or server.xml에 직접 웹 애플리케이션을 등록

 

- 컨텍스트란?

개발 중에는 개발자가 정한 위치에 웹 애플리케이션을 생성한 후 그 위치를 server.xml에 등록해놓고 톰캣을 실행하는 식으로 개발해야 함. 이때 server.xml에 등록하는 웹 애플리케이션을 컨텍스트라 부름. 즉, 톰캣 입장에서 인식하는 한 개의 웹 애플리케이션이라 보면 됨.

 

- server.xml에 웹 애플리케이션 등록

server.xml은 톰캣 설치 루트 디렉터리 아래, conf 디렉터리 안에 있음.

<Host> 태그 안에 <Context> 태그를 이용해서 등록함.

 

- <Context> 태그 구성 요소

path : 웹 애플리케이션의 컨텍스트 이름. 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름.

docBase : 실제 웹 애플리케이션이 위치한 경로. WEB-INF 상위 폴더까지의 경로를 나타냄.

reloadable : 실행 중 소스 코드가 수정될 경우 바로 갱신할지를 설정함.