최종 개별 프로젝트과제물
▣개별 프로젝트 내용
학기 초 과제물인 스토리보드에서 제안했었던 경매를 수행하기 위한 웹 어플리케이션을 구
현합니다. 경매 웹 어플리케이션은 반드시 다음과 같은 기본 기능이 포함되어야 하며, 기본
기능 외의 추가 기능들은 자유롭게 추가시킬 수도 있습니다. 물론, 작성하는 인터페이스 또
한 최초 스토리보드의 계획에서 수정할 수도 있습니다.
▶기본 기능
①경매 상품을 등록하고 관리할 수 있는 기능
-상품명, 상품 설명, 상품 그림파일, 최저 입찰 금액 등의 정보를 등록할 수 있어야 합니
다.
-상품 등록자는 입찰자들에 의해 입찰된 가격을 확인하고 낙찰 과정을 처리할 수 있어
야 합니다.
-상품 등록자는 등록된 정보(상품)을 수정하거나, 삭제할 수 있어야 합니다.
②등록된 상품 리스트를 출력할 수 있는 기능
-입찰자들이 상품 리스트를 통해 경매에 참여할 상품을 선택할 수 있어야 합니다.
-입찰자들이 상품을 선택하면 세부 상품 정보를 확인할 수 있어야 합니다.
-경매가 완료된 상품은 입찰자들이 경매에 참여할 수 없도록 상품을 선택할 수 없어야
합니다.
③상품 검색 기능
-입찰자들이 검색어에 의해 원하는 경매 상품을 검색할 수 있어야 합니다.
-검색 결과는 리스트 형태로 출력되어야 하며, 리스트 중 상품을 선택하면 그 상품에 대
한 세부 상품 정보를 확인 할 수 있어야 합니다.
- 1 -
2.
■프로그래밍 시 주의사항
-반드시주요 코드에는 주석을 달아 두어야 합니다.
-사용하는 DBMS는 반드시 MySQL 5.5.x 버전 이어야 합니다.(그 이상 또는 그 이하 버전
으로 작성한 백업 DB 파일을 제출한 것은 인정하지 않습니다.)
-테이블 이름과 테이블 개수는 얼마든지 자유롭게 사용할 수 있습니다. 단, DB이름과, 이
DB를 사용하는 아이디와 암호는 반드시 다음과 같아야 합니다.
• DB 이름 : auction
• DB 사용자 아이디 : admin
• DB 접근 암호 : 1234
※참고 : 새롭게 생성된 auction DB를 admin 사용자가 사용하도록 하기 위해서는, 다음
SQL문으로 admin 사용자가 auction DB를 사용할 수 있도록 권한을 부여해야 합
니다.
mysql> CREATE DATABASE auction;
mysql> GRANT ALL PRIVILEGES ON auction.*
TO admin@localhost IDENTIFIED BY '1234';
■과제물 제출요령
: 다음과 같은 4개의 파일을 압축하여 zip 파일로 제출합니다.
①프로그램 내에서 사용하는 DB Table 스키마 설명 문서(엑셀 파일)
포함된 엑셀 파일 내용 중 파란색 글자는 입력 예제입니다. 내용을 수정하여 사용하세
요. 맨 앞 sheet는 전체 table 목록을 기술하고, 다음 sheet 부터는 table을 구체적으로
설명합니다.
②최초 작성했던 스토리보드 ppt 파일
-내용 보강이 필요하거나 최초 설계에서 변경되었으면 수정하여 제출합니다.
③다음 내용이 포함되도록 워드 문서(아래한글)를 작성하여 제출합니다.
-작성한 각 페이지에 대한 실행 결과를 캡처하고 구현한 기능 설명
(소스코드는 캡처하여 설명할 필요 없음. 소스코드는 war 파일을 통해 제출함)
-기본 기능 외에 추가되는 각 개별적인 독특한 기능은 되도록 문서의 서두에 간단히 기
술하고, 해당 캡처 화면에서 상세히 설명할 것.
-프로젝트 수행 후기
-실행 결과에 대한 화면 캡처 방법은 다음 캡처 방법을 참고하세요.
(단, 캡처시 반드시 주소 입력 줄까지 표시되도록 웹브라우저를 캡처해야 합니다.)
④web application 배포 파일인 auction.war 파일
-war 파일 생성방법은 본 문서를 참고하세요.
-제출되는 war 파일이름은 반드시 auction.war 이어야 합니다.
- 2 -
3.
⑤사용한 데이터베이스 백업파일인 auction.sql 파일
-백업 파일이름은 반드시 auction.sql 이어야 합니다.
-DB를 백업할 수 있는 명령어는 다음과 같습니다(상세 설명은 강의노트 참조).
mysqldump -u admin -p auction > auction.sql
■기타 주의 사항과 채점 기준
-본 과제물의 점수는 전체 총점 대비하여 15% 이상 반영 됩니다.
-제출기한을 꼭 확인하시어 엄수 바랍니다. 제출 기한 종료 후 어떠한 수단으로도 접수받지
않습니다.
-제출한 과제물이 동료 과제물 복사로 판명될 경우엔 F 학점을 부여합니다.
-선배나 동료로부터 얻은 과거의 웹프로그래밍 수업 프로젝트 과제물을 일부 수정하여 제
출하지 마세요. 적발시 F 부여합니다.
-본 과제물은 각 수강생 개인에게 부여하는 과제이기에 여러 사람이 같이 작성한 결과를
제출하는 것은 인정되지 않습니다. 그렇게 제출된 과제물은 복사한 것으로 판단하여 F가
부여될 수도 있습니다.
-주교제의 CD로 배포되는 예제나, 기타 인터넷에 공개된 코드 제출은 과제물로 인정되지
않습니다. 경우에 따라서는 F가 부여될 수도 있습니다.
-완성되지 못한 과제물에 대해서는 노력점수를 부여할 예정입니다.
단, 기본 기능 중 완성하지 못한 기능을 과제물 제출문서의 서두에 반드시 언급해야 합니
다.
-실습 자료로 배포된 예제 코드나 강의노트의 예제 코드를 참조하거나 확장해도 되나, 동일
하게 제출된 코드는 인정되지 않습니다.
■화면 켑쳐 방법
㉠네이버 자료실(http://file.naver.com/)과 같은 공개 자료실에서 "오픈 캡처"란 검색어로
검색하시면 공개용 화면 캡처 프로그램을 다운받아 설치하실 수 있습니다.
㉡먼저, 오픈 캡처 프로그램을 실행시키고, 프로그램 결과를 실행시킨 후, [Ctrl+Shift+A]
키를 누르시면 활성화된 윈도우를 캡처 할 수 있습니다.
㉢오픈 캡처 프로그램의 캡처된 그림을 마우스로 한번 클릭하고 [Ctrl+C] 키를 누릅니다.
㉣작업하고자 하는 워드 문서 파일에서 [Ctrl+V] 키를 누릅니다.
㉤적당한 크기로 그림 크기를 줄입니다.
- 3 -
4.
배포용 war 파일만들기
war 파일은 보다 쉽게 web application을 배포하고 설치하기 위해서 사용하는 파일입니
다. Tomcat에 보면 webapps 란 디렉토리가 있습니다. 기본적으로 이 디렉토리에 war 파
일을 놓으면 Tomcat은 자동으로 이 파일의 압축을 풀어서 사용할 준비를 하게 됩니다.
war 파일의 이름을 따라서 Context를 만들고 디렉토리를 만들어서 바로 사용할 수 있도록
합니다.
먼저 war파일을 만들기 전에 컴퓨터에는 이미 JDK와 Tomcat이 설치되어 있고, 기존에
사용하고 있는 Web Application Context가 jspbook이라고 가정합니다. 이 디렉토리에는
작성한 모든 jsp파일과 그림파일, java파일 등이 존재하고 있어야 합니다.
이 Context root 디렉토리에 새로운 디렉토리 META-INF 폴더를 생성 해 줍니다. 이 폴
더 안에 context.xml 파일을 생성할 것입니다(대소문자 주의). 이 파일은 웹 애플리케이션
배포시 context에 대한 환경설정 정보를 가지게 될 것입니다.
다음 그림처럼, META-INF 폴더에 context.xml 파일을 생성합니다. 이때, 모든 폴더 명에
대해선 대소문자에 주의해야 합니다.
생성했다면, context.xml 파일을 Editplus에서 Open하여 tomcat7/conf/server.xml 파일에
서 정의했던 <Context> element와 그 sub-element(만일 존재한다면)를 복사해서
context.xml 파일에 붙여 넣습니다. 그 결과는 다음 그림과 유사할 것입니다.
- 4 -
5.
jspbook/META-INF/contex.xml 파일 예제
(어플리케이션이 Connection Pool을 사용하지 않는 경우)
<Context reloadable="true" privileged="true" >
</Context>
만일, path와 docBase가 정의되어 있다면, 위의 예처럼, path와 docBase 속성은 삭제합
니다. 또한, DB Connection 설정 등의 이유로 Context의 하위 엘리먼트인 Resource 엘리
먼트가 존재해야 한다면 이를 기술해 줍니다. 반대로 제출하는 웹 어플리케이션이 DB
Connection을 사용하지 않는다면 Resource 엘리먼트를 샥제해야 합니다. 마지막으로, 본
xml에는 한글 주석을 기술하지 말아주세요.
jspbook/META-INF/contex.xml 파일 예제
(어플리케이션이 Connection Pool을 사용할 경우)
<Context privileged="false"
reloadable="true"
useNaming="true">
<Resource
description="DB Connection"
auth="Container"
name="jdbc/auction"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxActive="4"
maxIdle="2"
maxWait="3000"
username="admin"
password="1234"
url="jdbc:mysql://localhost:3306/auction"
/>
</Context>
- 5 -
6.
jspbook/WEB-INF/web.xml 파일 예제
(어플리케이션이 Connection Pool을 사용하는 경우)
... 생략 ...
<description>
Welcome to Tomcat
</description>
<resource-ref>
<description>Database for JSP Applications</description>
<res-ref-name>jdbc/auction</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
context.xml 파일 구성이 완료되었으면, WEB-INF/web.xml 파일을 확인해야 합니다. 만
일, 어플리케이션이 connection pool을 사용한다면 위와 같은 환경 설정을 가지는 web.xml
을 제출합니다. 어플리케이션이 connection pool을 사용하지 않는다면 web.xml 파일은 위
의 <resource-ref> 이하 element들을 삭제되어 있어야 합니다.
jspbook/WEB-INF/web.xml 파일 예제
(어플리케이션이 Connection Pool을 사용하지 않는 경우)
... 생략 ...
<description>
Welcome to Tomcat
</description>
</web-app>
작성이 완료되었으면, 저장하고, 이제 war 파일을 생성하기 위해, 도스 명령 프롬프트 창
을 열어서 작성한 웹 애플리케이션 디렉토리로 이동합니다. 여기서는 c:/JAVA/jspbook 이
라고 가정합니다.
>cd c:JAVAjspbook
다음과 같이 jar 파일을 생성하는 방법과 동일한 명령어를 입력합니다. 생성하는 파일 이름
- 6 -
7.
이 jspbook.war라 한다면다음과 같이 입력합니다.
>jar cvf ../jspbook.war *
(현재 디렉토리의 모든 파일(* : 하위 디렉토리 포함)을 압축하여 상위 디렉토리(..)에
jspbook.war 파는 파일 이름으로 생성하라는 의미임, c:압축, v:압축되는 상황 메시지
보기, f:war 파일명지정)
이제, 윈도우 탐색기를 통해 jspbook 디렉토리의 상위인 c:JAVA 디렉토리에서
jspbook.war 파일을 찾아봅니다.
생성한 *.war 파일이 존재한다면, 모든 작업이 완료된 것입니다.
작성한 jspbook.war 파일을 배포하시면 됩니다.
※참고 : 만일 jar 명령어를 찾지 못하겠다는 메시지가 출력된다면, JAVA를 설치한 경로명
을 path에 등록시킵니다. 물론, 바탕화면의 내컴퓨터 아이콘을 마우스 오른쪽 버
튼을 누르고, [속성]을 선택한 뒤 [고급] 탭 메뉴의 [환경변수]에 등록시켜야겠지
요. 자세한 사항은 강의노트를 참조하세요.
예를 들어, Path는 “.;C:JAVAjdk1.6.0_18bin;” 를 기존에 입력되어 있
는 경로명에 뒤이어서 세미콜론(;)을 구분자로 추가시킵니다.
path를 등록하고 난 뒤엔, 새로운 명령프롬프트 창에서 명령어를 실행시켜야 합니
다.
- 7 -
8.
war 파일 실행해보기
톰켓 서비스를 시작시키고, 톰켓을 설치한 디렉토리의 webapps 디렉토리에 jspbook.war
파일을 복사합니다. 이때 주의해야할 점은 war 파일 이름과 동일한 파일 이름을 가지는 컨
넥스트(server.xml 파일내에서 설정한 <Context path="" ~>)나, 디렉토리가 이미 있다면,
압축이 자동으로 풀리지 않습니다. 그럴 때는 war 파일명만을 jspbook1.war와 같이 다른
이름으로 변경시킵니다.
복사하고, 잠시 동안 기다리면, 자동으로 압축이 풀리면서 jspbook 디렉토리가 생성될 것
입니다. 당연히, 압축이 풀린 뒤의 jspbook.war 파일은 더 이상 필요 없으니, 삭제해도 되
지만, 톰켓이 실행되고 있는 상태에서 삭제하면 압축 풀린 jspbook 디렉토리도 같이 삭제될
수도 있으니 주의하세요. 톰켓을 종료시킨 상태에서 삭제하는 것이 안전합니다.
웹 브라우저 상에서 다음과 같은 URL로 접근하여 테스트 해봅니다. 여기서 url path는 war
파일 이름이 됩니다.
http://localhost:8080/jspbook/HelloWorld.jsp (jspbook.war 파일일 경우)
http://localhost:8080/surveybank/HelloWorld.jsp (surveybank.war 파일일 경우)
c
- 8 -