Ⅲ. 모듈 설계

Download Report

Transcript Ⅲ. 모듈 설계

Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
I . Application 개요
Ⅱ. 업무 시나리오
Ⅲ. 모듈 설계
Ⅳ. 개발환경구축
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved | Confidential
1. 개요
I . Application 개요
1.1 프로젝트 개요
- 본 프로젝트는 온라인 쇼핑몰 개발을 목적을 한다. 실제 상용으로 운영될 쇼핑몰을 구축하는
것이 아닌 개발 능력 향상을 위한 실습성격의 프로젝트임으로 개발될 쇼핑몰은 상용과는 몇
가지 차이를 보이게 될것이다. 하지만 물건을 등록하고 유저에 의해 구매되는 등의 일반적인
업무로직은 동일하다.
1.2 프로젝트 적용 기술
- 프로젝트는 자바 J2EE 를 이용하여 Web Applicaton 으로 구축을 할것이며 MVC Model 을
적용하여 개발해야 한다. JSP & Servlet 기술과 JDBC 기술을 이용하며 Front Controller
Pattern 을 적용하여 개발해야 한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
1. 개요
I . Application 개요
1.2 프로젝트 적용 기술
- 프로젝트는 자바 J2EE 를 이용하여 Web Applicaton 으로 구축을 할것이며 MVC Model 을
적용하여 개발해야 한다. JSP & Servlet 기술과 JDBC 기술을 이용하며 Front Controller
Pattern 을 적용하여 개발해야 한다.
구분
소프트웨어
버전
Language
JDK
1.5
IDE
Eclipse (WTP)
3.3
WAS
Tomcat
5.5
DBMS
Oracle
9i
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. Application Architecture
I . Application 개요
2.1 MVC Model 적용
- 우선 웹개발 모델로 MVC 모델을 적용하여 개발하도록 하겠다.
MVC 모델은 현재 웹개발에서 가장 많이 선택되는 모델이며 클라이언트 요청 처리를
서버측에서 Controller , Model, View 로 나누어 처리하는 방식이다. .
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. Application Architecture
I . Application 개요
2.2 Front Controller 적용
Front Controller Pattern 은 MVC 모델의 핵심이라고 할수 있는 Controller 의 통합으로 전체
어플리케이션의 통합 관리를 위해 사용된다
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. Application Architecture
I . Application 개요
2.3 Layered Architecture Style
.전체 시스템을 Presentation Layer 와 Business Layer 로 나누어 설계하고 개발할것이다.
Presentation Layer 는 클라이언트의 요청을 받아들여 분석하고 클라이언트에게 적절한
화면을 구성해서 응답하는 역할을 수행하며 Business Layer 는 Business Logic 이 구현하는
역할을 수행한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
1. 회원모듈 시나리오
Ⅱ. 업무 시나리오
- 회원가입 기능을 통해 가입된 회원만이 시스템을 이용할수 있다.
- 회원은 일반 유저와 관리자로 구분이 되며 관리자는 DB 시스템에 직접 접근하여 권한을
부여한다. 나머지 가입된 회원은 일반 회원이 된다.
- 관리자만이 물건을 등록시킬수 있으며 일반회원은 구매만 가능하다.
- 관리자는 시스템에 등록된 모든 회원의 정보에 대한 연람 및 수정이 가능하다.
- 회원은 자신에 대한 정보 연람 및 수정, 탈퇴가 가능하다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. 상품관리모듈 시나리오
•
•
•
•
•
•
•
Ⅱ. 업무 시나리오
관리자에 의해 판매 물건의 등록이 가능하다.
등록된 물건은 구매자에 의해 조회가 가능하다.
판매자는 아직 구매되지 않은 물건에 한해서 수정이 가능하다.
관리자는 구매된 물건의 목록과 상세보기가 가능하다.
관리자에 의해 물건이 등록되면 판매등록 상태가 되며 구매자가 구매하면 구매상태가 된다.
관리자가 구매 상태의 물건을 배송시키면 배송중 상태가 되며 구매자가 배송확인을 하면
배송완료 상태가 된다.
관리자는 판매등록 상태의 물건에 대해서만 수정이 가능하다.
판매물건은 등록된 개수를 일괄구매하는 방식이며 분할 구매는 불가능하다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
3. 구매관리모듈 시나리오
•
•
•
•
Ⅱ. 업무 시나리오
구매자는 등록된 물건의 목록조회 및 상세보기가 가능하다.
장바구니 기능은 제공하지 않는다.
구매시 배송정보 및 결제 정보를 입력한다. 결제방법은 신용카드와 온라인 입금만 제공한다.
구매 내역 조회가 가능하며 배송전인 경우 구매 정보와 관련된 수정이 가능하다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
4. 프로젝트를 위한 가정
•
•
•
•
•
•
Ⅱ. 업무 시나리오
본 프로젝트는 JSP & Servlet 을 이용한 개발 능력 향상에 목적을 두는 실습 프로젝트임으로
실제 온라인 쇼핑몰과는 차이를 가진다.
디자인(UI) 요소가 중요한 프로젝트가 아님으로 화면은 최대한 간단하게 가져간다.
외부시스템 (결제 시스템, 배송 시스템 등) 과의 연동은 생략하도록 하겠다.
관리자 모듈을 따로 제공하지 않는다.
재고관리 시스템은 생략하도록 한다. (일괄구매를 원칙으로 한다.)
물건의 카테고리 분류는 지원하지 않는다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
1. 공용 모듈
1.1 공용 모듈 요구사항
•
•
MVC 모델에서 메인 Controller
DBMS 수행을 위한 Connection 획득
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
1. 공용 모듈
1.2 Class Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
1. 공용 모듈
Ⅲ. 모듈 설계
1.2 Class Diagram
공용모듈 – ActionServlet
Front Controller 역할을 하는 클래스로 Servlet 으로 작성된다.
다른 Servlet 과 마찮가지로 init 메서드와 service 메서드가 구현된다.
공용모듈 – RequestMapping
클라이언트의 요청 URL 정보에 맞는 Action 클래스 정보를 가지는 클래스이다. ActionServlet
의 요청에 맞는 Action 클래스를 넘겨주는 역할을 한다.
SingleTon 으로 구현되며 RequestMapping 객체의 획득을 위한 getInstance 메서드와 Action
클래스를 넘겨주기 위한 getAction 메서드가 구현된다.
공용모듈 – Action
이후 작성될 모든 Action 클래스의 상위 클래스이다.
ServletContext 객체를 하위 클래스에서 이용할수 있도록 셋팅하고 획득하는 메서드를
제공한다. 또한 하위 클래스에서 오버라이드 받아야 하는 execute 메서드를 선언한다.
공용모듈 – HttpUtil
MVC 모델에서 View 를 실행하는 역할을 한다.
Forward 방법과 redirect 방법에 대한 각각의 메서드를 정의한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
1. 공용 모듈
1.3 Sequence Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
2. 회원 모듈
2.1 회원 모듈 요구사항
•
•
•
•
•
•
회원가입
회원리스트조회 (관리자기능)
회원상세조회
회원정보수정
로그인
중복체크
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
2. 회원 모듈
2.2 Class Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
2. 회원 모듈
Ⅲ. 모듈 설계
2.3 URL - Action
유저 요청 URL
Action Class
비고
/checkDuplication.do
CheckDuplicationAction
회원가입시 아이디 중복확인 요
청
/addUser.do
AddUserAction
회원가입 요청
/login.do
LoginAction
로그인 요청
/logout.do
LogoutAction
로그아웃 요청
/getUser.do
GetUserAction
유저 상세보기 요청
/updateUserView.do
UpdateUserViewAction
유저 정보 수정을 위한 화면 요
청
/updateUser.do
UpdateUserAction
유저 정보 수정 요청
/listUser.do
ListUserAction
유저 목록 요청
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. 회원 모듈
Ⅲ. 모듈 설계
2.4 UserDAO
메서드
비고
findUser
유저 정보 조회를 위한 DBMS 를 수행한다.
getUserList
유저목록 조회를 위한 DBMS 를 수행한다.
insertUser
유저 정보 등록을 위한 DBMS 를 수행한다.
updateUser
유저 정보 수정을 위한 DBMS 를 수행한다.
2.5 UserService
메서드
비고
addUser
유저 등록을 위한 비즈니스 로직을 수행한다.
checkDuplication
회원가입시 아이디 중복 체크를 위한 위한 비즈니스 로직을 수행한다
getUser
유저정보 조회를 위한 비즈니스 로직을 수행한다
getUserList
유저 목록 조회를 위한 비즈니스 로직을 수행한다
loginUser
회원 로그인 처리를 위한 비즈니스 로직을 수행한다
updateUser
회원정보 수정을 위한 비즈니스 로직을 수행한다
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. 회원 모듈
2.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
2. 회원 모듈
2.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
2. 회원 모듈
2.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
3. 판매 모듈
2.1 판매 모듈 요구사항
•
•
•
•
상품등록(관리자기능)
상품목록조회
상품상세조회
상품정보수정(관리자기능)
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
3. 판매 모듈
3.2 Class Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
3. 판매 모듈
Ⅲ. 모듈 설계
3.3 URL - Action
유저 요청 URL
Action Class
비고
/addProduct.do
AddProductAction
상품 등록 요청
/getProduct.do
GetProductAction
상품 상세 보기 요청
/updateProductView.do
UpdateProductViewAction
상품정보 수정을 위한 화면요청
/updateProduct.do
UpdateProductAction
상품 정보 수정 요청
/listProduct.do
ListProductAction
상품 목록 조회 요청
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
3. 판매 모듈
Ⅲ. 모듈 설계
3.4 ProductDAO
메서드
비고
findProduct
상품 정보 조회를 위한 DBMS 를 수행한다.
getProductList
상품목록 조회를 위한 DBMS 를 수행한다.
insertProduct
상품등록을 위한 위한 DBMS 를 수행한다.
updateProduct
상품 정보 수정을 위한 DBMS 를 수행한다.
3.5 ProductService
메서드
비고
findProduct
상품 정보 조회를 위한 비즈니스 로직을 실행한다..
getProductList
상품목록 조회를 위한 비즈니스 로직을 실행한다
insertProduct
상품등록을 위한 위한 비즈니스 로직을 실행한다.
updateProduct
상품 정보 수정을 위한 비즈니스 로직을 실행한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
3. 판매모듈
3.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
3. 판매모듈
3.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
3. 판매모듈
3.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매 모듈
4.1 구매 모듈 요구사항
•
•
•
•
•
•
구매등록
구매목록조회
판매목록조회
구매상세정보조회
구매정보수정
구매상태정보수정
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매 모듈
4.2 Class Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매 모듈
Ⅲ. 모듈 설계
4.2 URL- Action
유저 요청 URL
Action Class
비고
/addPurchase.do
AddPurchaseAction
구매 요청
/addPurchaseView.do
AddPurchaseViewAction
구매를 위한 화면 요청
/getPurchase.do
GetPurchaseAction
구매 상세정보 요청
/updatePurchaseView.d
o
UpdatePurchaseViewAct
ion
구매 정보 수정을 위한 화면
요청
/updatePurchase.do
UpdatePurchaseAction
구매정보 수정 요청
/listPurchase.do
ListPurchaseAction
구매목록 요청
/listSale.do
ListSaleAction
판매목록 요청
/updateTranCode.do
UpdateTranCodeAction
구매 상태코드 수정 요청
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
4. 구매 모듈
Ⅲ. 모듈 설계
4.4 PurchaseDAO
메서드
비고
findPurchase
구매정보 상세 조회를 위한 DBMS 를 수행한다.
getPurchaseList
구매목록 보기를 위한 DBMS 를 수행한다.
getSaleList
판매목록 보기를 위한 DBMS 를 수행한다.
insertPurchase
구매를 위한 위한 DBMS 를 수행한다.
updatePurchase
구매정보 수정을 위한 DBMS 를 수행한다.
updateTranCode
구매 상태 코드 수정을 위한 DBMS 를 수행한다.
4.5 PurchaseService
메서드
비고
getPurchase
구매정보 상세 조회를 위한 비즈니스 를 수행한다.
getPurchaseList
구매목록 보기를 위한 비즈니스 를 수행한다.
getSaleList
판매목록 보기를 위한 비즈니스 를 수행한다.
addPurchase
구매를 위한 위한 비즈니스 를 수행한다.
updatePurchase
구매정보 수정을 위한 비즈니스 를 수행한다.
updateTranCode
구매 상태 코드 수정을 위한 비즈니스 를 수행한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
4. 구매모듈
4.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매모듈
4.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매모듈
4.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
4. 구매모듈
4.6 화면 디자인
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
5. Value Object
5.1 Class Diagram
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
Ⅲ. 모듈 설계
5. Value Object
5.2 UserVO
변수명
비고
addr
String 타입의 주소
email
String 타입의 이메일
password
String 타입의 유저 패스워드
phone
String 타입의 전화번호
regDate
java.sql.Date 타입의 회원가입 일자
role
String 타입의 역할 (admin, user 로 구분)
ssn
String 타입의 주민번호
userId
String 타입의 유저 아이디
userName
String 타입의 유저 이름
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
5. Value Object
5.2 ProductVO
변수명
비고
fileName
String 타입의 상품 이미지 파일 이름
manuDate
String 타입의 상품 제조 일자
price
int 타입의 상품 가격
prodDetail
String 타입의 상품 상세 정보
prodName
String 타입의 상품명
prodNo
int 타입의 상품 번호
regDate
java.sql.Date 타입의 상품 등록 일자
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
5. Value Object
5.4 PurchaseVO
변수명
비고
buyer
UserVO 타입의 구매자 정보
dlvyAddr
String 타입의 배송지 주소
dlvyDate
String 타입의 배송 희망 일자
dlvyRequest
String 타입의 배송시 요구사항
orderDate
java.sql.Date 타입의 구매 일자
paymentOption
String 타입의 지불방식
purchaseProd
ProductVO 타입의 구매 물품 정보
receiverName
String 타입의 받는사람 이름
receiverPhone
String 타입의 받는사람 전화번호
tranCode
String 타입의 구매 상태 코드
tranNo
int 타입의 구매 번호
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
6. Table
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅲ. 모듈 설계
1. 개발환경
Ⅳ. 개발환경구축
 미니 프로젝트를 위한 개발환경은 아래와 같다.
