← 포트폴리오 목록

재고 판정 발주 자동화 시스템

해외 소싱 수입 유통 기업의 발주 업무를 대상으로, 이카운트 ERP와 하이웍스 그룹웨어를 REST API로 연동하여 재고 판정식 기반 발주 자동화 워크플로우를 React + Node.js 기반으로 설계·구현합니다.

프로젝트 납품 요약

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

서비스 타입Web
업종데이터 분석
기술 스택
ReactTypeScriptTailwind CSSExpressPostgreSQLPrisma이카운트 ERP API하이웍스 APIPDFKit
주요 기능
  • 발주 점검 대시보드
  • 이카운트 ERP 발주서 자동 등록
  • 발주서 PDF 자동 생성
  • 하이웍스 전자결재 자동 기안

프로젝트 개요

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

해외 소싱 수입 유통 기업의 발주 업무를 대상으로, 이카운트 ERP와 하이웍스 그룹웨어를 REST API로 연동하여 재고 판정식 기반 발주 자동화 워크플로우를 React + Node.js 기반으로 설계·구현합니다. 발주 점검부터 ERP 발주서 등록·되읽기 검증, PDF 발주서 생성, 전자결재 기안까지 이어지는 파이프라인을 구현합니다.

작업 범위

  • 발주 점검 대시보드: 가용재고+기발주량-월평균판매량×가산지수 판정식을 그대로 재현해, 발주가 필요한 품목을 자동으로 검출하고 우선순위별로 정렬해 보여주는 화면입니다
  • 이카운트 ERP 발주서 자동 등록: 이카운트 ERP 세션 기반 인증 API로 발주 전표를 등록하고, 등록 직후 되읽기 조회로 응답코드와 전표 내용을 검증합니다
  • 발주서 PDF 자동 생성: 머리글, 발주정보 5필드, 품목표 6열, 거래조건 7항목을 포함한 발주서를 PDF로 자동 생성합니다
  • 하이웍스 전자결재 자동 기안: 발주 품의, 견적송장 명판 날인, 선금 지급 요청 3종 전자결재를 하이웍스 API로 자동 기안하며, 최종 상신은 담당자가 직접 진행합니다

주요 업무

  • 발주 점검 대시보드 화면: 판정식을 서버 유틸 함수로 모듈화하고, 품목별 판정 결과를 캐싱하여 반복 계산 부하를 줄이는 구조를 설계합니다
  • 이카운트 ERP 발주서 자동 등록 화면: 호출 한도(입력 1회 300줄/1일 5000줄)를 넘지 않도록 배치 분할 로직을 구현하고, 실패 응답코드별 재시도 정책을 설계합니다. 발주번호는 공장코드+날짜 조합으로 중복 없이 자동 채번합니다
  • 발주서 PDF 자동 생성 화면: PDFKit 기반 템플릿 엔진으로 동적 데이터 바인딩 구조를 설계하고, 다운로드와 미리보기를 함께 제공합니다
  • 하이웍스 전자결재 자동 기안 화면: 토큰 인증, 양식식별자, 본문 HTML, 첨부파일을 API로 전달해 기안 초안을 생성하고, 공장 발주 메일 발송과 PI 이메일 접수 현황을 함께 연동합니다
재고 판정 발주 자동화 시스템
요구사항 정의

프로젝트 핵심 과제

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

이카운트 API 호출 한도(조회 1시간 6,000건/1일 10,000건)를 초과하지 않

배치 분할과 우선순위 큐 설계가 필요합니다

재고 판정식이 실호출로 검증되지 않은 상태이므로

실패 시 엑셀 경로 단독 운영으로 전환 가능한 폴백 구조 설계가 필요합니다

하이웍스 기안 API가 팝업 방식 제약으로 최종 상신을 자동화할 수 없어

기안 완료 상태와 상신 대기 상태를 구분하는 상태 머신 설계가 필요합니다

IMAP으로 수신되는 PI 이메일 첨부파일의 형식이 거래처마다 상이해

파일명·확장자 검증 및 예외 처리 로직 설계가 필요합니다

구현 내용

핵심 기능 상세

핵심 기능 1

발주 점검 대시보드

가용재고+기발주량-월평균판매량×가산지수 판정식을 그대로 재현해, 발주가 필요한 품목을 자동으로 검출하고 우선순위별로 정렬해 보여주는 화면입니다.

  • 판정식(가용재고+기발주량-월평균판매량×가산지수)을 순수 함수로 모듈화하여 단위 테스트 가능한 구조로 설계
  • Prisma 집계 쿼리로 창고별 가용재고·기발주량을 실시간 조인 집계
  • React Query로 판정 결과를 5분 주기로 재검증하며 백그라운드 리페치하는 캐싱 전략 적용

재고 판정 로직을 순수 함수로 분리해 엑셀 공식과 1:1 대응 검증이 가능한 구조를 구현합니다.

발주 점검 대시보드
발주 점검 대시보드 실제 화면
핵심 기능 2

