기능명세서(Process flow chart) - g-market/b-shop-backend GitHub Wiki

TOC

  1. OAuth 인가
  2. [(관리자) 상품 수정]
  3. [상품 바로 주문]
  4. [상품 주문 전체 취소]
  5. [(관리자) 재고 업데이트]
  6. [(관리자) 상품 예약 기능]
  7. [장바구니 추가]
  8. [장바구니 제거]
  9. [장바구니 자동 삭제]

주요 기능별 로직 설명

상품 재고 업데이트

  • ID : G_SHOP05_STOCK01
  • 기능 설명 : 상품 수량을 증가, 감소시키는 기능
  • 비고 : 품절 처리, 입고 처리
  • Chart
  sequenceDiagram
    autonumber
    client ->> server: 재고 수량 증가/감소 요청
    server -->> db : 상품 조회
    alt 상품이 존재 하는 경우
    server -->> db : 아이탬 개수 업데이트
    server -->> client : 200 성공 반환
    else 아이탬이 없는 경우
    server -->> client : 400 ERROR 실패 반환
    end

상품수정

  • ID : G_SHOP02_GOODS04
  • 기능 설명 : 상품의 변경 가능한 정보를 수정하는 기능
  • 비고 : 상품이름, 카테고리, 가격, 상세설명, 옵션, 판매여부
  sequenceDiagram
    autonumber
    client ->> server: 상품 수정 요청
    alt 성공한 경우
    server -->> db : 상품 수정 요청
    db -->> server : 수정 성공 반환
    server -->> client: 성공 반환
    else 관리자가 아닌 경우  
    server -->> client: 401 ERROR 실패 반환
    else 상품이 존재하지 않는 경우 
    server -->> client: 400 ERROR 실패 반환
    else 이미지가 업로드 되지 않는 경우  
    server -->> client: 400 ERROR 실패 반환
    end

장바구니 제거

  • ID : G_SHOP07_BASKET02
  • 기능 설명 : 장바구니에서 선택한 상품을 제거하는 기능
  • 비고 : 복수 선택 가능
  sequenceDiagram
    autonumber
    client ->> server: 장바구니 제거 요청
    alt 성공한 경우
    server -->> db : 장바구니 제거 요청
    db -->> server : 삭제 성공 반환
    server -->> client: 성공 반환
    else 장바구니에 상품이 존재하지 않는 경우 
    server -->> client: 400 ERROR 실패 반환
    end

장바구니 자동 삭제

  • ID : G_SHOP07_BASKET03
  • 기능 설명 : 장바구니에 있는 품목을 자동으로 삭제하는 기능
  • 비고 : 장바구니 품목을 자동으로 삭제하는 기능이다. 이때, 마지막으로 장바구니가 업데이트 된 시점을 기점으로 24시간동안 장바구니 품목을 유지하고 제거한다. 이때 redis DB를 사용해서 자동으로 데이터를 유지하고 제거한다.
    • 장바구니에 품목을 추가
    • 기존 회원 장바구니에 있는 품목들을 redis DB에서 조회
    • 해당 품목들의 expiretime을 24시간으로 업데이트
  • Chart
  sequenceDiagram
    autonumber
    client ->> server: 장바구니 품목 등록
    server -->> db : 상품 조회
    alt 상품이 존재 하는 경우
    server -->> Redis : 상품 조회
    Redis -->> server : 장바구니 품목 데이터
    server -->> Redis : expire time 24시간으로 업데이트
    server -->> client : 200 성공 반환
    else 상품이 없는 경우
    server -->> client : 400 ERROR 실패 반환
    end

(관리자) 상품 예약 기능

  • ID : G_SHOP05_STOCK03
  • 기능 설명 : 예약된 시간에 상품 조회, 판매를 수행할 수 있게 하는 기능
  sequenceDiagram
   participant CLIENT(ADMIN)
   participant SERVER
   participant DB
   note right of CLIENT(ADMIN): 추가 속성: {"gubun":"public", "open_at":null}
   CLIENT(ADMIN)->>SERVER: 상품 등록

   activate SERVER
   SERVER->>DB: 저장 요청
   activate DB
   DB-->>SERVER: OK
   deactivate DB
   SERVER-->>CLIENT(ADMIN): 등록 성공
   deactivate SERVER

상품 조회 건 수

  • ID : G_SHOP08_STAT02
  • 기능 설명 : 상품에 대한 조회 건 수 통계량 제공
  • 비고 : 동시 요청에서도 값 상승 정합성을 보장해야함, 24시간 내 중복요청은 조회수 상승시키지 않음
  sequenceDiagram
   participant CLIENT
   participant SERVER
   participant DB
   CLIENT->>SERVER: 상품 단건 조회 요청
   activate SERVER
   SERVER-->>CLIENT: 상품 단건 정보 응답(조회수 0)
   deactivate SERVER
   SERVER->>DB: 상품 조회수 1 상승
   CLIENT->>SERVER: 상품 단건 조회 요청
   activate SERVER
   SERVER-->>CLIENT: 상품 단건 정보 응답(조회수 1)
   deactivate SERVER