설치프로그램
비고
다운로드 사이트
JDK1.5
자바 개발 도구
java.sun.com
Tomcat5.5
Web Application Container
www.apache.org
Eclipse3.3
eclipse-jee-europa-winterwin32.zip
www.eclipse.org
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
2. Server 등록
2.1 Server 등록
- Tomcat 서버를 eclipse 에 등록한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축
3. Project Import
3.1 Project import
- minishop 프로젝트를 eclipse 에 import 한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축
4. DataSource 설정
Ⅳ. 개발환경구축
4.1 JDBC Driver 위치
- 서버의 DataSource 설정을 위해 ojdbc14.jar 파일을 C:\apache-tomcat-5.5.20\common\lib 에
복사한다.
4.2 Eclipse 의 Data Source Explorer 설정
- 새로운 Connection 등록
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
4. DataSource 설정
- 새로운 Connection 등록
Generic JDBC Connection 방식을 선택한다
- Connection 이름 등록
적절한 이름을 주어 새로운 Connection 설정을 시작한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축
4. DataSource 설정
Ⅳ. 개발환경구축
- Driver 지정
JDBC Driver 를 지정해 주어야 하는데 등록시킨게 없다면 옆의 버튼을 눌러 Driver
Definitions 창을 띄운다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
4. DataSource 설정
- Connection 정보 설정
이용하고자 하는 DataBase 의 Connection 정보를 설정한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축
4. DataSource 설정
- SQL 파일 생성 / 테스트
SQL 파일을 만들어 테스트 한다.
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축
4. DataSource 설정
Ⅳ. 개발환경구축
3.3 Table 생성 및 Sample 테이터 insert
- sql.sql 파일을 실행하여 필요한 Table 을 생성하고 admin user 를 insert 한다.
3.4 server.xml 파일 수정
- 서버 DataSource 설정을 위해 server.xml 파일을 아래와 같이 수정한다.
<Resource driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="4" maxIdle="2" maxWait="5000" name="jdbc/myoracle"
password="java00" type="javax.sql.DataSource"
url="jdbc:oracle:thin:@70.12.220.130:1521:ora9" username="java00" />
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
5. 프로젝트 수정
Ⅳ. 개발환경구축
5.1 DBUtil
- 서버에 등록된 JNDI Name 으로 변경
dataSource=(DataSource)cxt.lookup("java:comp/env/jdbc/myoracle");
5.2 AddProductAction
- 파일 업로드될 디렉토리 지정
FileUploader uploader=new FileUploader(request,"D:\\workspace\\workspacewebpro\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\minis
hop\\uploadFiles");
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
6. 환경설정 테스트
6.1 서버 Start 후 http://localhost:8080/index.jsp 로 결과 화면 출력
Title: “Advanced JSP & Servlet”
Copyright © 2005 Samsung SDS Co.,Ltd. All rights reserved
Ⅳ. 개발환경구축