4.8 KiB
4.8 KiB
요구사항 정의 및 제어/데이터 흐름·UML (노션 정리)
출처: 차장님 노션. 간략 요구사항, 고정 가상계좌 제어 흐름, 데이터 흐름, UML(클래스·시퀀스), 핵심 기술 사양.
1. 요구사항 정의 (Requirements Definition)
1.1 기본 정보 및 판매소 관리
- 고정 가상계좌 관리: 지정 판매소 등록 시, 미리 확보된 가상계좌 풀에서 전용 계좌를 1:1로 매핑하여 저장.
- 단가 및 포장 단위: 규격별 단가(발주/도매/소매)와 박스/팩/낱장 단위의 수량을 체계적으로 관리.
- 업체/담당자 체계: 제작업체, 협회, 구군청 담당자의 권한과 연락처를 연동 관리.
1.2 발주 및 물류 관리
- 바코드 추적성: PDF417 바코드를 활용하여 생산 LOT 번호부터 최종 불출까지의 전 과정을 추적.
- 실시간 수불: 스캐너를 통한 입고 처리 시 장부 재고와 실물 재고를 실시간 동기화.
1.3 주문 및 자동 정산
- 주문 접수: 판매소가 웹/모바일을 통해 주문 시, 이미 할당된 판매소 전용 가상계좌를 안내.
- 자동 입금 매칭: 해당 전용 계좌로 주문 금액과 일치하는 금액이 입금되면, 시스템이 Webhook을 수신하여 즉시 결제 완료 처리.
2. 제어 흐름 (Control Flow)
2.1 고정 가상계좌 기반 주문 제어 흐름
판매소별로 고정된 계좌가 존재하므로, 주문 시 외부 통신 없이 즉시 계좌 정보를 표시함.
graph TD
A[판매소: 주문 등록] --> B{재고 확인}
B -- 재고 부족 --> C[주문 불가 안내]
B -- 재고 있음 --> D[주문 정보 저장 및 계좌 안내]
D --> E[입금 대기]
E --> F{입금 확인 Webhook 수신}
F -- 계좌번호/금액 검증 --> G{금액 일치 여부}
G -- 불일치 --> H[입금 오류 로그 생성]
G -- 일치 --> I[결제 완료 처리 및 출고 지시]
3. 데이터 흐름 (Data Flow)
3.1 결제 데이터 흐름 (Data Flow Diagram)
고정 계좌 모델에서의 데이터 흐름은 판매소와 계좌번호 간의 매핑.
graph LR
Retailer((지정판매소)) -- 1. 주문 생성 --> Server
DB -- 2. 전용 계좌정보 반환 --> Server
Server -- 3. 주문정보/계좌번호 안내 --> Retailer
Retailer -- 4. 전용 계좌로 입금 --> Bank((은행/금융망))
Bank -- 5. 입금 통보/계좌번호 포함 --> Server
Server -- 6. 주문-계좌 매칭 및 상태갱신 --> DB
4. UML 상세 설계 (UML Modeling)
4.1 클래스 다이어그램 (Entity Relationship)
Retailer 엔티티가 virtualAccountNumber를 직접 속성으로 보유하는 구조.
classDiagram
class Retailer {
+String retailerId
+String name
+String virtualAccountNumber
+String bankCode
+Boolean isActive
}
class Order {
+String orderNo
+String retailerId
+Integer totalAmount
+Enum status
+DateTime orderDate
}
class StockTransaction {
+Long transId
+String prodId
+Integer qty
+Enum type
}
Retailer "1" -- "*" Order : 주문수행
Order "1" -- "1" StockTransaction : 재고변동기록
4.2 시퀀스 다이어그램 (결제 프로세스)
sequenceDiagram
participant R as 지정 판매소
participant S as Server
participant D as 데이터베이스
participant B as PG
R->>S: 종량제 봉투 주문 요청
S->>D: 판매소 정보(고정 가상계좌) 조회
D-->>S: 계좌번호 반환
S->>D: 주문 데이터 생성 (상태: 입금대기)
S-->>R: 주문 완료 및 할당된 전용 계좌 안내
Note over R,B: 판매소가 ATM/모바일로 입금
B->>S: 실시간 입금 통보 (Webhook: 계좌번호, 금액)
S->>D: 해당 계좌번호를 소유한 판매소의 입금대기 주문 조회
S->>S: 입금액과 주문액 검증
S->>D: 주문 상태 변경 (결제완료) 및 재고 차감 예약
S-->>R: 결제 완료 알림 발송
5. 핵심 기술 사양
5.1 고정 가상계좌 매칭 로직
- 식별자: 입금 통보 시 수신되는
VirtualAccountNo가 고유 식별자 역할을 함. - 입금 기한: 배송 전일 23:00까지 입금되지 않은 주문은 시스템에 의해 자동 취소되거나 다음 회차로 이월됨.
- 금액 검증: 가상계좌 특성상 설정된 금액과 다를 경우 은행 단계에서 입금이 거부되나, 시스템 내부에서 2차 검증을 수행함.
5.2 바코드 설계 (PDF417)
- 데이터 구조: 지자체(5) + 규격(3) + 연도(2) + LOT(6) + 일련번호(10).
- 인쇄 규격: 55mm × 20mm 사이즈 내외, Reed-Solomon 오류 정정 적용.