← 포트폴리오 목록

멀티 POS 수집 정책·Adapter 확장 콘솔

MVP 이후 로드맵으로, POS 종류별 Adapter를 플러그인으로 등록하고 수집 주기·부하 예산을 정책으로 조절하며 변경 이력과 재전송 큐, 외부 연동 API 키를 관리하는 확장 콘솔 프로젝트입니다.

프로젝트 납품 요약

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

서비스 타입Web
업종플랫폼
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaFirebird 2.x/3.xRedis
주요 기능
  • 수집 부하 예산·정책
  • Adapter 플러그인 관리
  • 변경 이력·재전송 큐
  • 외부 연동 API 관리

프로젝트 개요

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

MVP 이후 로드맵으로, POS 종류별 Adapter를 플러그인으로 등록하고 수집 주기·부하 예산을 정책으로 조절하며 변경 이력과 재전송 큐, 외부 연동 API 키를 관리하는 확장 콘솔 프로젝트입니다. Agent 코어는 그대로 두고 Adapter만 추가하는 구조를 관리 화면으로 표현합니다.

작업 범위

  • 수집 부하 예산·정책: 브랜드·매장 그룹별 수집 주기와 시간대별 수집 허용량을 정책으로 설정하고, 수집 부하 예산과 자원 사용 시뮬레이션을 대형 차트로 미리 확인합니다
  • Adapter 플러그인 관리: POS 종류별 Adapter를 등록·버전 관리하고, 매장별 적용 Adapter와 필드 매핑을 확인하며 새 Adapter 초안을 추가합니다
  • 변경 이력·재전송 큐: 주문 변경 이력을 매장·주문 단위로 추적하고, 전송 실패로 적재된 재전송 큐를 상태별로 확인하며 수동 재전송을 요청합니다
  • 외부 연동 API 관리: 발주사 내부 시스템이 사용할 REST API의 키 발급, 접근 범위, 호출 로그를 관리하고 조회·대사 요청 예제를 화면에서 확인합니다

주요 업무

  • 수집 부하 예산·정책 화면: 정책 편집 폼, 시간대별 부하 예산 차트, 정책 적용 대상 미리보기를 구현합니다
  • Adapter 플러그인 관리 화면: Adapter 레지스트리, 필드 매핑 편집기, 버전 상태 관리를 구현합니다
  • 변경 이력·재전송 큐 화면: 변경 이력 뷰어, 재전송 큐 상태 보드, 수동 재전송 액션을 구현합니다
  • 외부 연동 API 관리 화면: API 키 관리, 스코프 설정, 호출 로그 뷰어, 엔드포인트 문서 화면을 구현합니다
멀티 POS 수집 정책·Adapter 확장 콘솔
요구사항 정의

프로젝트 핵심 과제

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

Firebird와 다른 DB 종류를 동일한 Adapter 계약으로 다루면서 방언별 조회 차이를 흡수하는 추상화 설계

수집 허용량 정책이 매장 그룹과 시간대에 중첩 적용될 때 우선순위를 결정하는 정책 병합 규칙 설계

재시도 큐에서 순서가 뒤바뀐 변경 건이 최신 상태를 덮어쓰지 않

버전 기준으로 판정하는 로직 필요

필드 매핑 변경이 이미 적재된 이력 데이터와 충돌하지 않

매핑 버전을 관리하는 전략 필요

구현 내용

핵심 기능 상세

핵심 기능 1

수집 부하 예산·정책

브랜드·매장 그룹별 수집 주기와 시간대별 수집 허용량을 정책으로 설정하고, 수집 부하 예산과 자원 사용 시뮬레이션을 대형 차트로 미리 확인합니다.

  • 정책 스키마를 JSON으로 정의하고 zod로 검증하여 매장 그룹별 수집 주기와 허용량을 저장
  • 시간대별 수집 허용량과 예상 조회량을 겹쳐 그리는 SVG 영역 차트 직접 구현
  • 정책 변경 시 적용 대상 매장과 다음 수집 예정 시각을 미리보기로 계산

수집 주기·허용량을 정책 데이터로 분리하고 부하 예산 시뮬레이션과 연결하여, POS 업무 시간대를 피하는 수집 스케줄을 화면에서 설계하는 구조를 구현합니다.

수집 부하 예산·정책
수집 부하 예산·정책 실제 화면
핵심 기능 2

Adapter 플러그인 관리

