SlideShare a Scribd company logo
최종 개별 프로젝트 과제물

▣개별 프로젝트 내용

학기 초 과제물인 스토리보드에서 제안했었던 경매를 수행하기 위한 웹 어플리케이션을 구
현합니다. 경매 웹 어플리케이션은 반드시 다음과 같은 기본 기능이 포함되어야 하며, 기본
기능 외의 추가 기능들은 자유롭게 추가시킬 수도 있습니다. 물론, 작성하는 인터페이스 또
한 최초 스토리보드의 계획에서 수정할 수도 있습니다.




▶기본 기능


①경매 상품을 등록하고 관리할 수 있는 기능
 -상품명, 상품 설명, 상품 그림파일, 최저 입찰 금액 등의 정보를 등록할 수 있어야 합니
   다.
 -상품 등록자는 입찰자들에 의해 입찰된 가격을 확인하고 낙찰 과정을 처리할 수 있어
   야 합니다.
 -상품 등록자는 등록된 정보(상품)을 수정하거나, 삭제할 수 있어야 합니다.


②등록된 상품 리스트를 출력할 수 있는 기능
 -입찰자들이 상품 리스트를 통해 경매에 참여할 상품을 선택할 수 있어야 합니다.
 -입찰자들이 상품을 선택하면 세부 상품 정보를 확인할 수 있어야 합니다.
 -경매가 완료된 상품은 입찰자들이 경매에 참여할 수 없도록 상품을 선택할 수 없어야
  합니다.


③상품 검색 기능
 -입찰자들이 검색어에 의해 원하는 경매 상품을 검색할 수 있어야 합니다.
 -검색 결과는 리스트 형태로 출력되어야 하며, 리스트 중 상품을 선택하면 그 상품에 대
  한 세부 상품 정보를 확인 할 수 있어야 합니다.




                       - 1 -
■프로그래밍 시 주의사항
-반드시 주요 코드에는 주석을 달아 두어야 합니다.
-사용하는 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 -
⑤사용한 데이터베이스 백업 파일인 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 -
배포용 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 -
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 -
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 -
이 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 -
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 -

More Related Content

What's hot

Backend Master | 3.1.2 Build - Java build tool - Maven
Backend Master | 3.1.2 Build - Java build tool - MavenBackend Master | 3.1.2 Build - Java build tool - Maven
Backend Master | 3.1.2 Build - Java build tool - Maven
Kyunghun Jeon
 
04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재
Hankyo
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
Myungjin Lee
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
Myungjin Lee
 
Apache module-201511
Apache module-201511Apache module-201511
Apache module-201511
Eric Ahn
 
07.실행환경 교육교재(표준프레임워크 세부 적용기준)
07.실행환경 교육교재(표준프레임워크 세부 적용기준)07.실행환경 교육교재(표준프레임워크 세부 적용기준)
07.실행환경 교육교재(표준프레임워크 세부 적용기준)
Hankyo
 
03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)
Hankyo
 
세미나 Spring mybatis
세미나 Spring mybatis세미나 Spring mybatis
세미나 Spring mybatis
Somang Jeong
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
Ji-Woong Choi
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
Ji-Woong Choi
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XpressEngine
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
Sol Kim
 
JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본
Myungjin Lee
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
Hyung Eun Jin
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd Week
Taewoo Kim
 

What's hot (16)

Backend Master | 3.1.2 Build - Java build tool - Maven
Backend Master | 3.1.2 Build - Java build tool - MavenBackend Master | 3.1.2 Build - Java build tool - Maven
Backend Master | 3.1.2 Build - Java build tool - Maven
 
04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
 
Apache module-201511
Apache module-201511Apache module-201511
Apache module-201511
 
07.실행환경 교육교재(표준프레임워크 세부 적용기준)
07.실행환경 교육교재(표준프레임워크 세부 적용기준)07.실행환경 교육교재(표준프레임워크 세부 적용기준)
07.실행환경 교육교재(표준프레임워크 세부 적용기준)
 
