← 포트폴리오 목록

프랜차이즈 POS 판매 데이터 통합 수집 관리

매장 POS의 Firebird 로컬 DB를 읽기 전용으로 조회하는 Windows Agent, 중앙 수신 서버, 본사 웹 관리페이지를 하나로 묶은 맞춤 MVP 프로젝트입니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종모니터링
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaFirebird 2.x/3.xWindows Agent
주요 기능
  • 판매현황 대시보드
  • 주문 상세 조회
  • Agent 모니터링
  • 정합성 대사·재수집

프로젝트 개요

범위: 개발, 디자인, 기획

매장 POS의 Firebird 로컬 DB를 읽기 전용으로 조회하는 Windows Agent, 중앙 수신 서버, 본사 웹 관리페이지를 하나로 묶은 맞춤 MVP 프로젝트입니다. 판매현황·주문 상세·Agent 모니터링·정합성 대사와 재수집 요청 화면을 웹으로 구현하며, Agent 설치와 배포는 관리 화면으로 표현합니다.

작업 범위

  • 판매현황 대시보드: 전체 매장의 일·주·월 매출과 시간대별·메뉴별·판매채널별 판매량을 한 화면에서 비교하고, 상단 상태바로 Agent 수집 상태를 함께 확인합니다
  • 주문 상세 조회: 판매현황에서 매장을 선택하면 해당 매장의 주문 목록이 열리고, 주문별 메뉴·결제정보·취소 이력을 상세 패널에서 확인합니다
  • Agent 모니터링: 매장별 Agent의 설치 여부, 연결 상태, 마지막 수집 시각, 버전, 에러 로그를 목록과 상세 패널로 확인하고 배포 대상 버전을 지정합니다
  • 정합성 대사·재수집: 매장·영업일별로 POS 원천 매출과 중앙 집계 금액을 비교하여 차이를 표시하고, 차이가 있는 건은 재수집을 요청하며 진행 상태를 확인합니다

주요 업무

  • 판매현황 대시보드 화면: 매장·기간·채널 필터와 집계 쿼리, 슬림 상태바와 우선 대응 큐를 구현합니다
  • 주문 상세 조회 화면: 마스터-디테일 목록, 결제수단 분할 표시, 취소·수정 이력 타임라인을 구현합니다
  • Agent 모니터링 화면: 하트비트 수신 API, 상태 판정 로직, 에러 로그 뷰어, 버전 배포 관리 화면을 구현합니다
  • 정합성 대사·재수집 화면: 일별 대사 배치, 차이 금액 리스트, 재수집 요청 큐와 알림 화면을 구현합니다
프랜차이즈 POS 판매 데이터 통합 수집 관리
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

Firebird 2.x와 3.x의 인증 방식과 클라이언트 라이브러리 차이를 하나의 접근 계층으로 흡수하는 호환 설계

POS 스키마에 변경 감지용 컬럼이 없을 가능성에 대비한 해시 비교 기반 변경 감지 전략

물리 삭제된 주문을 증분 수집만으로 찾기 어려워 영업일 단위 전수 대조로 보완하는 설계

재전송 중 동일 주문이 중복 수신되어도 집계가 이중 반영되지 않

하는 멱등 Upsert 설계 필요

Windows 서비스 재시작과 자동 업데이트 전환 시 수집 위치를 잃지 않는 체크포인트 설계

구현 내용

핵심 기능 상세

핵심 기능 1

판매현황 대시보드

전체 매장의 일·주·월 매출과 시간대별·메뉴별·판매채널별 판매량을 한 화면에서 비교하고, 상단 상태바로 Agent 수집 상태를 함께 확인합니다.

  • Prisma 집계 쿼리와 PostgreSQL 인덱스로 매장·일자·시간대 단위 판매 집계를 조회
  • 필터 상태를 URL 쿼리와 동기화하여 조회 조건을 링크로 공유
  • SVG 기반 시간대 히트맵과 매장 비교 막대 차트를 직접 구현

브랜드·매장·기간 필터를 하나의 집계 API로 묶고 슬림 상태바에 수집 현황을 함께 노출해, 매출과 데이터 신뢰 상태를 한 화면에서 판단하는 구조를 구현합니다.

판매현황 대시보드
판매현황 대시보드 실제 화면
핵심 기능 2

주문 상세 조회

