B2C 재고 관리 서비스
- 유저는 구글, 카카오 계정을 연동하여 가입/로그인이 가능하다.
- 유저는 스토어 생성 시 관리자 권한이 된다.
- 관리자는 링크 생성으로 다른 유저를 초대할 수 있다.
- 유저는 자신이 속한 스토어를 조회할 수 있다.
- 유저는 스토어를 등록/삭제/수정 할 수 있다.
- 수정, 삭제는 관리자 권한만 가능하다.
- 하나의 스토어에는 여러 명의 유저가 참여할 수 있다.
- 하나의 스토어에는 여러 개의 장소를 가질 수 있다.
- 유저는 장소를 등록/삭제/수정 가능하다
- 장소는 삭제 시 등록된 물품의 재고가 모두 0이어야한다.
- 유저는 물품을 등록/수정/삭제 할 수 있다. (물품명, 물품 코드, 바코드, 사진 등)
- 물품 코드는 수정 불가
- 물품 상태는 "등록", "중단", "삭제"가 존재한다.
- 바코드는 생성하거나 기존 바코드를 스캔, 입력할 수 있다.
- 유저는 물품을 검색 할 수 있다. (장소, 카테고리, 이름, 코드, 바코드 등)
- 유저는 카테고리를 등록/수정/삭제할 수 있다.
- 물품은 0~n개의 카테고리를 가질 수 있다.
- 입고 시 1개의 장소에 대한 n개의 물품들과 각 물품들의 입고 수량을 입력할 수 있다.
- 출고 시 1개의 장소에 대한 n개의 물품들과 각 물품들의 출고 할 수 있다.
- 수량은 0개 미만이 될 수 없다.
- 이동 시 A 장소에서 B 장소로 N개의 물품들과 각 물품들을 이동할 수 있다.
- 조정 시 1개의 장소에 대한 n개의 물품들과 각 물품들의 수량을 조절할 수 있다.
- 각 작업은 작업 내용(작업자, 장소, 작업 구분, 대상 물품, 수량, 사유 등)에 대한 기록을 저장한다.
- 각 작업은 "임시저장", "확정" 상태를 가진다.
- 임시저장 시 실제 수량은 변경되지 않으며 확정 시 반영 된다.
- 물품을 안전 물품 등록 시 지정한 수량 이하면 스토어에 속한 유저들에게 알람이 간다.
- 한 물품에 대한 작업(입고, 출고, 이동, 조정)은 정합성을 보장하여야 한다. (트랜잭션, Lock 처리)
- 서버 가용성은 99.9% 이상이어야 한다. (다운타임: 월 43분 이하)
- API 응답 시간:
- 95% 구간에서 1초 이하
- 최악의 경우라도 2초 이하
- 참고: API Response Time Standards
- 최대 5,000 명이 동시에 접속 및 예약할 수 있어야 한다.
- 모든 기능 및 제약사항에 대해 최소 1개 이상의 테스트를 작성해야 한다.
- 모든 API 요청은 토큰 기반의 인증을 거쳐야 한다.