이카운트 ERP 발주서 자동 등록

이카운트 ERP 세션 기반 인증 API로 발주 전표를 등록하고, 등록 직후 되읽기 조회로 응답코드와 전표 내용을 검증합니다.

  • 이카운트 세션 인증 토큰을 발급·캐싱하고 만료 시 자동 재발급하는 클라이언트 래퍼 구현
  • 발주 전표 등록 직후 조회 API로 되읽기하여 응답코드·품목 일치 여부를 검증하는 확인 단계 구현
  • 1일 5,000줄/1회 300줄 호출 한도를 고려한 배치 분할 큐 설계

전표 등록과 되읽기 검증을 하나의 트랜잭션 흐름으로 묶어 데이터 정합성을 보장하는 구조를 구현합니다.

이카운트 ERP 발주서 자동 등록
이카운트 ERP 발주서 자동 등록 실제 화면
핵심 기능 3

발주서 PDF 자동 생성

머리글, 발주정보 5필드, 품목표 6열, 거래조건 7항목을 포함한 발주서를 PDF로 자동 생성합니다. PDFKit 기반 템플릿 엔진으로 동적 데이터 바인딩 구조를 설계하고, 다운로드와 미리보기를 함께 제공합니다.

  • PDFKit으로 발주서 템플릿(머리글·5필드·6열 품목표·7항목 거래조건)을 동적 렌더링
  • 발주 데이터 변경 시 PDF를 재생성하는 버저닝 구조 설계
  • 생성된 PDF를 S3 버킷에 저장하고 서명 URL로 다운로드를 제공하는 구조 구현

품목 수·거래조건이 가변적인 발주서를 단일 템플릿 함수로 동적 생성하는 구조를 구현합니다.

발주서 PDF 자동 생성
발주서 PDF 자동 생성 실제 화면
핵심 기능 4

하이웍스 전자결재 자동 기안

발주 품의, 견적송장 명판 날인, 선금 지급 요청 3종 전자결재를 하이웍스 API로 자동 기안하며, 최종 상신은 담당자가 직접 진행합니다.

  • 하이웍스 토큰 인증 및 양식식별자별 기안 요청 페이로드(본문 HTML, 첨부)를 조립하는 빌더 구현
  • 3종 기안(발주 품의/명판 날인/선금 지급 요청) 템플릿을 재사용 가능한 컴포넌트로 설계
  • IMAP 기반 PI 이메일 인박스를 폴링해 첨부파일을 자동 다운로드·경로 업로드하는 워커 구현

기안 생성부터 공장 메일 발송, PI 이메일 접수까지 이어지는 발주 커뮤니케이션 파이프라인을 하나의 이벤트 흐름으로 구현합니다.

하이웍스 전자결재 자동 기안
하이웍스 전자결재 자동 기안 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

재고 판정식 분석 및 이카운트 연동 설계 · 2026.09

엑셀 판정식 로직 분석, 이카운트 세션 인증 구조 설계, PostgreSQL 테이블 18개 정의

STEP 2

발주서 등록·되읽기 API 개발 · 2026.09

이카운트 발주 전표 등록/조회 API 연동, 호출 한도 대응 배치 큐 구현, 발주번호 채번 로직 구현

STEP 3

PDF 생성 및 전자결재 기안 연동 · 2026.09

PDFKit 기반 발주서 템플릿 구현, 하이웍스 기안 API 3종 연동, 본문 HTML 빌더 설계

STEP 4

메일·이메일 파이프라인 및 통합 테스트 · 2026.09

공장 발주 메일 발송, IMAP 기반 PI 이메일 접수 워커 구현, 전체 흐름 통합 테스트

개발 결과

재고 판정식 순수 함수 모듈화엑셀 판정식을 TypeScript 순수 함수로 분리해 단위 테스트 24건으로 수식 정합성을 검증하는 구조 설계
이카운트 되읽기 검증 파이프라인 구축발주 전표 등록 직후 되읽기 조회로 일치 여부를 검증하는 2단계 커밋 구조 구현, 실패 시 자동 롤백 큐 설계
호출 한도 대응 배치 스케줄 설계1일 5,000줄 한도 내에서 발주 건수를 배치로 분할하는 큐잉 알고리즘 구현, 우선순위 기반 처리 순서 설계
3종 전자결재 템플릿 컴포넌트화발주 품의·명판 날인·선금 지급 요청 양식을 재사용 가능한 본문 HTML 빌더 컴포넌트로 설계

기술적 주안점

  • 재고 판정 로직을 순수 함수로 분리해 엑셀 공식과 1:1 대응 검증이 가능한 구조를 구현합니다
  • 전표 등록과 되읽기 검증을 하나의 트랜잭션 흐름으로 묶어 데이터 정합성을 보장하는 구조를 구현합니다
  • 품목 수·거래조건이 가변적인 발주서를 단일 템플릿 함수로 동적 생성하는 구조를 구현합니다

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

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

프로젝트 문의