Skip to content

Jesuji/ShoppingMall_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛒 쇼핑몰 프로젝트

📎 프로젝트 개요

이 프로젝트는 전공 시간 과제로 진행한 사용자가 상품을 검색하고, 장바구니에 담고, 주문할 수 있는 간단한 온라인 쇼핑몰 웹 애플리케이션 입니다. Controller와 @RestController를 상황에 따라 적절히 분리하여 사용함으로써 뷰 템플릿 기반 페이지와 RESTfulAPI 기능을 동시에 구현하였습니다.


⚒️ 개발 환경

  • IDE: IntelliJ IDEA Community
  • JDK: OpenJDK 17
  • Database: mysql 9.0.1
  • Frontend: Thymeleaf, HTML, CSS, JavaScript

⚒️ 주요 기능

✅ 회원가입 및 로그인 (세션 인증 기반)

스크린샷 2025-03-12 오후 3 35 47 스크린샷 2025-03-12 오후 3 40 08


✅ 메인 화면에 동적 배너 생성

Image

✅ 상품 목록 조회 및 검색 기능

Image Image

✅ 리뷰 CRUD

Image 스크린샷 2025-03-12 오전 1 49 24

✅ 댓글 및 대댓글 달기

스크린샷 2025-03-14 오후 3 05 11

✅ 장바구니 담기 및 위시 리스트 담기

Image 스크린샷 2025-03-12 오전 1 46 53

✅ 주문하기

Image 스크린샷 2025-03-12 오후 3 30 06

✅ 주문내역 조회

스크린샷 2025-03-14 오후 2 53 30

📕 API 명세서

https://spark-plot-2cc.notion.site/API-134a56a2c7a1809fb020c02fddc198f7?pvs=4


ERD

스크린샷 2025-03-12 오후 1 41 12

쇼핑몰 전체 구성도

스크린샷 2025-03-12 오후 1 41 37

📌 고찰

1️⃣ 엔티티 간의 양방향 관계에서 무한 루프 및 StackOverflow 오류가 있어 @ToString(exclude="cart") >> 이런 형식으로 해결했다.

2️⃣ 대댓글 구조를 구현하면서 대댓글이 부모 댓글과 연결되지 않은 상태로 DB에 저장되서 오류가 생겼습니다. DB 설계에서 부모 댓글 ID를 명확히 설정하고, 댓글 작성 시 해당 부모 댓글 ID를 함께 저장하도록 하여 오류를 해결했다.

3️⃣ 뷰 템플릿과 데이터를 Model 매핑하여 HTML 페이지를 반환할 때 뷰가 뜨지 않는 에러가 자주 생겼었는데 뷰 템플릿에서 그 데이터를 올바르게 참조하지 않아서 생긴 오류였다.


⚒️ 기술 스택

📌 Backend (백엔드)

  • Java 17
  • Spring Boot 3.3.5
  • JPA (Hibernate)
  • Lombok

🚀 로컬에서 실행하는 방법

1️⃣ 프로젝트 클론

git clone https://github.com/Jesuji/ShoppingMall_Project.git 
cd ShoppingMall_Project

2️⃣ 실행

http://localhost:8080

📌 향후 업데이트 계획

  • 리뷰 작성할 때 이미지 추가 기능
  • OAuth 로그인 추가 (카카오 로그인 연동)
  • 예외 처리에 대해 Custom Exception 만들기

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published