SlideShare a Scribd company logo
https://github.com/wnsmlk9494/KCJcinema
INDEX
Kcjcinema
개발되는 Java 코드의 경로
Spring 설정 파일의 경로
JSP 파일의 경로, 공통부분 <include>사용
Maven의 설정 파일
Spring MVC 컨트롤러 설정
XML 네임 스페이스. MyBatis-Spring에서 XML Mapper 인식
디자인 및 자바스크립트 파일의 경로
Web 환경 설정 파일
Log 파일
MyBatis 설정 파일
XML Mapper 파일의 경로
*
• CSS3
• HTML5, JSP
• JavaScript
• jQuery 3.4.0
*
• Spring Framework 4.2.4
• Java JDK 1.8_201
• Tomcat 8.0
• MyBatis 3.2.8
• MySQL 5.7.21
• Maven 3.3.9
• Log4j 1.16
BOX_OFFICE / SHOWING_MOVIE / SOON_MOVIE
회원가입 나의 예매내역 영화 상세보기 영화 예매하기
예매하기_상영정보 선택회원가입_동의
회원가입_입력
KCJ CINEMA
로그인 / 로그아웃
아이디 / 패스워드 찾기
패스워드 변경 예매하기_좌석 선택
예매하기_예매 완료회원가입_완료
* BOX_OFFICE
• 영화 평점 순 조회 (현재 상영작, 상영 예정작)
• 현재 상영작 : 평점 및 별점 표시
• 상영 예정작 : 현재 날짜를 기준, D-day 표시
* SHOWING_MOVIE
• 영화 이름 순 조회 (현재 상영작)
• 현재 상영작 : 평점 및 별점 표시
* SOON_MOVIE
• 영화 이름 순 조회 (상영 예정작)
• 상영 예정작 : 상영날짜 및 D-day 표시
* 회원 정보 중복 검사, 아이디 중복 검사
• 입력된 이름과 휴대전화가 이미 가입되어 있는가?
• SQL문 : EXIST 사용
* 비밀번호를 암호화 하여 서버에 전송 및 저장
• RSA, SHA256 암호화
* 회원가입 유효성 검사
• 이름 : 2~20자 이하로 한글, 영문만 가능
• 아이디 : 5~10자로 영문, 숫자만 가능
• 패스워드 : 10~20자로 영문, 숫자, 특수문자 무조건 포함
• 생년월일 : 숫자만 가능, 8자리 중 년, 월, 일을 구분하여 각각 유효성 검사
• 휴대전화 : 10자리 이상으로 숫자만 가능
• 이메일 : 이메일 형식에 따른 유효성 검사
*
- RSA –
① 서버 : <공개키, 비밀키> 생성 및 JSP에 <공개키>전송
② 클라이언트 : JS에서 패스워드를 공개키로 암호화, 서버에 전송
③ 서버 : <비밀키>로 패스워드 복호화
- SHA-256 –
① 서버 : SHA-256을 위한 salt 생성 및 salt로 패스워드 암호화
② 서버 : Salt와 암호화된 패스워드를 저장
1
- 필요 라이브러리 –
• RSA (RSAutil.java, jsbn.js, prng4.js, rng.js, rsa.js)
• SHA-256 (SHA256util.java)
*키쌍 생성
*키 전송
*키 수신
2
3
4
5
*공개키 암호화
*비밀키 복호화
*sha-256 암호화
* 회원 정보 중복 검사, 아이디 중복 검사
* EXIST 조건에 해당하는 값이 있다면 1, 없다면 0을 반환
* 1이라면 가입 불가, 0이면 가입 가능
* 입력 유효성 검사
1. 로그인 팝업 Show
(loginFormPop.jsp)
2. 로그인
✓ RSA+SHA256 암호화
✓ Salt 조회 및 암호화 비교
✓ 세션 정보 set()
3. 로그아웃
✓ 세션정보 invalidate()
*
*
*
* 비밀번호를 암호화하여 서버에 전송 및 저장
• RSA, SHA256 암호화
*
*
* Ajax를 이용한 페이징 처리
- 클라이언트 Ajax –
① Page : 기본값을 1페이지로 ‘더보기+’클릭 시 페이지 수 1씩 증가
② listCount : 페이지 당 게시글 6개로 고정
③ page, listCount 서버에 전송
- 서버 –
① totalCount = SQL_COUNT(*)
② pageCount = 더보기+’ 형식의 특성상 1로 고정
③ totalPage = totalCount / listCount
나머지가 0이 아니라면 totalPage+1
page가 totalPage보다 커진다면, page=totalPage
④ startPage = ((page-1)/pageCount) * pageCount + 1;
⑤ endPage = stargPage + pageCount – 1;
⑥ startCount = (page-1) * listCount
⑦ endCount = page * listCount
⑧ SQL_LIMIT #{startCount} #{totalCount} 게시물 조회
⑨ totalPage, endPage, 조회된 게시물 클라이언트에 전송
1
1. 서버에 보일 페이지 번호 및 페이지 당 게시물 수 전송
2
3
2. 페이징 처리에 필요한 정보를 ‘return_MyMovieList_Json.jsp’를 통해 Ajax 응답
3. 응답받은 정보로 리스트 구현
* 영화 상세보기
*
* Ajax를 이용한 페이징 처리
- 클라이언트 Ajax –
① Page : 기본값을 1페이지로 ‘더보기+’클릭 시 페이지 수 1씩 증가
② listCount : 페이지 당 댓글 6개로 고정
③ page, listCount 서버에 전송
- 서버 –
① totalCount = SQL_COUNT(*)
② pageCount = 10
③ totalPage = totalCount / listCount
- 나머지가 0이 아니라면, totalPage+1
- page가 totalPage보다 커진다면, page=totalPage
④ startPage = ((page-1)/pageCount) * pageCount + 1;
⑤ endPage = stargPage + pageCount – 1;
⑥ startCount = (page-1) * listCount
⑦ endCount = page * listCount
⑧ SQL_LIMIT #{startCount} #{totalCount} 게시물 조회
⑨ 페이징 정보 및 조회된 게시물 클라이언트에 전송
2
3
1
4
1.
2.
3.
4.
* 영화 예매하기
* Step1. 극장 상영 위치 및 시간 선택
* Step2. 극장 좌석 선택
* Step3. 예매 정보 확인 및 결제 완료
티켓 오늘 날짜 영화관 (마지막 예매번호 + 1)
*
*
https://github.com/wnsmlk9494/KCJcinema

