마감다리 급여전표 자동 연동
더존 아마란스10 급여전표 조회 API로 급여 마감 건을 받아 SAP와 이어카운트 업로드용 전표를 자동 생성하고 전송하는 경리 담당자용 화면을 구현하는 프로젝트입니다.
프로젝트 개요
더존 아마란스10 급여전표 조회 API로 급여 마감 건을 받아 SAP와 이어카운트 업로드용 전표를 자동 생성하고 전송하는 경리 담당자용 화면을 구현하는 프로젝트입니다. 첫 화면에서 이번 달 마감 건과 생성된 전표 묶음, 전송 상태를 실제 데이터 모양으로 보여 주고, 자동 전송이 어려운 경우를 위해 엑셀·CSV 파일 다운로드를 함께 구성합니다. SAP 연동은 환경에 따라 전송 방식이 달라지므로 파일 생성을 기본선으로 두고 자동 전송을 단계적으로 확장하는 구조로 설계합니다.
작업 범위
- 급여 마감 확인과 전표 자동 생성: 이번 달 급여 마감 건과 부서별 생성된 전표 묶음, 건별 전송 상태가 한 화면에 보입니다. 마감이 감지된 건은 전표 생성 진행 상태로 이어집니다
- 전표 검토와 양식 매핑 확인: 생성된 전표를 차변·대변 합계와 함께 목록으로 검토하고, 이어카운트와 SAP 양식별로 바뀐 필수 컬럼을 대조해 봅니다. 합계가 맞지 않는 전표는 경고로 표시됩니다
- 전송 현황과 실패 복구: 전표별로 대기·전송 중·완료·실패 상태가 보이고, 실패한 건은 사유와 함께 다시 전송할 수 있습니다. 이미 전송이 끝난 전표는 다시 보내지 않도록 막힙니다
- 전표 파일 변환과 다운로드: 자동 전송이 어려운 경우를 위해 선택한 전표 묶음을 엑셀 또는 CSV 파일로 내려받습니다. 대상 시스템 양식에 맞춘 파일 이름과 컬럼 구성으로 만들어집니다
주요 업무
- 급여 마감 확인과 전표 자동 생성 화면: 아마란스10 급여전표 조회 응답을 내부 표준 구조로 정규화한 뒤 마감 시점에 전표 생성 작업을 큐에 등록하는 흐름을 구현합니다
- 전표 검토와 양식 매핑 확인 화면: 계정과목·거래처 매핑을 적용해 SAP와 이어카운트 업로드 양식으로 변환하고 필수 컬럼 누락을 전송 전에 검사합니다
- 전송 현황과 실패 복구 화면: 이어카운트 API 인증 후 전표를 자동 전송하고, SAP는 환경별 전송 어댑터 인터페이스 뒤에 두어 방식이 정해지는 대로 교체합니다
- 전표 파일 변환과 다운로드 화면: 전표 데이터를 SAP·이어카운트 업로드 양식 컬럼 순서에 맞춰 xlsx와 CSV로 변환하고 내려받은 이력을 남깁니다



프로젝트 핵심 과제
SAP 환경(ECC·S/4
BAPI·OData·IDoc·파일 업로드)이 확정되지 않았으므로 어댑터 인터페이스 뒤에 파일 전달을 먼저 구현하고 방식이 정해지면 교체합니다
아마란스10 API 접근 승인 시점이 일정에 영향을 주므로 응답 스키마 기반 모의 응답으로 변환 흐름을 먼저 검증할 계획입니다
SAP·이어카운트 샘플 양식 제공이 늦어질 수
양식 정의를 데이터로 분리해 컬럼 변경 범위를 좁힐 계획입니다
핵심 기능 상세
급여 마감 확인과 전표 자동 생성
이번 달 급여 마감 건과 부서별 생성된 전표 묶음, 건별 전송 상태가 한 화면에 보입니다. 마감이 감지된 건은 전표 생성 진행 상태로 이어집니다.
- 아마란스10 조회 API 응답을 Zod 스키마로 검증해 내부 표준 전표 구조로 정규화
- BullMQ 작업 큐에 마감 건 단위 전표 생성 작업을 등록하고 진행 상태를 조회
- React Query 폴링으로 마감 건과 전표 묶음 상태를 화면에 반영
마감 감지부터 전표 묶음 생성까지를 작업 큐 하나의 흐름으로 묶어 같은 마감 건이 두 번 생성되지 않도록 구조를 설계합니다.


