[Baeg-won Clothing Gallery] 0. 프로젝트 개요

2023. 7. 2. 10:43·🚗 Backend Toy Project/Baeg-won Clothing Gallery

  • 오랜만에 개인 포트폴리오를 만들어보려고 한다.
  • 이전에 만든 2개의 프로젝트가 있긴 하지만, 이제 막 배우기 시작할 때 진행했던 프로젝트인지라 허술한 부분도 많고 너무 기능 구현에만 신경쓰는 바람에 중요한 부분을 놓치고 간 느낌이 들어 새로운 마음으로 다시 시작해보려 한다.

  • 이전 프로젝트를 진행하면서 그래도 좀 배운게 있으니, 우선 프로젝트 명세서부터 작성해보자.
  • 명세서에 포함될 내용은 다음과 같다.
    • 아이템 선정
    • 개요
    • 요구사항 분석
    • DB 설계
    • API 설계

📝 아이템 선정

  • 이전에 해본 프로젝트 주제는 게시판(블로그)과 SNS였다.
  • 그래서 이번에는 좀 획기적인 주제로 프로젝트를 진행하고 싶었으나, 딱히 아이디어가 떠오르지도 않고 혼자서 구현할 수 있을지도 애매해서 차라리 정석적인 주제로 프로젝트를 진행하는 것이 낫다고 생각했다.

  • 그렇게 해서 결정한 프로젝트는 바로 쇼핑몰이다. 그 중에서도 옷을 판매하는 쇼핑몰을 구현해볼 것이다.
  • 웹의 기본 소양이 되는 간단한 CRUD부터 시작하여 여러가지 기능을 추가해가며 진행해볼 예정이다.

📝 개요

  • 프로젝트 명: Baeg-won Clothing Gallery
  • 개발 인원: 1명(Baeg-won)
  • 개발 기간: 2023.07.01 ~
  • 주요 기능
    • 사용자 관련: 회원가입 및 로그인(OAuth2.0 포함), 회원가입 및 로그인 유효성 검사(+중복 검사), 회원 정보 수정, 회원 등급
    • 상품 관련: CRUD 기능, 카테고리, 페이징 및 검색, 주문수, 문의 및 후기, 장바구니, 즐겨찾기
    • 주문 관련: 배송지 설정, 결제 방법 선택
    • 게시판 관련: CRUD 기능, 카테고리, 페이징 및 검색, 조회수
    • 관리자 관련: 상품 등록 및 공지사항 작성
  • 개발 언어: Java 11
  • 개발 환경: Spring Boot 3.1.1, Gradle, Spring Data JPA, Vue.js
  • 데이터베이스: MySQL
  • 형상관리 툴: GitHub

📝 요구사항 분석

  • 회원가입
    • 유효성 검사
      • 아이디는 이메일 형식으로 지정(회원가입 시 이메일 인증 필요)
      • 비밀번호는 8~16자 사이로, 영문과 숫자, 특수문자를 포함
      • 비밀번호 확인을 위한 입력칸 필요
      • 닉네임은 2~10자 사이로, 특수문자를 제외한 한글, 알파벳 대소문자, 숫자로 구성
      • 필수 입력 칸이 공백이라면 그에 따른 예외 메시지 보여주기
    • 중복 확인
      • 이미 존재하는 아이디로 회원가입을 진행할 경우 그에 따른 예외 메시지 보여주기
    • 모든 검사를 통과했다면 회원으로 등록한 후 로그인 페이지로 이동
  •  로그인
    • 로그인을 하지 않은 경우 아래의 페이지만 이용 가능하며, 이 외의 페이지로 접속할 경우 로그인 페이지로 강제 이동
      • 회원가입 페이지
      • 로그인 페이지
      • 메인 페이지
      • 상품 목록 페이지
      • 상품 상세보기 페이지
      • 상품 주문 페이지
      • 게시판 페이지
      • 장바구니 페이지
    • 유효성 검사
      • 아이디와 비밀번호가 일치하지 않을 경우 그에 따른 예외 메시지 보여주기
      • 모든 검사를 통과했다면 로그인 처리 후 메인 페이지로 이동
    • OAuth 2.0를 통한 소셜 로그인(구글, 카카오, 네이버, 페이스북 등)
  • 회원정보 수정
    • 회원정보 수정은 비밀번호만 가능
    • 수정란이 공백인 경우 그에 따른 예외 메시지 보여주기
    • 수정할 때에도 동일하게 유효성 검사 적용
  •  상품
    • 재고가 없을 경우 "장바구니에 담기" 버튼 비활성화
    • 상품 색상, 사이즈, 배송지 주소 등 주문에 필요한 정보를 입력하지 않은 경우 그에 따른 예외 메시지 보여주기
  • 문의 및 후기
    • 후기는 상품을 구매한 로그인 회원만 작성 가능
    • 문의나 후기 작성 시 빈칸 또는 공백인 경우 그에 따른 예외 메시지 보여주기
    • 후기는 사진(선택) 및 별점을 포함할 수 있음
    • 문의 및 후기 수정, 삭제는 작성자만 가능
  • 장바구니
    • 상품을 고를 시 장바구니에 담김
    • 장바구니에서는 지금까지 담은 상품 목록과 금액 등의 정보를 확인할 수 있음
    • 장바구니에서 결제 버튼을 눌러 주문 페이지로 이동
    • 장바구니에서 주문할 상품의 옵션 및 수량 변경 가능
  • 주문
    • 배송지 주소 설정시 사용자가 기본 배송지를 설정해놓았다면, 자동으로 주소 설정
    • 배송 요청사항 작성 가능
    • 결제 방법 선택하여 최종 결제
    • 회원 등급 및 쿠폰, 이벤트 여부에 따라 할인 적용
  • 게시판
    • 게시글은 작성 및 수정, 삭제는 관리자만 가능
    • 게시글 작성, 수정 시 제목 또는 내용이 빈칸 또는 공백인 경우 그에 따른 예외 메시지 보여주기

