스프링 부트를 활용한 간단한 쇼핑몰 프로젝트입니다.
24.04. ~ 24.05
1인 프로젝트
- IntelliJ
- DBeaver
- Spring boot
- JAVA 17
- Spring Boot Security
- JPA
- Javascript
- Thymeleaf
- Gradle
- Mysql
- Azure
- S3
- Elastic Beanstalk
-
Spring Boot 선택 이유:
- 장점: 빠른 개발 속도, 큰 커뮤니티와 관련 자료가 많음
- 적용: 쇼핑몰 프로젝트의 초기 개발 속도와 유지보수성을 고려하여 Spring Boot를 선택
-
Spring Security 사용 이유:
- 장점: 간편한 인증 및 권한 관리, 다양한 보안 기능 제공
- 적용: 사용자 인증과 권한 관리가 필요한 시스템에서 간편하게 설정하고 적용 가능
-
JPA 선택 이유:
- 장점: 객체지향적 데이터베이스 접근, 간편한 CRUD 연산, 유지보수 용이
- 적용: 데이터베이스와의 상호작용을 단순화하고 코드의 가독성을 높이기 위해 JPA 사용
-
MySQL 선택 이유:
- 장점: 오픈 소스, 안정성, 확장성
- 적용: 비용 효율적인 데이터베이스 관리와 널리 사용되는 MySQL을 선택
- 유저는 회원가입 및 로그인을 사용할 수 있습니다.
- 시큐리티를 활용해 유저의 정보를 db에 저장합니다.
- 패스워드는 해싱하여 저장합니다.
- 회원가입시 중복 아이디를 구분합니다.
- jwt를 활용하여 로그인 상태를 유지합니다.
![]() |
![]() |
|---|
- 로그인한 유저는 마이페이지를 사용할 수 있습니다.
- 마이페이지에서는 해당 유저의 주문, 리뷰 내역을 확인할 수 있습니다.
- 유저는 닉네임과 비밀번호를 재설정할 수 있습니다.
- 유저는 등록된 상품 목록을 확인할 수 있습니다.
- 페이지네이션을 적용하여 각 페이지로 이동할 수 있습니다.
- 유저는 최신순, 가격순, 이름순으로 정렬된 상품을 확인할 수 있습니다.
기본적으로는 상품 id를 기준으로 내림차순 정렬로 설정하였습니다.
- 관리자 권한을 가진 계정으로 상품을 등록할 수 있습니다.
- 상품 등록시 중복 상품명을 구분하여 메세지를 보여줍니다.
- S3를 활용해 이미지를 저장하고 DB에는 S3에 저장된 이미지의 URL을 저장합니다.
- 관리자는 상품을 수정/삭제 할 수 있습니다.
- 상품을 삭제하면 S3에 저장된 이미지도 함께 삭제됩니다.
![]() |
![]() |
|---|
- 상품 상세 페이지에서는 상품 개수를 입력하여 해당 금액으로 주문이 가능합니다.
- 상품을 주문한 유저만 해당 상품의 리뷰를 작성할 수 있습니다.
- 상품을 검색하면 검색 결과가 나타납니다.
- 검색 결과의 이미지를 클릭하면 해당 상품의 상세 페이지로 이동합니다.
- 관리자 계정으로 로그인시 메뉴바에 관리자 페이지 메뉴가 나타납니다.
- 관리자 관련 페이지는 관리자 권한을 가진 계정으로만 접근할 수 있습니다.
- 관리자 페이지에서는 회원 목록, 전체 리뷰 내역, 전체 주문 내역을 확인할 수 있습니다.
- 회원 목록 페이지에서는 일반 권한인 유저만 탈퇴 처리할 수 있습니다.