More Related Content

PPT
Meteor를 통해서 개발하는 웹어플리케이션 서비스
WebFrameworks
 
PDF
Mongo db intro &amp; tips
InBum Kim
 
KEY
Meteor 0.3.6 Preview
Juntai Park
 
PPTX
웹 크롤링 (Web scraping) 의 이해
2minchul
 
PPT
구글의 분산스토리지
juhyun
 
PDF
nodejs websocket & SOCKET.IO
Mungyu Choi
 
PDF
Sencha seo
강식 최
 
PDF
20120525 졸업작품 발표
SeonMan Kim
 
Meteor를 통해서 개발하는 웹어플리케이션 서비스
WebFrameworks
 
Mongo db intro &amp; tips
InBum Kim
 
Meteor 0.3.6 Preview
Juntai Park
 
웹 크롤링 (Web scraping) 의 이해
2minchul
 
구글의 분산스토리지
juhyun
 
nodejs websocket & SOCKET.IO
Mungyu Choi
 
Sencha seo
강식 최
 
20120525 졸업작품 발표
SeonMan Kim
 

What's hot (20)

PDF
Fiddler 피들러에 대해 알아보자
용진 조
 
PPTX
가용성을 고려한 웹 서비스 인프라 설계
Herren
 
PPTX
Web Socket
ymtech
 
PPTX
웹소켓 (WebSocket)
jeongseokoh
 
PPTX
피들러 신명대
ETRIBE_STG
 
PDF
Mongo db 2.x to 3.x
InBum Kim
 
PDF
Node.js 와 Mongo DB로 만든 앱 Azure에 배포하기
은지 김
 
PPTX
Spring mvc
ksain
 
PDF
Fiddler: 웹 디버깅 프록시
Taegon Kim
 
PDF
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
 
PDF
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
흥배 최
 
PPTX
20170609 tech day_4th-nginx(lb)-이재훈
ymtech
 
PDF
04 자바 네트워크
arahansa yong
 
PDF
킴스큐Rb 설치
Gitaek kwon
 
PPTX
댓글 플러그인 아포가토
Goonoo Kim
 
PDF
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
DK Lee
 
PDF
파이어베이스 네이버 밋업발표
NAVER D2
 
PDF
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
Goonoo Kim
 
PDF
React를 이용하여 멀티플랫폼에서 개발하기
WebFrameworks
 
PDF
파이썬을 활용한 웹 크롤링
HWANGTAEYONG
 
Fiddler 피들러에 대해 알아보자
용진 조
 
가용성을 고려한 웹 서비스 인프라 설계
Herren
 
Web Socket
ymtech
 
웹소켓 (WebSocket)
jeongseokoh
 
피들러 신명대
ETRIBE_STG
 
Mongo db 2.x to 3.x
InBum Kim
 
Node.js 와 Mongo DB로 만든 앱 Azure에 배포하기
은지 김
 
Spring mvc
ksain
 
Fiddler: 웹 디버깅 프록시
Taegon Kim
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
흥배 최
 
20170609 tech day_4th-nginx(lb)-이재훈
ymtech
 