판매현황에서 매장을 선택하면 해당 매장의 주문 목록이 열리고, 주문별 메뉴·결제정보·취소 이력을 상세 패널에서 확인합니다. 마스터-디테일 목록, 결제수단 분할 표시, 취소·수정 이력 타임라인을 구현합니다.

  • 커서 기반 페이지네이션과 가상 스크롤로 대량 주문 목록을 렌더링
  • 주문 헤더·품목·결제 테이블을 조인한 상세 API와 결제수단 분할 표시 컴포넌트
  • 변경 이력 테이블을 시간순 타임라인으로 매핑하여 취소·금액수정 내역을 표시

주문 원천 데이터와 변경 이력을 함께 조회하는 상세 구조를 설계하여, 취소·환불·결제수단 변경이 반영된 최신 상태와 이전 값을 나란히 확인하는 화면을 구현합니다.

주문 상세 조회
주문 상세 조회 실제 화면
핵심 기능 3

Agent 모니터링

매장별 Agent의 설치 여부, 연결 상태, 마지막 수집 시각, 버전, 에러 로그를 목록과 상세 패널로 확인하고 배포 대상 버전을 지정합니다.

  • Agent 하트비트 수신 API와 마지막 수신 시각 기준의 연결 상태 판정 로직
  • Windows Service 자동 시작과 재부팅 후 수집 재개 상태를 상태 이력으로 기록
  • 버전별 배포 대상 매장을 지정하는 배포 관리 화면과 자동 업데이트 상태 표시

설치·연결·수집·버전 상태를 매장 단위로 하나의 상태 모델에 모아, 이상 Agent를 우선 대응 큐로 올리는 관제 구조를 구현합니다.

Agent 모니터링
Agent 모니터링 실제 화면
핵심 기능 4

정합성 대사·재수집

매장·영업일별로 POS 원천 매출과 중앙 집계 금액을 비교하여 차이를 표시하고, 차이가 있는 건은 재수집을 요청하며 진행 상태를 확인합니다.

  • 영업일 단위 대사 배치와 매장별 원천 합계 대비 집계 합계 차이 계산
  • 차이 발생 건의 재수집 요청을 큐에 적재하고 Agent 응답 상태를 단계별로 추적
  • 대사 결과와 재수집 결과를 알림 화면에 기록하고 상태별로 필터링

원천 매출과 중앙 집계의 차이를 영업일 단위로 대사하고 재수집 요청까지 이어지는 흐름을 구현하여, 데이터 정확성 검증이 관리 화면 안에서 완결되는 구조를 설계합니다.

정합성 대사·재수집
정합성 대사·재수집 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

Firebird 접근 계층·수신 스키마 설계 · 2026.09

읽기 전용 조회 계층 구조 설계, 원천 주문 테이블과 정규화 스키마 매핑, PostgreSQL 테이블 정의

STEP 2

Agent 수집·수신 API 구현 · 2026.09

Windows Service 증분 수집, 로컬 큐 재전송, Express 수신 API와 Upsert 갱신, 집계 쿼리 구현

STEP 3

본사 관리페이지 화면 개발 · 2026.09

판매현황·주문 상세·Agent 모니터링 화면과 차트 컴포넌트 구현

STEP 4

대사 배치·재수집 흐름 검증 · 2026.09

영업일별 대사 배치, 재수집 요청 흐름, 통합 시나리오 테스트 작성

개발 결과

Firebird 읽기 전용 접근 계층 설계2.x와 3.x 인증 방식 차이를 분리하는 드라이버 계층과 읽기 전용 조회 규칙을 설계합니다
증분 수집·변경 감지 로직 구현마지막 수집 시점 기준 조회와 취소·환불·금액수정 감지, 중복 방지 키를 적용하는 수집 로직을 구현합니다
로컬 큐 기반 재전송 구조 구축네트워크 단절 시 로컬에 적재하고 복구 후 순서대로 재전송하는 큐와 멱등 수신 처리를 구축합니다
영업일 정합성 대사 배치 설계매장·영업일별 원천 합계와 집계 합계를 비교하고 차이 건을 재수집 큐로 연결하는 배치를 설계합니다

기술적 주안점

  • 브랜드·매장·기간 필터를 하나의 집계 API로 묶고 슬림 상태바에 수집 현황을 함께 노출해, 매출과 데이터 신뢰 상태를 한 화면에서 판단하는 구조를 구현합니다
  • 주문 원천 데이터와 변경 이력을 함께 조회하는 상세 구조를 설계하여, 취소·환불·결제수단 변경이 반영된 최신 상태와 이전 값을 나란히 확인하는 화면을 구현합니다
  • 설치·연결·수집·버전 상태를 매장 단위로 하나의 상태 모델에 모아, 이상 Agent를 우선 대응 큐로 올리는 관제 구조를 구현합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의