[Toy Project] 제품 재고 관리 시스템 만들기

최지나·2023년 9월 23일
5

회사에서 프로젝트를 진행하다보면 하나의 사이클을 처음부터 끝까지 돌리는게 쉽지 않다 😹
내가 처음부터 끝까지 담당할 수 있는 토이 프로젝트를 해보고 싶다,,! 라는 생각이 들던 중, 친구가 하나의 제안을 해왔다

누나가 아이디어스, 네이버 스토어 등에 직접 만든 제품을 판매하는 일을 하고 있는데, 규모가 점점 커지면서 이를 Excel 파일로 관리하는 것이 어려워졌다고 했다. 그래서 관리를 위한 사이트를 만들고 있는 데 그 중, Backend 부분을 담당해줄 수 있냐는 제안이었다

먼저 ~2023.09.23까지의 진행 상황을 파악하였다.


UI

  • 로그인 페이지
  • 제품
    • 조회/관리 페이지
    • 카테고리 페이지

Backend

  • 로그인 기능

그리고 추가로 설계 및 Backend 개발 되어야 하는 내용들은 다음과 같다

  • 제품
    • 조회/관리
    • 카테고리
  • 매장
  • 통계
    • 매장 별 통계
    • 전체 매장 및 재고 통계

로그인과 관련된 사용자 table 이외에는 Entity 설계부터 진행해야 하는 상황이다 🫠

먼저, git clone을 받은 뒤 개발 환경 셋팅부터 진행하였다

  • java 17
  • node 18.12.0
  • db PostgreSQL 15.3

설계에 있어 고민이 되는 부분들도 존재했다

제품 카테고리
제품 카테고리의 level을 어떻게 설정할것인가?
그리고 level의 수만큼 entity를 생성할것인가? 에 대한 고민이 존재하였다.

예를 들어 zfilp이라는 제품이 있을 때
전자기기 > 핸드폰 > zfilp 이런 식으로 세부 카테고리를 지정할 수 있는데, 이러한 level의 수 제한과 level 구현 방법에 대한 고민이 있었다

자기참조 관계로 설계 시 entity 하나만으로도 카테고리들의 상하관계 정의가 가능하기에 recursive하게 설계하고, level의 제한은 frontend에서 막는 방향으로 설계하였다

매장의 특징
매장에 금액을 지불하는 방식은 크게 2가지가 있다

  • 장소를 대여하는 조건으로 매대비를 일정 금액 지불해야 하는 매장
  • 상품에 대한 판매 수수료를 일정 % 지불해야 하는 매장

=> 2가지 타입에 따른 매장 관리가 가능하게 설계를 진행해야 했다.
cf) 2가지 타입 모두에 해당하는 매장도 존재

할인 제품 통계

  • 매장 별, 그리고 전체 매장의 통계를 구할 때, 일정 기간 동안 특정 상품이 할인가로 판매되었다면, 이를 고려해서 통계가 구해져야 하기에, entity 설계 시 반드시 고려해야 한다

벌써부터 많다,,, 하지만 설계를 잘 해두면 구현이 편하다는 것을 알기에
친구랑 대화를 많이 나누면서 진행할 예정이다. 화이팅이다,,,!😆

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

2개의 댓글

comment-user-thumbnail
2023년 10월 6일

응원합니다 ~! : )

1개의 답글