# WBS 및 데이터베이스 논리 모델링 (노션 정리) > 출처: 차장님 노션. WBS, DB ERD(지자체·판매소·사용자·품목·입고·주문·수불). --- ## WBS (Work Breakdown Structure) ### 1. 프로젝트 준비 및 설계 (Planning & Design) - **1.1 요구사항 확정**: 기존 UI 분석 및 웹 표준 기능 정의. - **1.2 서버사양 확정**: 공공클라우드 기준 서버사양 확정. - **1.3 개발서버 준비**: 개발/테스트 서버 별도 구축. 공공클라우드에서는 최소한의 테스트만 수행(비용 최소화). - **1.4 데이터베이스 설계**: 수불, 판매, 기본 코드 등 엔티티 정의 및 정규화. - **1.5 UI/UX 디자인**: 반응형 대시보드 및 그리드 UI 설계. 모바일 바코드 스캐너 전용 웹 화면 설계. ### 2. 기본 정보 관리 모듈 개발 (Base Information Management) - **2.1 공통 코드 관리 (Image 1)**: 지역(도/시/구/동), 봉투 종류, 재질, 용량 등 계층형 코드 관리 개발. - **2.2 단가 및 포장 관리 (Image 2, 3)**: 발주/도매/소매 단가 이력 관리 및 박스/팩/낱장 단위 자동 계산 로직 구현. - **2.3 대행소 및 업체 관리 (Image 4, 7, 8)**: 판매 대행소(은행 등), 협회, 제작업체 마스터 정보 관리. - **2.4 담당자 관리 (Image 5, 6)**: 지자체/대행소 담당자 및 업체별 담당자 권한 부여 기능 개발. - **2.5 무료 대상자 관리 (Image 9)**: 대상자별 지급 상태, 유효 기간 관리 및 불출 연동 기능. ### 3. 발주 및 입고 관리 모듈 개발 (Order & Inbound) - **3.1 발주 프로세스**: 제작업체별 발주 등록, 수량 변경 및 발주서 생성. - **3.2 바코드 엔진 구축**: PDF417 규격의 LOT 번호 생성 및 이미지 생성 API 개발. - **3.3 스마트 입고 처리**: 스캐너/입고 검수 기능, 일괄 입고 처리 및 입고 현황 리포트 개발. ### 4. 판매 및 결제 관리 모듈 개발 (Sales & Payment) - **4.1 주문 관리**: 지정 판매소 주문(전화/온라인) 접수 및 상태 관리. - **4.2 결제 시스템 연동**: 고정 가상계좌(Fixed VA) 매핑 및 입금 확인 자동화 (Webhook), 카드 결제 API 연동 및 승인 처리. - **4.3 반품 및 취소**: 판매/반품 취소 처리 및 재고 환원 로직 구현. ### 5. 재고 및 수불 분석 모듈 개발 (Inventory & Statistics) - **5.1 실시간 수불 관리**: 기간별/일일 봉투 수불 현황 및 LOT 추적 기능 개발. - **5.2 실무 재고 실사**: 실사 대상 선별, 실고 수량 등록 및 오차 분석 기능. - **5.3 통계 분석**: 전년 대비 판매 분석, 계절별/월별 판매 추이 시각화 차트 구축. - **5.4 외부 연동**: 국세청 홈택스 판매 데이터 전송 기능 (CSV/API). ### 6. 지정 판매소 지원 서비스 개발 - **6.1 판매소 전용 웹**: 주문 신청, 입금 확인, 판매 이력 조회 기능. - **6.2 출력 시스템**: 지정 판매소별 고유 바코드 라벨 및 인쇄 제어. ### 7. 테스트 및 배포 (Testing & Deployment) - **7.1 통합 테스트**: 가상계좌 입금-주문-재고 연동 시나리오 검증. - **7.2 데이터 이관**: 기존 시스템(엑셀/Legacy DB) 데이터 클렌징 및 마이그레이션. - **7.3 사용자 교육**: 구군청 담당자 및 판매소 운영자 매뉴얼 제작. - **7.4 최종 배포**: 서버 인프라(Cloud) 구축 및 도메인 연결. --- ## 데이터베이스 논리 모델링 (ERD) 지자체(`LocalGovernment`)를 중심으로 사용자·지정판매소·품목·입고·주문·수불이 연결되는 **멀티테넌트** 구조. `local_gov_id`로 데이터 격리. ```mermaid erDiagram %% [조직 및 사용자 체계] LocalGovernment ||--o{ User : "지자체 소속 사용자" LocalGovernment ||--o{ Retailer : "관할 지정판매소" Retailer ||--o{ User : "판매소 소속 사용자" LocalGovernment { int local_gov_id PK "지자체 고유 ID" string gov_name "지자체 명칭(예: 북구청)" string area_code "지역 코드" string address "주소" } User { int user_id PK int local_gov_id FK "nullable (SuperAdmin용)" int retailer_id FK "nullable" string username "로그인 ID" string password_hash string role_type "SUPER, GOV, RETAIL" datetime last_login } Retailer { int retailer_id PK int local_gov_id FK "관할 지자체 ID" string retailer_name "상호명" string owner_name "대표자명" string va_number "고정 가상계좌 번호" string status "정상, 취소, 폐업" } %% [물류 및 재고 체계] LocalGovernment ||--o{ Product : "지자체별 취급 품목" LocalGovernment ||--o{ StockTransaction : "지자체 수불 내역" LocalGovernment ||--o{ InboundReceipt : "지자체 입고 내역" Retailer ||--o{ SalesOrder : "판매소 주문" Product { int product_id PK int local_gov_id FK "지자체별 단가 관리용" string product_type "일반, 음식물, 재사용" string capacity "3L, 5L, 10L 등" int purchase_price "발주 단가" int wholesale_price "도매가" int retail_price "소비자가" } InboundReceipt { int receipt_id PK int local_gov_id FK int product_id FK string lot_number "PDF417 바코드 연동" int quantity datetime receipt_date } SalesOrder { int sales_id PK int local_gov_id FK "데이터 격리용 필드" int retailer_id FK datetime order_date int total_amount string payment_status "입금대기, 완료, 취소" } StockTransaction { int trans_id PK int local_gov_id FK "지자체 구분" int product_id FK string trans_type "IN(입고), OUT(판매), FREE(불출), DISCARD(파기)" int quantity int reference_id "SalesOrder 혹은 InboundID 연결" datetime trans_date } ``` ### ERD 요약 | 엔티티 | 설명 | 지자체 FK | |--------|------|-----------| | **LocalGovernment** | 지자체 마스터(테넌트 루트) | — | | **User** | 판매소/지자체 소속 사용자. SuperAdmin은 local_gov_id nullable | local_gov_id (nullable) | | **Retailer** | 관할 지정판매소. 고정 가상계좌(va_number) 보유 | local_gov_id | | **Product** | 지자체별 취급 품목·단가(발주/도매/소비자가) | local_gov_id | | **InboundReceipt** | 지자체 입고 내역. LOT·바코드 연동 | local_gov_id | | **SalesOrder** | 판매소 주문. 데이터 격리용 local_gov_id | local_gov_id | | **StockTransaction** | 지자체 수불(입고/판매/불출/파기) | local_gov_id | 이 ERD는 `docs/종량제 관련 자료/ss_gbms/ss_gbms/1-5.png` 등에 포함된 다이어그램과 동일한 구조를 마크다운(mermaid)으로 표현한 것임.