프로젝트 주제와 DB 구상

jihan kong·2022년 12월 14일
0
post-thumbnail

본격적으로 쇼핑몰을 만들기 위한 기본 DB 설계

1. 프로젝트 주제

프로젝트 도메인은 애완동물 🐶 용품을 파는 Online pet shop을 해보고 싶었다. (나는 강아지를 정말 좋아한다..)

스프링 프로젝트를 시작하기 위해 https://start.spring.io/ 으로 접속하여 스프링 프로젝트를 구성했다.
Dependencies의 경우, 일단 필수적인 패키지만 구성했고, 나머지 Security, OAuth 같은 패키지는 필요에 따라 나중에 추가할 계획이다.

2. project 빌드 문제 발생 ⚠️

순조롭게 진행되면 좋으련만 시작부터 말썽을 부리는 나의 프로젝트이다..

오류 로그를 살펴보니...
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found
엥... 3.0.1 버전 오류인 것 같다.

그럴 땐, 버젼 다운그레이드가 답이다. 버전을 2.7.7로 다운시키고 다시 빌드하니 성공적으로 빌드되었다.

3. ERD

먼저 프로젝트의 전체적인 ERD를 간단하게 그려보았다.

회원은 상품을 주문하거나 장바구니에 상품을 담을 수 있고, 회원은 상품을 여러개 주문할 수 있다. 회원의 아이디는 원래 탈퇴 등으로 없어질 수 있기 때문에 고유키(PK)로 쓰기에 부적합하지만 일단은 더 나은 아이디어가 없어서 그냥 쓰기로 했다.

4. 프로젝트 구조

  • config : WebMvc, Security 와 같은 설정을 구현할 계획
  • constant : 상품상태(판매중, 품절), 주문상태(주문, 주문취소) 등을 구현
  • entity : 장바구니, 상품, 상품이미지, 회원, 주문 등을 구현
  • dto : 각 엔티티 getter, setter 구현
  • controller : 뷰로 전달하기 위해 구현
  • repository : 쿼리와 관련된 로직 구현
  • service : 비즈니스 로직 구현
  • exception : 기타 예외 처리

5. 구현 로직

기억나는 대로 구현할 로직들을 나열해보았다. 일단은 로그인, 회원가입 로직부터 구현해봐야겠다. 그리고 상품을 등록과 조회, 수정과 관리, 주문하는 것을 차례대로 구현하고 장바구니를 마지막에 구현할 것이다. 상품 수정과 관리는 지금 당장은 어떻게 해야할지 떠오르지 않지만 한번 고민해봐야겠다.

profile
학습하며 도전하는 것을 즐기는 개발자

0개의 댓글