온라인서점 동네책방 디지털컨버전스 1 기 (JAVA 기반응용 SW 엔지니어링 ) 조원 : 계보현, 이웅빈, 이창형
CONTENTS 2 1, 서비스소개 1.1 기획의도 1.2 서비스개요 1.3 요구사항정의 2, 프로젝트개요 2.1 개발환경 2.2 작업일정 2.3 시스템구조 2.4 데이터베이스구성 2.5 테이블명세 3. 기술상세 사용자서비스및기능 4, 기술상세 관리자서비스및기능 5. 시연
1.1 기획의도 3 기획의도 동네책방 은 반디앤루니스 등의온라인서점들을벤치마킹하여반응형웹페이지로구현한사이트입니다. 사용자가원하는도서를쉽게찾아편리한구매를할수있도록도서검색, 분류별도서카테고리, 새로나온책, 베스트셀러 등의서비스를제공하는것을목표로기획및제작하였습니다.
1.2 서비스개요 4 서비스개요사용자
1.2 서비스개요 5 서비스개요관리자
1.3 요구사항정의 6 요구사항정의사용자 1depth 2depth 3depth 4depth 5depth 기능내용비고 메인 메인페이지 로그인 로그아웃 마이페이지 로그인페이지 아이디찾기 비밀번호찾기 회원가입 마이페이지메인 회원정보수정 회원탈퇴 1:1 문의내역 1:1 문의하기 구매내역 장바구니 FAQ 구매가이드 더보기 문의내역리스트 더보기 구매내역리스트 상품리스트 총주문금액 FAQ TOP10 리스트 구매가이드리스트 관리자배너페이지에등록된배너이미지들이캐러셀형태로출력 베스트셀러상위 10 개의도서이미지, 도서명도서리스트갤러리형태로출력 새로나온도서상위 10 개의도서이미지, 도서명도서리스트갤러리형태로출력 아아디, 비밀번호입력 Input 박스, 로그인버튼 아이디, 비밀번호일치시, 로그인전환후메인페이지이동 아이디, 비밀번호불일치시, 로그인페이지경고팝업출력 이름, 생년월일, 핸드폰번호값일치시, 아이디화면출력 아이디, 이름, 생년월일, 핸드폰번호값일치시, 임시비밀번호발급후, 이메일로임시비밀번호전송 회원가입페이지이동 아이디 ( 중복확인팝업 ), 이름, 비밀번호, 비밀번호확인, 생년월일, 우편번호, 주소, 상세주소, 이메일, 이메일수신여부, 휴대폰번호, SMS 수신여부필수입력 가입완료시, 가입완료팝업출력후메인페이지이동 메인페이지로이동 최근주문 / 배송내역확인가능 나의문의내역확인가능 리스트페이지해당리스트전체조회 도서정보페이지 주문하기 질문내용 회원정보수정페이지이동 이름, 아이디값수정불가 비밀번호변경시기존비밀번호입력후, 비밀번호변경가능 회원탈퇴안내페이지이동 가입시등록한비밀번호입력후탈퇴가능 1:1 문의페이지이동 문의날짜, 문의유형, 문의제목, 답변상태확인가능 사용자의모든문의내역확인가능 사용자의아아디, 이름, 이메일호출 문의유형 ( 회원, 상품, 주문 / 결제, 배송, 반품 / 교환 / 환불 ), 문의제목, 문의내용입력 작성완료시, 문의내역페이지에서확인가능 주문번호, 주문일자, 상품명, 주문금액리스트조회 상품명클릭시해당주문상세내역페이지이동및배송상태정보확인가능 장바구니리스트페이지이동 상품명, 출판사, 판매가, 체크박스 상품명클릭시, 해당도서상세정보페이지이동 해당상품체크박스선택후, 삭제버튼클릭시, 장바구니리스트에서삭제 장바구니상품리스트에담긴수량, 상품가격, 주문금액총합계리스트 해당페이지에서주문하기버튼클릭시, 상품들주문페이지이동 자주묻는질문유형 10 개선별하여리스트출력 제목클릭시해당유형에대한상세설명확인가능 상품구매방법, 결제가이드. 신고탭으로구성 각탭클릭시, 해당메뉴에대한정보확인가능 로그인했을시, TOPBAR 의로그인버튼이로그아웃버튼으로변경 약관동의페이지 -> 필수약관동의 2 개를반드시입력했을경우만회원가입페이지로이동 해당약관에대한상세내용은 MODAL 로구현 주소입력 DAUM API 적용 로그인했을시, TOPBAR 의회원가입버튼이사라짐 주문 / 배송내역은최근순으로 3 건까지확인가능 제목클릭시상세문의내역확인가능 비밀번호가틀렸을경우, 팝업출력및메인페이지이동 사용자 1:1 문의등록시, 관리자 1:1 문의관리리스트출력
1.3 요구사항정의 7 요구사항정의사용자 1depth 2depth 3depth 4depth 5depth 기능내용비고 메인 도서분류 ( 대분류 ) 중분류 소분류 도서상세정보페이지 도서상세정보페이지 메인페이지네비게이션바에서대분류 ( 국내도서, 해외도서, ebook) 선택가능 대분류선택시, 해당항목에해당하는중분류리스트 ( 소설, 시 / 에세이 / 기행, 경제 / 경영 ) 출력 준분류선택시, 해당항목에해당하는소분류리스트사이드바출력 소분류선택시, 해당소분류항목에해당하는도서리스트출력 도서리스트에출력된도서이미지, 도서명, 출판사, 도서가격확인 도서리스트에출력된도서클릭시, 도서상세정보페이지로이동 도서이미지, 도서명, 저자, 판매가격, 출판사, 출판일정보확인 상품정보탭클릭시해당도서에대한간략소개정보출력 반품 / 교환탭클릭시도서반품에대한안내글출력 장바구니담기장바구니담기버튼클릭시, 해당도서정보가장바구니리스트에입력 바로구매 주문하기 바로구매버튼클릭시, 해당도서를구매하는구매페이지로바로이동 구매페이지이동시, 사용자가주문한상품에대한확인을하기위한주문상품확인테이블출력 도서이미지, 도서명, 작가, 주문금액, 주문금액합계에대한정보 주문자정보입력 ( 주문자이름, 연락처, 이메일은로그인한사용자정보의값을호출 ) 배송방법 ( 일반배송, 편의점배송, 해외배송 ), 받으실분, 연락처, 우편번호, 주소, 상세주소, 배송메시지에대한입력 금액지불방법선택, 카드사선택, 할부기간선택 총주문금액합계확인후, 결제버튼클릭시결제완료, 결제완료시메인페이지로이동 마이페이지구매내역에서주문정보확인, 해당상품명클릭시, 주문에대한상세정보및배송상태정보확인가능 사용자의도서결제시, 판매량이도서테이블에저장되며누적되어판매량이많은도서순으로도서리스트출력 Nav-bar 형태로구성해당대분류선택시중분류항목들드롭다운형태로출력 소분류도서리스트클릭시, 도서번호순으로출력 베스트셀러도서리스트페이지 신규도서 통합검색 도서리스트페이지 도서명검색도서리스트페이지 저자명검색도서리스트페이지 출판사검색도서리스트페이지 도서리스트에출력된도서이미지, 도서명, 출판사도서가격확인가능 도서리스트에출력된도서에해당하는장바구니버튼클릭시, 해당도서정보가장바구니리스트에입력도서리스트에출력된도서에해당하는바로구매버튼클릭시, 해당도서구매페이지로이동 데이터베이스에저장된도서중에서출간일이가장최신순으로도서리스트출력 도서리스트에출력된도서이미지, 도서명, 출판사도서가격확인가능 도서리스트에출력된도서에해당하는장바구니버튼클릭시, 해당도서정보가장바구니리스트에입력도서리스트에출력된도서에해당하는바로구매버튼클릭시, 해당도서구매페이지로이동 해당저자명키워드에해당하는도서리스트출력 해당도서명키워드에해당하는도서리스트출력 해당출판사명키워드에해당하는도서리스트출력
1.3 요구사항정의 8 요구사항정의관리자 1depth 2depth 3depth 4depth 5depth 기능내용비고 로그인로그인페이지관리자계정에대한아이디, 비밀번호입력시메인페이지로이동 주문관리 최근등록된주문에대한정보를메인페이지에출력 메인페이지 게시판리스트 문의관리 최근등록된문의에대한정보를메인페이지에출력 배너관리 최근등록된배너에대한정보를메인페이지에출력 전체회원조회회원아이디, 이름, 핸드폰번호, 생년월일리스트출력가입자들관리에대한컨트롤페이지 회원관리 회원검색회원리스트페이지회원등록회원정보수정회원삭제 이름, 아이디, 핸드폰번호에해당하는키워드입력시, 해당회원리스트출력 아이디 ( 중복확인팝업 ), 이름, 비밀번호, 비밀번호확인, 생년월일, 우편번호, 주소, 상세주소, 이메일, 이메일수신여부, 휴대폰번호, SMS 수신여부필수입력 아이디, 이름값수정불가나머지필수입력값에대해서회원정보수정기능 회원리스트에서회원번호에해당하는회원삭제 메인 도서관리 배너관리 도서리스트페이지 배너리스트페이지 전체도서조회도서이미지, 도서명, 출판사, 저자, 출간일리스트출력도서관리에대한컨트롤페이지 도서검색 도서등록 도서수정 도서삭제 전체배너조회 도서명, 출판사, 저자에해당하는키워드입력시, 해당도서리스트출력 도서명, 저자, 출판사, 출판일, 도서가격, 도서이미지첨부파일, 도서분류 ( 카테고리 ) 입력이미지파일만업로드가능, 도서이미지규격설정 도서등록에대한모든값모두수정가능 도서이미지수정시, 이미지수정체크박스버튼을눌러야파일첨부기능활성화 도서리스트에서도서번호에해당하는도서삭제 메인페이지캐러셀에출력될배너정보에대한썸네일, 배너내용, 배너에해당하는도서명리스트출력 배너등록배너제목, 배너내용, 배너이미지, 배너를통해보여질해당도서선택후등록이미지파일만업로드가능, 배너이미지규격설정 배너수정 배너등록에대한모든값수정가능 배너이미지수정시, 이미지수정체크박스버튼을눌러야파일첨부기능활성화 배너삭제 배너리스트에서배너번호에해당하는배너삭제 전체문의조회 문의일련번호, 문의일자, 문의유형, 제목, 작성자, 답변여부에대한리스트출력 문의번호에해당하는제목클릭시, 사용자가문의한정보확인 1:1 문의관리 1:1 문의리스트페이지 문의답변등록 이름, 아이디, 이메일, 문의유형, 문의제목, 문의내용이불러와지며문의답변작성란을통해작성가능 문의답변완료시, 답변여부가 " 답변대기 " 상태에서 " 답변완료 " 로변경 사용자가마이페이지의문의내역에서답변여부확인가능 전체주문조회 주문일, 주문번호, 주문자, 결제방법, 주문가격, 주문상태리스트출력 주문관리 주문리스트페이지 주문검색주문변경 배송상태정보변경 주문자, 주문상태에해당하는키워드입력시해당주문리스트출력 주문번호클릭시, 해당주문에대한상세내역페이지로이동하며, 관리자는상품의배송상태정보를변경 사용자는마이페이지주문내역리스트에서상세주문내역페이지를통해배송상태확인가능
2.1 개발환경 9 개발환경 운영체제소스코드작성도구웹서버데이터베이스형상관리도구 Window7, Window10 Sublime Text 3, Eclipse EE Neon Apache Tomcat v8.0 MySQL Server v5.7 GitHub FRONT END LANGUAGE FRAMEWORK HTML5, CSS3, Javascript Twitter Bootstrap3 BACK END LANGUAGE FRAMEWORK JAVA, JSP MVC MODEL2, MyBatis
2.2 작업일정 10 작업일정 1 주차 2 주차 3 주차 4 주차 5 주차 6 주차 7 주차 8 주차 9 주차 10 주차 11 주차 12 주차 팀구성 요구사항명세 프로젝트기획 데이터베이스설계 데이터베이스인터페이스설계및구현 프론트엔드프로그래밍 백엔드프로그래밍 테스트및디버그
2.3 시스템구조 11 시스템구조 웹표준 + HTML5 + CSS3 웹프로그래밍에서처리하는데이터를시각화하여브라우저를통해제공함 Web Programming 서블릿컨테이너를제공데이터베이스와연동하여자료제공 DATABASE System 자료의입력, 수정, 삭제, 조회
2.4 데이터베이스구성 12 데이터베이스구성 ERD 테이블명 member book banner inquiry cart order 테이블설명회원테이블도서테이블배너테이블문의테이블장바구니테이블주문테이블
2.5 테이블명세 13 테이블명세회원 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 id 회원번호 INT(11) NOT NULL PK AI 2 name 이름 VARCHAR(10) NOT NULL 3 user_id 아이디 VARCHAR(50) NOT NULL 4 user_pw 비밀번호 VARCHAR(255) NOT NULL 5 email 이메일 VARCHAR(150) NOT NULL 6 birthdate 생년월일 DATETIME NOT NULL 7 tel 전화번호 VARCHAR(13) NOT NULL 8 postcode 우편번호 CHAR(5) NOT NULL 9 addr1 주소 VARCHAR(150) NOT NULL 10 addr2 상세주소 VARCHAR(150) NOT NULL 11 is_email 이메일확인 CHAR(1) NOT NULL 12 is_sms SMS 확인 CHAR(1) NOT NULL
2.5 테이블명세 14 테이블명세도서 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 Id 도서번호 INT(11) NOT NULL PK AI 2 book_name 도서명 VARCHAR(255) NOT NULL 3 book_desc 저자 VARCHAR(50) NOT NULL 4 book_pub 출판사 VARCHAR(50) NOT NULL 5 book_pubdate 출간일 DATETIME NOT NULL 6 book_img 도서이미지 VARCHAR(255) NOT NULL 7 book_info 도서소개 TEXT NOT NULL 8 book_price 도서가격 INT(30) NOT NULL 9 book_cat1 대분류 VARCHAR(50) NOT NULL 10 book_cat2 중분류 VARCHAR(50) NOT NULL 11 book_cat3 소분류 VARCHAR(50) NOT NULL 12 book_count 판매량 INT(11) NOT NULL
2.5 테이블명세 15 테이블명세배너 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 id 배너번호 INT(11) NOT NULL PK AI 2 banner_name 배너이름 VARCHAR(50) NOT NULL 3 content 내용 TEXT NOT NULL 4 banner_img 배너이미지 VARCHAR(255) NOT NULL 5 book_id 도서번호 INT(11) NOT NULL FK
2.5 테이블명세 16 테이블명세문의 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 id 문의번호 INT(11) NOT NULL PK AI 2 user_id 아이디 VARCHAR(50) NOT NULL 3 inquiry_type 문의유형 VARCHAR(50) NOT NULL 4 name 이름 VARCHAR(50) NOT NULL 5 email 이메일 VARCHAR(50) NOT NULL 6 subject 제목 VARCHAR(50) NOT NULL 7 content 내용 TEXT NOT NULL 8 inquiry_status 답변상태 VARCHAR(50) NOT NULL 9 reg_date 등록일 DATETIME NOT NULL 10 comment 답변 TEXT NULL 11 member_id 회원번호 INT(11) NULL FK
2.5 테이블명세 17 테이블명세장바구니 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 id 장바구니번호 INT(11) NOT NULL PK AI 2 book_name 도서명 VARCHAR(255) NOT NULL 3 book_desc 저자 VARCHAR(50) NOT NULL 4 book_pub 출판사 VARCHAR(50) NOT NULL 5 book_pubdate 출간일 DATETIME NOT NULL 7 member_id 회원번호 INT(11) NULL FK 8 book_id 도서번호 INT(11) NULL FK
2.5 테이블명세 18 테이블명세주문 (1) 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 1 id 주문번호 INT(11) NOT NULL PK AI 2 order_date 주문날짜 DATETIME NOT NULL 3 goods_name 상품명 VARCHAR(50) NOT NULL 4 payment_type 결제유형 CHAR(1) NOT NULL 5 card 카드유형 VARCHAR(45) NULL 6 installment 할부유형 INT(11) NOT NULL 7 order_name 주문자명 VARCHAR(50) NOT NULL 8 order_tel 주문자번호 VARCHAR(45) NOT NULL 9 order_email 주문자이메일 VARCHAR(200) NOT NULL 10 order_status 주문상태 VARCHAR(50) NOT NULL 11 order_price 주문가격 INT(11) NOT NULL
2.5 테이블명세 19 테이블명세주문 (2) 번호물리적필드명논리적필드명데이터유형 NULL 키유형기타 12 delivery_type 배송방법 CHAR(1) NOT NULL 13 delivery_name 배송자명 VARCHAR(45) NOT NULL 14 delivery_tel 배송자전화번호 VARCHAR(45) NOT NULL 15 delivery_postcode 배송자우편번호 VARCHAR(45) NOT NULL 16 delivery_addr1 배송자주소 VARCHAR(150) NOT NULL 17 delivery_addr2 배송자상세주소 VARCHAR(150) NOT NULL 18 delivery_message 배송메시지 VARCHAR(200) NULL 19 member_id 회원번호 INT(11) NULL FK 20 book_id 도서번호 INT(11) NULL FK 21 cart_id 장바구니번호 INT(11) NULL FK
3. 기술상세 - 사용자 20 기술상세사용자메인 Twitter Bootstrap3 프레임워크를이용하여반응형웹디자인웹페이지구성
3. 기술상세 - 사용자 21 기술상세사용자메인도서리스트 1 Description 1. 메인페이지하단영역에도서판매량기준으로베스트셀러상위 10 개항목의도서를갤러리리스트형식으로나열 2 2. 출간일순기준으로신규도서상위 10 개항목의도서를갤러리리스트형식으로나열
3. 기술상세 - 사용자 22 기술상세사용자메인도서검색 1 Description 1. 통합검색기능도서명, 도서저자, 출판사에해당하는키워드입력 2 2. 해당키워드가포함된도서리스트출력
3. 기술상세 - 사용자 23 기술상세사용자메인 메인페이지에도서리스트호출쿼리문 (BookMapper) 도서정보를호출하는 Main.java Controller
3. 기술상세 - 사용자 24 기술상세사용자메인 배너이미지정보호출 Main.java Controller 도서이미지정보호출 Main.java Controller Controller 에서받은데이터를보여주는 main.jsp View
3. 기술상세 - 사용자 25 기술상세사용자도서카테고리분류 1. Description 1. 도서분류 ( 대분류 ) 항목 1 2 4 2. 도서분류 ( 중분류 ) 항목 3. 도서분류 ( 소분류 ) 항목 4. 각분류항목에해당하는도서리스트출력 3 5 6 5. 장바구니버튼클릭시해당도서상품정보가장바구니리스트에출력 6. 바로구매버튼클릭시해당도서상품에대한구매페이지이동
3. 기술상세 - 사용자 26 기술상세사용자도서카테고리분류 도서카테고리분류쿼리문 (BookMapper) 도서카테고리별사이드메뉴 booklist.jsp View 도서카테고리별도서목록 BookList.java Controller
3. 기술상세 - 사용자 27 기술상세사용자도서상세정보 Description 1 1. 도서상세정보페이지 도서이미지 - 도서제목 - 도서저자 - 판매가격 - 출판사 - 도서출판일 - 소개에대한상세정보 2 2. 탭을이용하여도서에대한소개영역, 도서반품 / 교환에대한안내영역구분
3. 기술상세 - 사용자 28 기술상세사용자마이페이지내역 Description 1 1. 최근구매한상품에대한정보출력 주문번호 - 주문일자 - 상품명 - 주문금액 - 주문리스트 2 2. 상품명클릭시, 해당상품상세주문내역페이지이동 3 4 3. 1:1 문의에대한정보출력 문의날짜 - 문의유형 - 제목 - 답변여부 - 문의리스트 4. 제목클릭시, 해당상세문의내역페이지이동
3. 기술상세 - 사용자 29 기술상세사용자마이페이지내역 문의내역주문내역호출 mypage.jsp View 마이페이지문의및주문내역호출 Mypage.java Controller
3. 기술상세 - 사용자 30 기술상세사용자장바구니 Description 1. 로그인된회원번호를기준으로장바구니에저장된도서정보출력 2. 제목클릭시, 해당도서상세페이지이동 1 3. 장바구니에담은도서상품정보삭제 2 3 4. 장바구니에담긴도서총금액정보표시 - 총수량 - 상품정가 - 상품할인 - 주문금액합계 4 5. 해당상품들에대한구매페이지이동 5
3. 기술상세 - 사용자 31 기술상세사용자장바구니 장바구니정보리스트를호출 CartMain.java Controller 장바구니에도서정보, 총금액정보저장및리스트호출쿼리문 (CartMapper)
3. 기술상세 - 사용자 32 기술상세사용자주문 1 Description 1. 도서번호를통해해당상품의도서정보를주문페이지로호출 2 2. 수신자에대한정보를새로입력하고이값들을주문테이블에저장 3 3. 결제총액정보출력및버튼클릭시, 해당주문에대한요청이완료
3. 기술상세 - 사용자 33 기술상세사용자주문 바로구매및장바구니담기구매정보저장쿼리문 (OrderMapper) 주문페이지에서도서정보데이터를호출 order_join.jsp View
3. 기술상세 - 사용자 34 기술상세사용자주문 / 결제내역 1. Description 1. 주문에대한상세정보를출력및사용자는관리자에의해주문정보에서배송상태의값이바뀌는것을확인 1 2. 주문상태가 배송대기 상태일때만주문한상품취소가능 2
3. 기술상세 - 사용자 35 기술상세사용자주문 / 결제 문의내역데이터호출 order_complete.jsp View 주문번호기준으로주문상세내역 OrderComplete.java Controller
4. 기술상세 - 관리자 36 기술상세관리자메인 Description 관리자계정을이용하여사용자페이지에대한회원관리, 도서관리, 주문관리, 배너관리, 1:1 문의관리영역의컨트롤페이지 1 1. - 주문관리리스트 - 배너관리리스트 - 문의관리리스트
4. 기술상세 - 관리자 37 기술상세관리자메인 관리자계정인경우관리자페이지이용 AdMain.java Controller 각영역에대한최근게시글출력 ad_main.jsp View 페이지
4. 기술상세 - 관리자 38 기술상세관리자회원리스트 Description 관리자권한을이용하여원활한회원관리를위한회원검색, 등록, 수정, 삭제컨트롤페이지 1. 키워드검색시, 키워드를포함하는리스트출력 - 회원이름 - 회원아이디 - 핸드폰번호 1 2 3 4 5 2. 회원등록페이지버튼 3. 회원삭제페이지버튼 4. 회원정보를포함하는리스트 5. 해당회원에대한수정 / 삭제페이지이동
4. 기술상세 - 관리자 39 기술상세관리자회원리스트 회원관리에대한회원등록, 회원정보수정, 회원삭제, 회원리스트조회, 회원검색등의기본적인회원컨트롤쿼리문 (MemberMapper)
4. 기술상세 - 관리자 40 기술상세관리자문의내용답변 Description 1 1. 사용자가작성한 1:1 문의글조회값호출 - 아이디 - 이름 - 이메일 - 상담유형 - 제목 - 문의내용 2. 관리자는해당글에대한답변이가능하고, 작성한답변은사용자의 마이페이지 문의내역 에서확인가능 3. 답변확인버튼클릭시, 사용자의문의답변상태가 답변완료 로변경 2 3
4. 기술상세 - 관리자 41 기술상세관리자문의내용답변 문의정보수정쿼리문 (InquiryMapper) 문의번호에의한문의내역수정 AdInquiryEdit.java Controller 문의내역수정정보호출 ad_inquiry_edit.jsp View 페이지
4. 기술상세 - 관리자 42 기술상세관리자주문정보수정 Description 사용자가상품에대한결제완료를한경우해당주문에대한정보가주문관리리스트에출력되며주문번호클릭시, 해당주문에대한상세내역확인가능 1. 배송상태에대한정보를변경하여사용자에게상품의배송상태정보를제공 마이페이지 구매내역 에서주문상세정보확인 1
4. 기술상세 - 관리자 43 기술상세관리자주문정보수정 주문정보수정쿼리문 (OrderMapper) 주문리스트의값을호출받아수정 AdOrderEdit.java Controller 주문정보수정영역 ad_order_edit.jsp View 페이지
2.3 시스템구조 44 시연
감사합니다