03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)
 
세미나 Spring mybatis
세미나 Spring mybatis세미나 Spring mybatis
세미나 Spring mybatis
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본JSP 프로그래밍 #04 JSP 의 기본
JSP 프로그래밍 #04 JSP 의 기본
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
 
Eclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd WeekEclipse 4 RCP - 2nd Week
Eclipse 4 RCP - 2nd Week
 

Similar to Final report201101

Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
J.H Ahn
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Park JoongSoo
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Jonghyun Park
 
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Jonghyun Park
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
Kyung Sang Jang
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
jylee6977
 
AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스
Amazon Web Services Korea
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
SK Telecom
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
Sungbum Hong
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf코드잇-타스-특강.pdf
코드잇-타스-특강.pdf
이정환
 
[3주차] 알파 유저를 위한 AWS 스터디
[3주차] 알파 유저를 위한 AWS 스터디[3주차] 알파 유저를 위한 AWS 스터디
[3주차] 알파 유저를 위한 AWS 스터디
Amazon Web Services Korea
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
Park Jonggun
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
SuHyun Jeon
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
Daegeun Kim
 

Similar to Final report201101 (20)

Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
 
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
Ibm rational application developer 및 dojo를 사용하여 ajax 웹 애플리케이...
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스AWS DevDay 실습 가이드 - 서버리스
AWS DevDay 실습 가이드 - 서버리스
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
Html5
Html5 Html5
Html5
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf코드잇-타스-특강.pdf
코드잇-타스-특강.pdf
 
[3주차] 알파 유저를 위한 AWS 스터디
[3주차] 알파 유저를 위한 AWS 스터디[3주차] 알파 유저를 위한 AWS 스터디
[3주차] 알파 유저를 위한 AWS 스터디
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
LucideWorks Banana 소개
LucideWorks Banana 소개 LucideWorks Banana 소개
LucideWorks Banana 소개
 
Kubernetes on GCP
Kubernetes on GCPKubernetes on GCP
Kubernetes on GCP
 

Final report201101

  • 1. 최종 개별 프로젝트 과제물 ▣개별 프로젝트 내용 학기 초 과제물인 스토리보드에서 제안했었던 경매를 수행하기 위한 웹 어플리케이션을 구 현합니다. 경매 웹 어플리케이션은 반드시 다음과 같은 기본 기능이 포함되어야 하며, 기본 기능 외의 추가 기능들은 자유롭게 추가시킬 수도 있습니다. 물론, 작성하는 인터페이스 또 한 최초 스토리보드의 계획에서 수정할 수도 있습니다. ▶기본 기능 ①경매 상품을 등록하고 관리할 수 있는 기능 -상품명, 상품 설명, 상품 그림파일, 최저 입찰 금액 등의 정보를 등록할 수 있어야 합니 다. -상품 등록자는 입찰자들에 의해 입찰된 가격을 확인하고 낙찰 과정을 처리할 수 있어 야 합니다. -상품 등록자는 등록된 정보(상품)을 수정하거나, 삭제할 수 있어야 합니다. ②등록된 상품 리스트를 출력할 수 있는 기능 -입찰자들이 상품 리스트를 통해 경매에 참여할 상품을 선택할 수 있어야 합니다. -입찰자들이 상품을 선택하면 세부 상품 정보를 확인할 수 있어야 합니다. -경매가 완료된 상품은 입찰자들이 경매에 참여할 수 없도록 상품을 선택할 수 없어야 합니다. ③상품 검색 기능 -입찰자들이 검색어에 의해 원하는 경매 상품을 검색할 수 있어야 합니다. -검색 결과는 리스트 형태로 출력되어야 하며, 리스트 중 상품을 선택하면 그 상품에 대 한 세부 상품 정보를 확인 할 수 있어야 합니다. - 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 -