전표 검토와 양식 매핑 확인
생성된 전표를 차변·대변 합계와 함께 목록으로 검토하고, 이어카운트와 SAP 양식별로 바뀐 필수 컬럼을 대조해 봅니다. 합계가 맞지 않는 전표는 경고로 표시됩니다.
- 대상 시스템별 양식 정의를 데이터로 분리해 컬럼 추가에 코드 수정이 필요 없도록 구성
- 차변·대변 합계 검증과 필수 컬럼 누락 검사를 전송 전 단계에서 일괄 실행
- TanStack Table로 전표 목록 필터·정렬과 상세 행 펼침 구성
양식 정의와 변환 엔진을 분리해 SAP와 이어카운트 양식이 달라도 같은 전표 원본에서 각각의 업로드 양식을 만들도록 설계합니다.


전송 현황과 실패 복구
전표별로 대기·전송 중·완료·실패 상태가 보이고, 실패한 건은 사유와 함께 다시 전송할 수 있습니다. 이미 전송이 끝난 전표는 다시 보내지 않도록 막힙니다.
- 전표 해시 기반 멱등 키로 같은 전표의 중복 전송을 서버에서 차단
- 재시도 횟수와 지수 백오프를 작업 큐 옵션으로 설정하고 실패 사유를 분류해 저장
- SAP 전송 어댑터 인터페이스에 파일 전달 구현을 먼저 연결하고 자동 전송 구현을 교체 가능하게 설계
전송 방식이 환경에 따라 달라지는 SAP 연동을 어댑터 구조로 분리해 파일 전달에서 자동 전송으로 코드 변경 범위를 좁히도록 설계합니다.


전표 파일 변환과 다운로드
자동 전송이 어려운 경우를 위해 선택한 전표 묶음을 엑셀 또는 CSV 파일로 내려받습니다. 대상 시스템 양식에 맞춘 파일 이름과 컬럼 구성으로 만들어집니다.
- ExcelJS로 양식별 컬럼 순서와 숫자·날짜 서식을 지정한 xlsx 생성
- CSV는 UTF-8 BOM과 구분자 설정을 지원해 한글 깨짐을 방지
- 다운로드 요청자와 시각을 이력 테이블에 기록
하나의 양식 정의에서 전송 페이로드와 엑셀·CSV 파일을 함께 만들어 자동 전송과 수동 업로드가 같은 내용이 되도록 구조를 설계합니다.


프로젝트 진행 단계
요구사항 정리와 DB 설계 · 2026.10
마감 건·전표·전표 라인·전송 이력 테이블과 상태 전이 정의
아마란스10 연동과 전표 생성 · 2026.10
급여전표 조회, 마감 트리거, 양식 변환과 계정 매핑 엔진 구현
전송·파일 출력 개발 · 2026.10
이어카운트 전송, SAP 어댑터, 엑셀·CSV 변환과 재시도 흐름 구현
화면 개발과 통합 점검 · 2026.10
마감·전표·전송 현황 화면 구현과 실제 양식 대조 점검
개발 결과
기술적 주안점
- 마감 감지부터 전표 묶음 생성까지를 작업 큐 하나의 흐름으로 묶어 같은 마감 건이 두 번 생성되지 않도록 구조를 설계합니다
- 양식 정의와 변환 엔진을 분리해 SAP와 이어카운트 양식이 달라도 같은 전표 원본에서 각각의 업로드 양식을 만들도록 설계합니다
- 전송 방식이 환경에 따라 달라지는 SAP 연동을 어댑터 구조로 분리해 파일 전달에서 자동 전송으로 코드 변경 범위를 좁히도록 설계합니다