Skip to content

Spring을 이용한 스마트폰 쇼핑몰 웹 프로젝트

Notifications You must be signed in to change notification settings

mangdo/ShoppingMall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ShoppingMallProject

Spring Framework를 사용한 쇼핑몰 웹 프로젝트입니다.
http://54.180.88.148:8080/ 로 접속하실 수 있습니다. (2021.07.03 AWS 비용 문제로 서버를 내렸습니다)


1. 제작 기간 & 참여 인원

  • 2020년 12월 20일 ~ 2021년 4월 6일
  • 2인 1조 팀 프로젝트

2. 사용기술

Back-end

  • Java 8
  • Spring Framework 5.0.2
  • Maven 2.5.1
  • MyBatis 3.4.1
  • MySQL
  • Spring Security 5.0.6

Front-end

  • JQuery 3.1.1
  • Bootstrap 템플릿 Subas을 수정하여 사용

deploy

  • AWS EC2 (Amazon linux 2)
  • AWS RDS (MySQL)
  • AWS S3

3. ERD 설계


4. 시연 영상

https://youtu.be/XGOT1Af8L8g


5. 핵심 기능

[ 회원 관리 ]

  • 회원가입

    회원가입 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 회원 가입을 할 수 있습니다.
    : 로그인 이후, 회원 정보 수정을 할 수 있습니다.

    [ 상세 구조 ]

  • 로그인

    로그인 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : Spring Security를 사용하여 로그인을 할 수 있습니다.
    : Spring Security Handler를 이용하여 로그인 성공, 실패, 접근제한을 처리합니다.

    [ 상세 구조 ]

    • AuthenticaionProvider
      : 실제 인증 작업을 진행합니다. 사용자가 인증 요청한 정보와 DB의 사용자 정보가 일치하는지를 확인합니다.

    • PasswordEncoder
      : 패스워드를 암호화합니다.
      : 암호화되지 않은 실제 패스워드를 저장하는 일은 위험하기 때문에 암호화된 패스워드로 저장하고, 사용자가 패스워드를 입력하면 이를 암호화해서 저장된 패스워드와 비교합니다.

    • BCyptPasswordEncoder
      : PasswordEncoder구현한 클래스중 하나입니다. 해시 함수로 특정 문자열을 암호화하기 때문에 암호화를 한 후에, 다시 원문으로 돌리지 못합니다.

    • CustomUserDetailsService
      : CustomUserDetailsService은 UserDetailsService를 구현하여 DB의 사용자 정보를 조회합니다.
      : 유일한 메소드인 loadUserByUsername()는 UserDetails를 상속받아 만든 CustomUser를 반환합니다.

    • CustomUser
      : CustomUser는 조회한 사용자 정보를 담고있습니다.
      : Spring Security에서 제공하고 있는 UserDetails를 구현한 여러 클래스 중에서 User클래스를 상속받았습니다.

    • security-context.xml
      : security-context.xml은 Spring Security와 관련된 설정을 담고 있습니다.
      : AuthenticationSuccessHandler를 상속받아 로그인 성공 로직을 처리합니다.
      : AuthenticationFailureHandler를 상속받아 로그인 실패 로직을 처리합니다. 로그인의 실패 원인을 알려줍니다.
      : AccessDeniedHandler를 상속받아 권한이 없는 페이지에 대하여 접근 제한 로직을 처리합니다.

    • MemberMapper
      : MemberMapper.java - MemberMapper.xml의 구조를 가집니다.


[ 상품 관리 ]

  • 상품의 CRUD

    상품 CRUD 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 상품은 메인 이미지가 필수이며, 서브 이미지도 등록할 수 있습니다.
    : 관리자만이 게시물을 등록, 수정, 삭제할 수 있으며, 누구나 조회할 수 있습니다.
    : 상품은 통신사, 브랜드, 가격대별로 카테고리를 지정하거나 검색을 통하여 조회할 수 있습니다.
    : 상품은 카카오톡 공유하기 기능이 가능합니다. (kakao Javascript SDK이용)

    [ 상세 구조 ]

  • 리뷰와 답글의 CRUD

    리뷰와 답글의 CRUD 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 제품을 구매한 회원은 리뷰를 등록, 수정, 삭제할 수 있습니다.
    : 관리자는 리뷰에 대한 답글을 등록, 수정, 삭제할 수 있습니다.
    : 리뷰와 답글에 대한 조회는 제품의 리뷰 탭 에서 누구나 가능합니다.
    : 또는 MyReviews 탭에서 자신의 리뷰를 확인할 수 있습니다.

    [ 상세 구조 ]


[ 상품 구매 절차 ]

  • 좋아요

    좋아요 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 회원은 상품에 대한 좋아요를 눌러 WishList에 저장할 수 있습니다.
    : WishList에서 좋아요를 취소할 수도 있습니다.

    [ 상세 구조 ]

  • 장바구니

    장바구니 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 회원은 원하는 상품의 수량과 색을 지정하여 장바구니에 저장할 수 있습니다.
    : 장바구니에서 담았던 상품을 삭제할 수도 있습니다.
    : 쿠폰을 적용할 수 있습니다.
    : 쿠폰을 적용한 최종 결제 금액을 알려줍니다.

    [ 상세 구조 ]

  • 쿠폰의 등록과 조회

    쿠폰의 등록과 조회 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 회원은 쿠폰을 등록할 수 있습니다.
    : 등록한 쿠폰을 MyCoupon에서 조회할 수 있습니다.

    [ 상세 구조 ]

  • 구매

    구매 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 카카오페이를 이용하여 상품을 결제할 수 있습니다.
    : 장바구니에 있는 여러 상품들을 함께 주문할 수 있습니다.

    [ 상세 구조 ]

  • 구매 내역 조회

    구매 내역 조회 설명 펼치기:pushpin:

    [ 기능 설명 ] : 구매한 제품은 MyPurchase 에서 확인할 수 있습니다.
    : MyPurchase에서 주문 번호를 클릭하여 주문 정보를 확인할 수 있습니다.

    [ 상세 구조 ]


[ 홈페이지 관리 ]

  • 공지의 CRUD

    공지의 CRUD 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 관리자는 공지를 등록, 수정, 삭제할 수 있고 누구나 조회할 수 있습니다.
    : 공지는 이미지를 등록할 수 있습니다.

    [ 상세 구조 ]

  • 문의 메일 전송

    문의 메일 설명 펼치기:pushpin:

    [ 기능 설명 ]
    : 누구나 문의 메일을 보낼 수 있습니다.

    [ 상세 구조 ]

    • servlet-context
      : Spring Framework가 제공하는 JavaMailSender 인터페이스의 구현체인 JavaMailSenderImpl클래스를 사용하여 빈을 등록합니다.
      : * servlet-context 의 구글 비밀번호는 실제와 다릅니다. 때문에 코드를 그대로 실행할시 동작하지 않을 수 있습니다.

    • MailSendController.java
      : 단순한 텍스트만 전송하기 때문에 SimpleMailMessage을 이용하여 메일을 전송합니다.

About

Spring을 이용한 스마트폰 쇼핑몰 웹 프로젝트

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •