작업 목록
대표 작업커머스소프트웨어사업

패션 유통 관리 시스템

새벽 도매의 «영업일»을 시스템의 기준으로

의류도매 매장용 무설치 웹 POS. 같은 코어 위에서 음식점 업종도 돌아가고, 도매 모드와 소매 모드를 전환할 수 있다.

도매 · 소매 모드 전환형 커머스 관리 시스템

역할
기획 · 도메인 설계 · 백엔드 · 프론트엔드 · UI 디자인
분류
커머스, 소프트웨어, 사업
등급
대표 작업 — 문제부터 결과까지 전부 적어둔 것

화면 캡처가 아직 없어, 아래에 구조와 판단으로 적었습니다.

01

무슨 문제였나

국내 의류 도매 상권은 밤 8시에 열어 새벽 5시에 닫는다. 캘린더 날짜로 매출을 끊으면 하루 장사가 둘로 쪼개진다. 전표에 들어가는 줄도 '판매'만 있는 게 아니다 — 재고가 없어 못 보낸 물량, 빌려준 샘플, 오늘 안에 처리해야 할 대기, 기한 없는 보류가 한 장에 섞인다.

02

어떻게 풀었나

'영업일'을 시스템의 1급 개념으로 두고, 라인 타입 6종을 각각 재고·합계에 다르게 반영하도록 설계했다. 권한은 프론트에서 숨기는 데 그치지 않고 백엔드가 실제로 차단한다.

구조

  1. 01React 19 + TypeScript (PWA)
  2. 02Fastify REST API
  3. 03권한 검사 · 감사 로그
  4. 04판매 트랜잭션 (원자적 커밋)
  5. 05SQLite

어려웠던 것

  • 새벽 장사의 매출 귀속 기준을 코드로 정의
  • 폰 가로 시 높이가 400px밖에 남지 않아 레이아웃 전환을 폭이 아닌 높이로도 판정
  • 한 전표 안에서 6종 라인의 재고·합계 반영 규칙 분리
03

무엇을 만들었나

  • 영업일 — 매장별 마감시각 이후 거래는 다음 영업일로 귀속
  • 라인 타입 6종 — 판매 · 반품 · 미송 · 샘플 · 대기 · 보류
  • 화면 8개 — 판매 · 입고예정 · 상품 · 거래처 · 통계 정산 · 직원 권한 · 변경 이력 · 화면 설정
  • 단축키 13종 — 도매는 손이 바쁘다. 마우스를 안 잡고 한 전표를 끝낼 수 있다
  • 권한 14종을 직원마다 켜고 끈다 — «화면에서 감추는 게 아니라 서버에서 막습니다» 를 화면에 적어뒀다
  • 변경 이력 — 판매 · 전표 항목 · 상품 · 재고 · 거래처 · 직원 여섯 갈래로 감사 로그를 남긴다
  • 통계 · 정산 — 오늘 매출과 «받을 돈» 을 나란히 둔다. 도매는 판 것보다 못 받은 것이 문제다
  • «처리 안 된 항목» 을 상시 노출 — 미송 · 대기 · 보류가 잊히지 않게
  • 기간 정산 · 일자별 · 많이 나간 상품 · 거래처별 매출 · 결제 수단별 · 엑셀 내보내기
  • 장끼 출력 · 도소매 전환 · 미송 현황을 키 하나로
  • 거래처별 전잔액과 외상 — 도매는 현금이 아니라 신용으로 돈다
  • 화면 배치를 매장이 직접 바꾼다 — 파는 물건에 따라 필요한 칸이 다르다
  • 권한 14종 — 백엔드 차단 + 민감 작업 관리자 PIN 재인증
  • 매장 관리번호를 상품 식별 메인 키로, 공장 품번은 매입 대조용
  • 입고예정 — 중국 패킹리스트 엑셀 업로드, 공장별 컬럼 매핑 저장
  • 도매 모드 / 소매 모드 전환
  • Windows 세로·가로 / Android / iOS 대응
  • 직원별 색·글자크기·패널 배치 저장

쓴 기술

Node 24FastifySQLiteReact 19TypeScriptTailwind 4PWA
04

무엇이 남았나

  • 판매 확정 트랜잭션의 원자성 · 영업일 경계 · 라인 타입별 재고 · 전표 취소를 테스트로 검증

알게 된 것

화면 규칙에도 이유가 있어야 한다. '색은 라인 상태와 금액에만 쓴다', '금액은 전부 고정폭', '바탕은 잉크 네이비, 전표 그리드만 밝다' — 전부 밤새 장사하는 환경에서 나온 결정이다.

다음 프로젝트SOVEREIGN APEX