POS 종류별 Adapter를 등록·버전 관리하고, 매장별 적용 Adapter와 필드 매핑을 확인하며 새 Adapter 초안을 추가합니다. Adapter 레지스트리, 필드 매핑 편집기, 버전 상태 관리를 구현합니다.

  • Adapter 인터페이스를 TypeScript 계약으로 정의하고 Firebird·MSSQL·SQLite 구현체를 동일 계약으로 등록
  • 원천 필드와 공통 스키마 필드를 잇는 매핑 편집기와 매핑 검증 규칙
  • Adapter 버전별 활성·보류 상태와 적용 매장 목록을 레지스트리 테이블로 관리

DB 접근 계층을 추상화한 Adapter 계약과 필드 매핑 편집기를 구현하여, 새 POS 환경을 Agent 코어 수정 없이 Adapter 추가만으로 수용하는 확장 구조를 설계합니다.

Adapter 플러그인 관리
Adapter 플러그인 관리 실제 화면
핵심 기능 3

변경 이력·재전송 큐

주문 변경 이력을 매장·주문 단위로 추적하고, 전송 실패로 적재된 재전송 큐를 상태별로 확인하며 수동 재전송을 요청합니다. 변경 이력 뷰어, 재전송 큐 상태 보드, 수동 재전송 액션을 구현합니다.

  • 원천 데이터를 추가 전용 이력 테이블로 저장하고 최신 상태는 Upsert 뷰로 조회
  • Redis 기반 재시도 큐와 백오프 정책, 실패 사유별 분류 상태 관리
  • 이력 diff 컴포넌트로 변경 전후 값을 필드 단위로 비교 표시

추가 전용 이력 저장과 Upsert 최신 상태를 분리하고 재전송 큐 상태를 함께 보여주어, 변경 추적과 전송 복구를 한 화면에서 처리하는 구조를 구현합니다.

변경 이력·재전송 큐
변경 이력·재전송 큐 실제 화면
핵심 기능 4

외부 연동 API 관리

발주사 내부 시스템이 사용할 REST API의 키 발급, 접근 범위, 호출 로그를 관리하고 조회·대사 요청 예제를 화면에서 확인합니다.

  • API 키 해시 저장과 스코프별 접근 제어 미들웨어를 Express로 구현
  • OpenAPI 명세를 기반으로 엔드포인트 문서 화면과 요청 예제를 구성
  • 호출 로그를 키·엔드포인트·상태 코드 단위로 필터링하는 로그 뷰어

키별 접근 범위와 호출 로그를 관리하는 REST API 계층을 구현하여, 구매·발주 등 사내 다른 시스템이 판매 데이터를 안전하게 조회하는 연동 구조를 설계합니다.

외부 연동 API 관리
외부 연동 API 관리 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

Adapter 계약·레지스트리 설계 · 2026.09

DB 접근 추상화 인터페이스와 Adapter 레지스트리 테이블, 필드 매핑 스키마 설계

STEP 2

수집 정책 엔진 개발 · 2026.09

그룹별 수집 주기·허용량 정책 저장과 스케줄 계산, 부하 예산 시뮬레이션 로직 구현

STEP 3

이력 저장·재시도 큐 구축 · 2026.09

추가 전용 변경 이력, Redis 재시도 큐와 실패 분류, 수동 재전송 API 구현

STEP 4

연동 API·콘솔 화면 개발 · 2026.09

API 키·스코프·호출 로그와 정책·Adapter 관리 화면 구현

개발 결과

Adapter 플러그인 계약 구조 설계Agent 코어와 POS별 Adapter를 분리하는 TypeScript 인터페이스와 레지스트리 로딩 구조를 설계합니다
수집 부하 예산 시뮬레이터 구현시간대별 허용량과 예상 조회량을 겹쳐 계산하는 시뮬레이션 화면과 정책 미리보기 로직을 구현합니다
추가 전용 이력과 Upsert 뷰 분리원천 변경을 추가 전용 테이블에 쌓고 최신 상태 뷰를 Upsert로 유지하는 이중 저장 구조를 구축합니다
스코프 기반 외부 API 키 체계 구축키 해시 저장, 범위별 접근 제어, 호출 로그 적재를 갖춘 외부 REST API 계층을 구축합니다

기술적 주안점

  • 수집 주기·허용량을 정책 데이터로 분리하고 부하 예산 시뮬레이션과 연결하여, POS 업무 시간대를 피하는 수집 스케줄을 화면에서 설계하는 구조를 구현합니다
  • DB 접근 계층을 추상화한 Adapter 계약과 필드 매핑 편집기를 구현하여, 새 POS 환경을 Agent 코어 수정 없이 Adapter 추가만으로 수용하는 확장 구조를 설계합니다
  • 추가 전용 이력 저장과 Upsert 최신 상태를 분리하고 재전송 큐 상태를 함께 보여주어, 변경 추적과 전송 복구를 한 화면에서 처리하는 구조를 구현합니다

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

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

프로젝트 문의