프로그래밍/JAVA WEB

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

삐제제 2021. 1. 1. 02:26

웹 애플리케이션이란?

 

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

 

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

 

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

 

 

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

 

컨테이너에서 실행되는 모든 웹 애플리케이션은 웹 애플리케이션의 이름으로 이루어진 루트 디렉터리와 하위 디렉터리 구조를 기본 구조로 가진다.

 

웹 애플리케이션 이름
        │
        └─────── WEB-INF
                   │
                   ├─────── classes
                   │
                   ├─────── lib 
                   │
                   └─────── web.xml

 

이러한 구조를 가지지 않고 컨테이너에서 웹 애플리케이션을 실행하면 오류가 발생한다.

 

classes 와 lib 는 폴더이고, web.xml 은 보는것과같이 xml 파일이다.

 

그리고 세 가지 요소를 WEB-INF 디렉토리에 함께 넣어둬야한다.

 

만약 기본 구조 외에 다른 기능이 추가되면 디렉터리(폴더) 를 추가해서 사용하면 된다!

 

현재는 이클립스 같은 통합 개발 환경(IDE) 에서 웹 애플리케이션을 개발하지만 초기 웹 애플리케이션 개발 당시에는 위와 같은 구조를 개발자가 직접 만들어서 사용해야했다.

 

+ 웹 애플리케이션을 제작하려면 이 구조를 알아두는 것이 좋다.

 

위 구조에 대해 설명을 하자면, 

 

웹 애플리케이션 이름(  Web 이라는 이름을 가진다고 하자. ) 이 있으면

 

Web의 하위 폴더에는 WEB-INF가 있고, WEB-INF 폴더 하위에는 classes와 lib 폴더가있고, web.xml 파일이 있는것이다.

 

위에 언급한 것처럼 이것이 웹 애플리케이션을 이루는 요소들이다.


 

Web : 웹 애플리케이션의 루트 디렉터리, 다른 웹 애플리케이션 이름과 중복 허용 X, JSP HTML 파일이 저장된다.

 

WEB_INF : 웹 애플리케이션에 관한 정보가 저장되는 곳, 이 디렉터리는 외부에서 접근 불가

 

classes : 웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치하는 곳

 

lib : 웹 애플리케이션에서 사용되는 여러 가지 라이브러리 압축 파일(jar 파일)이 저장되는 곳, DB 연동 드라이버나 프레임 워크 기능 관련 jar 파일이 여기에 저장됨. lib 디렉터리의 jar는 클래스패스(classpath) 가 자동으로 설정됨.

 

web.xml : 배치 지시자(deployment descriptor)로서 일종의 환경 설정 파일. 웹 애플리케이션에 대한 여러 가지 설정을 할 때 사용