04 자바 네트워크
arahansa yong
 
킴스큐Rb 설치
Gitaek kwon
 
댓글 플러그인 아포가토
Goonoo Kim
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
DK Lee
 
파이어베이스 네이버 밋업발표
NAVER D2
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
Goonoo Kim
 
React를 이용하여 멀티플랫폼에서 개발하기
WebFrameworks
 
파이썬을 활용한 웹 크롤링
HWANGTAEYONG
 
Ad

Similar to Kcjcinema (20)

PDF
SJBoard Project Portfolio
JuyoungKang7
 
PPTX
종합설계프로젝트(1960052 추영호).pptx
choo7913
 
PPTX
Team Portfolio
ssuser25d7ff
 
PPSX
스프링 프레임워크로 블로그 개발하기
라한사 아
 
PDF
JSP 프로그래밍 #01 웹 프로그래밍
Myungjin Lee
 
PPTX
Rainbow Movie
Hee Tae Kim
 
PDF
신입 웹 개발자 포트폴리오 / 댓글 게시판
hyeonjae Cheon
 
PPTX
Html5
상길 안
 
PPTX
Nexacro
HyungKuIm
 
PDF
JSP 빠르게 시작하기
Park JoongSoo
 
KEY
vine webdev
dcfc1997
 
PPTX
2조 프로젝트 보고서 김동현
kdh24
 
PPTX
Siwoo&Japan(private blog)
Pak Siwoo
 
PPTX
Delivrary intro
ssuserbe6f89
 
PDF
화성에서 온 개발자, 금성에서 온 기획자
Yongho Ha
 
PPSX
스프링시큐리티와 소셜연습 이해를 위한 글
라한사 아
 
PDF
웹개발자가 알아야할 기술
jaypi Ko
 
PDF
아라한사의 스프링 시큐리티 정리
라한사 아
 
PDF
Portfolio
ByungHak Jang
 
PPTX
[웹기반시스템 3조]e govframe 중간고사 제출 정리
구 봉
 
SJBoard Project Portfolio
JuyoungKang7
 
종합설계프로젝트(1960052 추영호).pptx
choo7913
 
Team Portfolio
ssuser25d7ff
 
스프링 프레임워크로 블로그 개발하기
라한사 아
 
JSP 프로그래밍 #01 웹 프로그래밍
Myungjin Lee
 
Rainbow Movie
Hee Tae Kim
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
hyeonjae Cheon
 
Html5
상길 안
 
Nexacro
HyungKuIm
 
JSP 빠르게 시작하기
Park JoongSoo
 
vine webdev
dcfc1997
 
2조 프로젝트 보고서 김동현
kdh24
 
Siwoo&Japan(private blog)
Pak Siwoo
 
Delivrary intro
ssuserbe6f89
 
화성에서 온 개발자, 금성에서 온 기획자
Yongho Ha
 
스프링시큐리티와 소셜연습 이해를 위한 글
라한사 아
 
웹개발자가 알아야할 기술
jaypi Ko
 
아라한사의 스프링 시큐리티 정리
라한사 아
 
Portfolio
ByungHak Jang
 
[웹기반시스템 3조]e govframe 중간고사 제출 정리
구 봉
 
Ad

