본문 바로가기

개발/Java

[JAVA - WEB] 웹 애플리케이션

728x90
반응형
웹 애플리케이션의 정의

 

웹 애플리케이션이란 말 그대로 기존의 정적인 웹 애플리케이션의 기능을 그대로 사용하면서 서블릿, JSP, 자바 클래스 등을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램입니다.

정적인 방식의 단점을 보완하여 서비스를 제공하므로 정적 웹 애플리케이션의 기능인 HTML, 자바스크립트, CSS 등도 웹 애플리케이션에서 그대로 사용할 수 있습니다.

 

 

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

 

웹 애플리케이션의 기본 디렉토리 구조는 다음과 같습니다.

 

 

이러한 기본적인 구조를 갖추지 않고 컨데이너에서 웹 애플리케이션을 실행하면 오류가 발생할 수 있습니다.

이클립스 등과 같은 통합 개발 환경(Integrated Development Environment, IDE) 에서 웹 애플리케이션 프로젝트를 생성하면 구조가 조금 상이할 수 있지만 기본적인 디렉토리 구조는 위와 같습니다.

(통합 개발 환경을 사용하면 자동으로 디렉토리 구조가 구성되니까 아 기본은 이렇구나 만 알고 넘어가시면 됩니다 ^^)

 

각  구성요소의 기능은 다음과 같습니다.

 

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

 

이 외에도 추가적인 기능이 필요할 경우 WEB-INF 폴더 내에 필요한 다렉토리를 추가해서 사용할 수 있습니다.

 

구성 요소 기능
jsp/html JSP 파일 또는 HTML 파일 저장
css 스타일 시트 파일 저장
image 웹 애플리케이션에서 사용되는 이미지 저장
js 자바스크립트 파일 저장
bin 애플리케이션에서 사용되는 각종 실행파일 저장
conf 프레임워크에서 사용하는 각종 설정 파일 저장
src 자바 소스 파일 저장

 

 

 컨테이너에 웹 애플리케이션 실행

 

웹 애플리케이션은 일반 PC 에서 실행되는 자바 애플리케이션과 달리 단독으로 실행할 수 없습니다. 

웹 애플리케이션은 톰캣과 같은 웹 컨테이너에서 실행되는 구조이므로 웹 애플리케이션을 실행하려면 톰캣에 등록을 한 후 실행해야 합니다.

 

직접 웹 애플리케이션에 등록을 하는 방법은 2가지 입니다.

 

1. %CATALINA_HOME%webapps 디렉터리 경로에 애플리케이션을 저장

CATALINA_HOME 는 톰캣의 루트 디렉터리로 묵시적으로 사용하고 있습니다.( 여기서는 C:\tomcat9 )

설치한 톰캣 루트 디렉터리의 하위 디렉터리인 webapps 폴더에 작성한 웹 애플리케이션을 위치 시킨 다음 톰캣을 껐다가 다시 실행하면 톰캣이 자동으로 웹 애플리케이션을 인식한 후 실행 시키는 방법입니다.

단점은 개발 중에 웹 애플리케이션을 계속 해서 해당 경로에 복사한 후 톰캣을 재실행해야 하는 번거로움이 있습니다. 자신의 PC 가 아닌 원격으로 업로드를 해야할 경우 그 번거로움과 시간은 더 많이 낭비됩니다.

 

2. 톰캣의 server.xml 에 직접 웹 애플리케이션을 등록

톰캣 내부 폴더가 아닌 임의의 장소에 위치해 있는 웹 애플리케이션을 톰캣의 설정 파일인 server.xml 에 등록해서 실행하는 방법입니다.

server.xml 에 등록하는 웹 애플리케이션을 컨텍스트(context) 라고 부릅니다. 톰캣에서 인식하는 한개의 웹 애플리케이션이라고 생각하시면 됩니다.

톰캣(컨테이너) 실행 시 웹 애플리케이션 당 하나의 컨텍스트가 생성됩니다. 컨텍스트 이름은 웹 애플리케이션 이름과 같게 만드는 것이 일반적이나 보안 상의 이유나 웹 웹 애플리케이션의 이름이 너무 긴 경우에는 웹 애플리케이션의 이름과 다르게 만들수도 있습니다.

 

컨텍스트 태그 구성요소에 대한 설명입니다.

 

구성 요소 기능
path 웹 애플리케이션의 컨텍스트 이름입니다. 윀 애플리케이션 이름과 다를수도 있으며 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름입니다.
docBase 컨텍스트에 대한 실제 웹 애플리케이션이 위치한 경로입니다. WEB-INF 상위 폴더까지의 경로를 나타냅니다.
reloadable 실행 중 소스 코드가 수정될 경우 바로 갱신할지를 설정합니다. 만약 false 로 설정하면 톰캣을 다시 실행해야 추가한 소스 코드의 기능이 반영됩니다.
<Context path = "/컨텍스트 이름"
         docBase = "웹 애플리케이션의 WEB-INF 디렉터리 위치"
         reloadable = "true or false" />

 

직접 웹 애플리케이션을 등록하는 방법들은 위와 같습니다.

이클립스와 같은 통합개발환경(IDE : Integrated Development Enviornment)을 사용하면 보다 쉽게 웹 애플리케이션을 등록하고 실행할 수 있으며 다음 글에서 설명드리도록 하겠습니다.

 

여기까지 임미다. 

 

 

728x90