기능명세서(Process flow chart) - g-market/b-shop-backend GitHub Wiki
TOC
- OAuth 인가
- [(관리자) 상품 수정]
- [상품 바로 주문]
- [상품 주문 전체 취소]
- [(관리자) 재고 업데이트]
- [(관리자) 상품 예약 기능]
- [장바구니 추가]
- [장바구니 제거]
- [장바구니 자동 삭제]
주요 기능별 로직 설명
상품 재고 업데이트
- 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