Files
jongryangje/docs/종량제 관련 자료/종량제 개발목록/노션_정리_02-요구사항_제어_데이터흐름_UML.md
2026-04-08 00:23:55 +09:00

4.8 KiB
Raw Blame History

요구사항 정의 및 제어/데이터 흐름·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 오류 정정 적용.