📝 DB 설계

  • 비밀번호는 암호화를 할 경우 길이가 늘어나기 때문에 크기를 넉넉히 잡아줄 것이다.
  • 회원 탈퇴시 실제로 해당 회원의 데이터를 지울 경우 회원과 연관된 다양한 데이터에 영향을 주거나 오류가 발생할 수 있기 때문에 따로 탈퇴 여부 필드를 두어 분류할 것이다.

  • 상품 역시 판매 여부 필드를 따로 두어 상품 판매 종료 시 해당 상품의 데이터를 지우지 않고 이를 관리할 것이다.

  • 주문의 경우 하나 이상의 상품이 포함될 수 있기 때문에 이는 주문 상세 테이블을 별도로 생성하여 해결하였다.

  • 상품 번호를 가져오는데도 가격을 따로 저장한 이유는 주문했을 당시의 상품 가격과 현재의 상품 가격이 달라질 수 있기 때문이다.

  • 장바구니 역시 하나 이상의 상품이 포함될 수 있기 때문에 장바구니 상세 테이블을 따로 생성하여 해결하였다.

  • 댓글 종류는 문의와 후기가 있는데, 둘 모두에 공통으로 포함되는 필드가 다소 존재하여, 하나로 통합한 뒤 따로 필드를 두어 분류해주었다.


📝 API 설계

  • 원래는 API 설계를 먼저 작성하고나서 프로젝트를 진행하려 하였으나, 작성하다보니 확실하지 않은 부분이 좀 많아서 이 부분은 개발을 진행하면서 추가할 예정이다.

저작자표시 (새창열림)

'🚗 Backend Toy Project > Baeg-won Clothing Gallery' 카테고리의 다른 글

[Baeg-won Clothing Gallery] 5. SALE, CONTACT 페이지 구현  (0) 2023.07.15
[Baeg-won Clothing Gallery] 4. CLOTHING, FOOTWEAR, ACCESSORIES 페이지 구현  (0) 2023.07.14
[Baeg-won Clothing Gallery] 3. BRANDS 페이지 구현  (0) 2023.07.08
[Baeg-won Clothing Gallery] 2. SHOP 페이지 구현  (0) 2023.07.06
[Baeg-won Clothing Gallery] 1. 메인 페이지 구현  (0) 2023.07.04
'🚗 Backend Toy Project/Baeg-won Clothing Gallery' 카테고리의 다른 글
  • [Baeg-won Clothing Gallery] 4. CLOTHING, FOOTWEAR, ACCESSORIES 페이지 구현
  • [Baeg-won Clothing Gallery] 3. BRANDS 페이지 구현
  • [Baeg-won Clothing Gallery] 2. SHOP 페이지 구현
  • [Baeg-won Clothing Gallery] 1. 메인 페이지 구현
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[Baeg-won Clothing Gallery] 0. 프로젝트 개요
상단으로

티스토리툴바