출력물은 여전히 업무의 최종 산출물입니다
업무 시스템의 데이터는 결국 종이나 PDF 한 장으로 고객에게 전달됩니다. 거래명세서, 견적서, 시험성적서, 출하지시서, 급여명세서가 대표적입니다. 화면은 내부 직원만 보지만 출력물은 거래처와 고객이 봅니다. 그래서 오류가 바로 회사의 신뢰 문제로 이어집니다.
문제는 양식이 자주 바뀐다는 점입니다. 거래처마다 품목코드 표기 방식, 로고 위치, 비고란을 다르게 요구합니다. 그런데 양식이 소스 코드 안에 들어 있으면 "도장 위치를 오른쪽으로 옮겨 주세요"라는 요청 하나도 개발 요청이 됩니다. 접수, 개발 일정 배정, 테스트, 배포 대기를 거치면 2주가 금방 지나갑니다. 예를 들어 거래처 100곳에 양식 30종을 운영하는 회사라면 이런 요청이 매달 꾸준히 쌓입니다.
출력물 구현 방식 비교
| 방식 | 양식 변경 | 성능 | 비용 |
|------|----------|------|------|
| 상용 리포팅 도구 | 전용 디자이너로 쉬움 | 대량 출력에 강함 | 라이선스 비용 발생 |
| HTML→PDF 변환 | 웹 개발자가 수정 | 브라우저 엔진이라 무거움 | 대부분 오픈소스 |
| PDF 템플릿 채우기 | 고정 양식에 적합 | 빠름 | 라이브러리 라이선스 확인 필요 |
| 엑셀 양식 출력 | 현업이 직접 수정 가능 | 보통 | 낮음 |
상용 리포팅 도구는 국내 SI 현장에서 많이 쓰입니다. 디자이너 도구와 서버 엔진이 함께 제공됩니다.HTML→PDF는 헤드리스 Chrome 기반 변환이 표준이 되었습니다. 예전에 많이 쓰던 wkhtmltopdf는 저장소가 보관(archived) 처리되어 새로 도입하기에는 적합하지 않습니다.PDF 템플릿 채우기에서는 iText처럼 AGPL 라이선스인 라이브러리가 있습니다. 상용 서비스에 쓰기 전에 라이선스 조건을 반드시 확인해야 합니다.방식과 상관없이 자주 겪는 문제는 세 가지입니다.
한글 폰트: 서버에 폰트가 없으면 글자가 깨집니다. PDF에 임베딩해도 되는 폰트(OFL 라이선스 등)인지도 확인해야 합니다.페이지 나눔: 품목 표 머리글이 다음 페이지에서 반복되는지, 합계 행만 따로 다음 장으로 넘어가지 않는지 확인해야 합니다.표 넘침: 긴 품명이 셀을 벗어나면 금액 칸이 가려질 수 있습니다. 줄바꿈 규칙과 최대 글자 수를 미리 정해 두어야 합니다.데이터와 양식을 분리하는 설계
핵심은 출력 데이터 API와 템플릿을 분리하는 것입니다. API는 거래명세서에 필요한 머리글, 품목, 합계를 정해진 구조로만 반환합니다. 화면 배치는 템플릿이 전담합니다.
양식 선택 규칙: 거래처 → 문서 종류 → 템플릿 버전 순으로 매핑 테이블을 둡니다. 거래처별 양식이 없으면 기본 양식으로 대체합니다.버전 관리: 템플릿은 덮어쓰지 않고 버전별로 보관합니다. 적용 시작일을 지정하면 특정 날짜부터 새 양식을 쓰도록 예약할 수 있습니다.역할 분담: 로고, 문구, 열 순서, 글꼴 크기는 현업이 관리 화면에서 직접 고칩니다. 새 항목 추가나 계산 로직 변경처럼 데이터 구조가 바뀌는 일만 개발 요청으로 처리합니다.대량 출력과 성능
월말에는 거래명세서와 세금 관련 증빙을 한꺼번에 출력하는 일이 많습니다. 1건에 1~2초가 걸린다면 1만 건을 순차로 처리할 때 약 3~6시간이 걸립니다. 작업자 8개를 병렬로 돌리면 약 20~40분으로 줄어듭니다.
비동기 생성: 요청은 작업 대기열에 넣고, 사용자에게는 진행률과 완료 알림을 보여 줍니다.결과 보관: 생성한 PDF를 저장소에 보관하고, 재출력할 때는 새로 만들지 않고 저장본을 내려줍니다. 단가가 바뀐 뒤 다시 생성하면 고객이 받은 문서와 내용이 달라질 수 있기 때문입니다.전자 문서 시대의 고려사항
이메일 자동 발송: 발송 이력과 수신 여부를 기록하고, 실패한 건은 재발송 대기열로 보냅니다.위변조 방지: 저장 시점의 해시값(SHA-256 등)을 함께 보관하고, 필요하면 전자서명을 적용합니다.보존 기간과 형식: 국세기본법상 장부와 증빙은 5년 보존이 원칙이고, 근로기준법상 임금대장 등은 3년 보존 대상입니다. 장기 보관에는 폰트가 임베딩되는 PDF/A 형식이 적합합니다.접근 통제: 급여명세서는 근로기준법상 교부 의무가 있는 개인정보 문서입니다. 출력과 다운로드 권한을 분리하고, 누가 언제 출력했는지 기록을 남겨야 합니다.레거시 출력물 전환 체크리스트
양식 목록과 거래처별 변형을 전수 조사합니다.최근 1년 출력 빈도를 기준으로 우선순위를 정합니다.오픈 전에 같은 데이터로 새 시스템과 구 시스템의 출력 결과를 나란히 대조합니다. 금액, 합계, 페이지 수를 함께 비교합니다.거의 쓰지 않는 양식은 폐기할지 현업과 합의합니다.POLYGLOTSOFT와 함께하는 출력물 개선
POLYGLOTSOFT는 ERP·MES·WMS 등 업무 시스템을 개발하면서 출력 데이터 API, 템플릿 버전 관리, 대량 PDF 생성 구조를 함께 설계합니다. 레거시 양식 전환과 오픈 전 대조 검증도 지원합니다. 오픈 이후에는 SM 구독 플랜으로 양식 변경과 운영을 꾸준히 관리해 드립니다. 양식 수정에 매번 몇 주씩 기다리고 계시다면 지금 상담을 신청해 주시기 바랍니다.