웹 애플리케이션 아키텍처 웹 애플리케이션의 개념을 이해한다. 배포 서술자를 이해한다. 웹 애플리케이션을 패키징 한다. 웹 애플리케이션 아키텍처 웹 애플리케이션의 개념을 이해한다. 배포 서술자를 이해한다. 웹 애플리케이션을 패키징 한다. 웹 애플리케이션의 관리 기법을 배운다. 한빛미디어(주)
웹 애플리케이션 Section 01 개요 웹 애플리케이션 콘텐츠 구성 웹 애플리케이션이란 www 서비스 제공을 위해 사용되는 일종의 프로그램을 지칭함 jsp와 같은 서버 스크립트 파일을 비롯해 html, jpg, swf 등 콘텐츠를 포함 웹 애플리케이션 콘텐츠 구성 자바 웹 애플리케이션 이란 자바 기술이 적용된 웹 애플리케이션을 말함 <그림 9-1>이 와야 하는데 그림이 없습니다.
웹 애플리케이션 Section 01 웹 애플리케이션 디렉토리 구성 일반적인 윈도우용 애플리케이션의 경우 하나의 프로그램은 여러파일(자원)로 구성 기본프로그램 : Program Files 폴더 시스템 공용 파일 : Windows, Windows\System, Windows\System32 폴더 설정파일 : .conf, .ini, 레지스트리 웹 애플리케이션도 이와 유사한 디렉토리 구조를 가짐 컨텍스트 루트(Context Root) : 홈 디렉토리로 대부분의 정적 컨텐츠가 위치함. WEB-INF : 각종 설정파일들로 구성. WEB-INF/classes : 서블릿, 빈즈 클래스, 유틸리티 클래스등 해당 애플리케이션에서 참조하는 클래스 파일들이 위치 WEB-INF/lib : .jar 형태의 공통 라이브러리 등이 위치, jdbc 드라이버가 대표적 WEB-INF/src : WEB-INF 폴더는 웹을통해 접근할 수 없는 보안 폴더 이므로 소스코드의 안전을 위해 src 폴더에 소스를 둘 수 있으나 개발 툴 등에 따라 차이가 있음.
컨테이너와 배포 Section 02 컨테이너와 개발환경 컨테이너 개발환경 웹 애플리케이션을 실행시키기 위한 환경 사용자 요청을 받아 들이고 처리하는 역할을 수행하는 서버 프로그램 톰캣, 웹로직등 을 말함. JavaEE 표준 스펙을 준수할 경우 이론적으로 동일 애플리케이션은 서로 다른 서버에서도 아무런 수정없이 실행이 가능함(EJB의 경우 호환에 문제가 있을 수도 있지만 JSP의 경우 대부분 호환됨) 개발환경 다수의 운영 서버 및 개발 PC로 구성됨 개발자들은 대부분 로컬 서버에서 작업후 운영 서버로 배포(deploy) 함 버전관리를 위해 cvs 서버등을 둠
컨테이너와 배포 Section 02 웹 애플리케이션 배포 배포 톰캣 디렉터리에 직접 파일로 배포하는 방법 웹 애플리케이션을 운영서버에 설치하는 과정 각 컨테이너 마나 배포 툴이나 과정은 차이가 있으나 결과는 동일함 톰캣 디렉터리에 직접 파일로 배포하는 방법 가장 간단하면서 모든 톰캣 버전에서도 동일하게 사용가능 .war 파일을 webapps 폴더에 복사한 후 톰캣 시작 톰캣 디렉터리 사용 등 관리상의 문제로 인해 권장되는 방법은 아님 Tomcat Manager를 이용한 방법 톰캣에 기본적으로 포함된 웹 기반 관리도구 비교적 쉽게 애플리케이션 관리가 가능하며 관리자의 계정도 관리할 수 있음 Tomcat Client Deployer 배포툴 보다는 Ant 를 위한 톰캣 태스크 정의 패키지 서버 관리자 보다는 개발자에게 유용한 툴 Ant Task 를 지원하는 통합 개발툴을 함께 사용하는 것이 편리함
배포 서술자 Section 03 배포 서술자란 배포서술자 (DD, Deployment Descriptor) Java EE 스펙으로 웹 애플리케이션의 기본적인 설정을 위해 사용하는 파일 WEB-INF/web.xml 파일을 말함 배포서술자를 사용하는 이유 컨테이너 호환성 유지 : 규격화된 설정 파일을 통해 별도의 수정 없이 다른 서버와 호환 효율적인 애플리케이션 보수 : 초기화 파라미터등 소스 수정 없이 App. 설정변경 용이 유연한 애플리케이션 운영 : 서블릿 매핑 등 운영 애플리케이션에 대한 다양한 관리가능 기타 배포 서술자 EJB 배포의 경우 ejb-jar.xml 배포 파일 필요 웹서비스의 경우 webservices.xml 배포 파일 필요 스트러츠와 같은 프레임워크 사용시 해당 프레임워크 설정파일 필요
배포 서술자 Section 03 web.xml 세부 구조 개요 서블릿 스펙 2.4 이후 부터는 기존 DTD 에서 XML 스키마 구조로 변경 됨. 파일 형식은 기본적인 XML 파일 구조임 이클립스를 사용할 경우 많은 부분을 자동으로 설정해 줌 엘리먼트명 설명 distributable context-param 컨텍스트의 초기 패러미터를 설정. 설정된 내용은 모든 서블릿/JSP 에서 참조 가능. filter 필터 서블릿을 등록하는 부분 filter-mapping 필터 서블릿의 URL 매핑을 지정하는 부분 listener 리스터 서블릿을 등록하는 부분 servlet 서블릿을 등록하는 부분 servlet-mappping 서블릿의 URL 매핑을 지정하는 부분 session-config 현재 애플리케이션에 대한 세션 관련 설정을 하는 부분 mime-mapping 애플리케이션에서 처리할 파일 타입에 대한 매핑 부분 welcome-file-list index.html, index.jsp 등 초기 로딩 파일 지정 error-page 서버 에러코드에 따라 개별적인 파일로 에러페이지 지정 jsp-config security-constraint 애플리케이션 접근에 대한 보안 설정 부분 login-config security-role
배포 서술자 Section 03 web.xml 세부 구조 주요 엘리먼트 설정 예시 XML 파일 선언 세부 사항은 서블릿, 필터 등 해당 항목 장에서 자세히 다룸 XML 파일 선언 XML 파일임을 알림, XML 파일 내 한글이 포함되어 있으므로 encoding을 UTF-8로 함 <web-app></web-app> web.xml 파일의 root 엘리먼트로 모든 web.xml 설정은 이 태그 안에 있어야 함. 복잡해 보이지만 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd 스키마 파일을 참조한다는 설정 임 <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
배포 서술자 Section 03 web.xml 세부 구조 <display></display> 애플리케이션 표시 이름으로 이클립스에서는 프로젝트명으로 자동 설정 됨. 통합개발도구 혹은 컨테이너 레벨에서 정보 표시를 위해 사용되는 이름임. <servlet></servlet>,<servlet-mapping></servlet-mapping> 서블릿관련 설정 부분으로 서블릿 하나당 개별 태그로 작성해 준다. <servlet-mapping>은 URL 요청에 특정 서블릿을 연결하기 위한 설정이다. 하나의 서블릿에 여러 URL 패턴이 올 수도 있다 <display-name>jspbook</display-name> <servlet> <description>처음 만드는 서블릿</description> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>jspbook.ch04.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <url-pattern>/HelloWorldServlet</url-pattern> </servlet-mapping>
배포 서술자 Section 03 web.xml 세부 구조 <filter></filter>,<filter-mapping></filter-mapping> 필터는 특정URL 요청 시 사전에 처리할 작업을 지정된 규칙에 따라 수행한다 자바 웹 애플리케이션 유형 중 하나로 서블릿 설정과 유사한 구조를 가진다. filter> <filter-name>JspBookRequest</filter-name> <filter-class>jspbook.ch09.JspBookFilter</filter-class> <init-param> <param-name>EncodingName</param-name> <param-value>euc-kr</param-value> </init-param> </filter> <filter-mapping> <url-pattern>*.jsp</url-pattern> </filter-mapping>
배포 서술자 Section 03 web.xml 세부 구조 <welcome-file-list></welcome-file-list> 웹 애플리케이션 디렉터리 요청시 자동으로 보여줄 파일을 지정한다. 윗쪽 파일을 우선으로 보여주게 된다. <context-param></context-param> 애플리케이션 전반에 걸쳐 공유할 파라미터를 설정하는 부분 이클립스로 생성한 웹 애플리케이션의 경우 workspace 경로가 자동으로 등록된다 <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> … </welcome-file-list> <context-param> <param-name>workspace</param-name> <param-value>c:\dev\workspace</param-value> </context-param>
Tomcat Manager 활용 교재 : 370 ~ 379 페이지 실습과제 개요 개발 -> 패키징 -> 배포 및 실행 -> 관리의 과정을 실습 개발 및 관리자 관점 에서 웹 애플리케이션을 관리하는 기본 작업 이해