Kcjcinema

  • 4. 개발되는 Java 코드의 경로 Spring 설정 파일의 경로 JSP 파일의 경로, 공통부분 <include>사용 Maven의 설정 파일 Spring MVC 컨트롤러 설정 XML 네임 스페이스. MyBatis-Spring에서 XML Mapper 인식 디자인 및 자바스크립트 파일의 경로 Web 환경 설정 파일 Log 파일 MyBatis 설정 파일 XML Mapper 파일의 경로 * • CSS3 • HTML5, JSP • JavaScript • jQuery 3.4.0 * • Spring Framework 4.2.4 • Java JDK 1.8_201 • Tomcat 8.0 • MyBatis 3.2.8 • MySQL 5.7.21 • Maven 3.3.9 • Log4j 1.16
  • 5. BOX_OFFICE / SHOWING_MOVIE / SOON_MOVIE 회원가입 나의 예매내역 영화 상세보기 영화 예매하기 예매하기_상영정보 선택회원가입_동의 회원가입_입력 KCJ CINEMA 로그인 / 로그아웃 아이디 / 패스워드 찾기 패스워드 변경 예매하기_좌석 선택 예매하기_예매 완료회원가입_완료
  • 6. * BOX_OFFICE • 영화 평점 순 조회 (현재 상영작, 상영 예정작) • 현재 상영작 : 평점 및 별점 표시 • 상영 예정작 : 현재 날짜를 기준, D-day 표시 * SHOWING_MOVIE • 영화 이름 순 조회 (현재 상영작) • 현재 상영작 : 평점 및 별점 표시 * SOON_MOVIE • 영화 이름 순 조회 (상영 예정작) • 상영 예정작 : 상영날짜 및 D-day 표시
  • 7. * 회원 정보 중복 검사, 아이디 중복 검사 • 입력된 이름과 휴대전화가 이미 가입되어 있는가? • SQL문 : EXIST 사용 * 비밀번호를 암호화 하여 서버에 전송 및 저장 • RSA, SHA256 암호화 * 회원가입 유효성 검사 • 이름 : 2~20자 이하로 한글, 영문만 가능 • 아이디 : 5~10자로 영문, 숫자만 가능 • 패스워드 : 10~20자로 영문, 숫자, 특수문자 무조건 포함 • 생년월일 : 숫자만 가능, 8자리 중 년, 월, 일을 구분하여 각각 유효성 검사 • 휴대전화 : 10자리 이상으로 숫자만 가능 • 이메일 : 이메일 형식에 따른 유효성 검사
  • 8. * - RSA – ① 서버 : <공개키, 비밀키> 생성 및 JSP에 <공개키>전송 ② 클라이언트 : JS에서 패스워드를 공개키로 암호화, 서버에 전송 ③ 서버 : <비밀키>로 패스워드 복호화 - SHA-256 – ① 서버 : SHA-256을 위한 salt 생성 및 salt로 패스워드 암호화 ② 서버 : Salt와 암호화된 패스워드를 저장 1 - 필요 라이브러리 – • RSA (RSAutil.java, jsbn.js, prng4.js, rng.js, rsa.js) • SHA-256 (SHA256util.java) *키쌍 생성 *키 전송 *키 수신
  • 10. * 회원 정보 중복 검사, 아이디 중복 검사 * EXIST 조건에 해당하는 값이 있다면 1, 없다면 0을 반환 * 1이라면 가입 불가, 0이면 가입 가능
  • 12. 1. 로그인 팝업 Show (loginFormPop.jsp) 2. 로그인 ✓ RSA+SHA256 암호화 ✓ Salt 조회 및 암호화 비교 ✓ 세션 정보 set() 3. 로그아웃 ✓ 세션정보 invalidate()
  • 13. * * *
  • 14. * 비밀번호를 암호화하여 서버에 전송 및 저장 • RSA, SHA256 암호화
  • 15. * *
  • 16. * Ajax를 이용한 페이징 처리 - 클라이언트 Ajax – ① Page : 기본값을 1페이지로 ‘더보기+’클릭 시 페이지 수 1씩 증가 ② listCount : 페이지 당 게시글 6개로 고정 ③ page, listCount 서버에 전송 - 서버 – ① totalCount = SQL_COUNT(*) ② pageCount = 더보기+’ 형식의 특성상 1로 고정 ③ totalPage = totalCount / listCount 나머지가 0이 아니라면 totalPage+1 page가 totalPage보다 커진다면, page=totalPage ④ startPage = ((page-1)/pageCount) * pageCount + 1; ⑤ endPage = stargPage + pageCount – 1; ⑥ startCount = (page-1) * listCount ⑦ endCount = page * listCount ⑧ SQL_LIMIT #{startCount} #{totalCount} 게시물 조회 ⑨ totalPage, endPage, 조회된 게시물 클라이언트에 전송 1 1. 서버에 보일 페이지 번호 및 페이지 당 게시물 수 전송
  • 17. 2 3 2. 페이징 처리에 필요한 정보를 ‘return_MyMovieList_Json.jsp’를 통해 Ajax 응답 3. 응답받은 정보로 리스트 구현
  • 19. * Ajax를 이용한 페이징 처리 - 클라이언트 Ajax – ① Page : 기본값을 1페이지로 ‘더보기+’클릭 시 페이지 수 1씩 증가 ② listCount : 페이지 당 댓글 6개로 고정 ③ page, listCount 서버에 전송 - 서버 – ① totalCount = SQL_COUNT(*) ② pageCount = 10 ③ totalPage = totalCount / listCount - 나머지가 0이 아니라면, totalPage+1 - page가 totalPage보다 커진다면, page=totalPage ④ startPage = ((page-1)/pageCount) * pageCount + 1; ⑤ endPage = stargPage + pageCount – 1; ⑥ startCount = (page-1) * listCount ⑦ endCount = page * listCount ⑧ SQL_LIMIT #{startCount} #{totalCount} 게시물 조회 ⑨ 페이징 정보 및 조회된 게시물 클라이언트에 전송
  • 21. * 영화 예매하기 * Step1. 극장 상영 위치 및 시간 선택
  • 22. * Step2. 극장 좌석 선택
  • 23. * Step3. 예매 정보 확인 및 결제 완료 티켓 오늘 날짜 영화관 (마지막 예매번호 + 1)
  • 24. * *