/ 블로그 센터 / PDF 양식에서 프로그래밍 방식으로 디지털 서명을 활성화하는 방법은 무엇입니까?

PDF 양식에서 프로그래밍 방식으로 디지털 서명을 활성화하는 방법은 무엇입니까?

슌팡
2026-02-13
3분
Twitter Facebook Linkedin

프로그램 방식 디지털 서명의 비즈니스 프로세스 내 부상

오늘날의 디지털 우선 비즈니스 환경에서 PDF 양식 내 디지털 서명을 프로그래밍 방식으로 활성화하는 것은 계약, 승인 및 규정 준수 프로세스를 간소화하는 데 필수적인 요소가 되었습니다. 자동화된 HR 온보딩부터 금융 계약 보안에 이르기까지 기업은 전자 서명을 애플리케이션에 원활하게 통합하기 위해 코드 기반 솔루션으로 점점 더 전환하고 있습니다. 이 접근 방식은 수동 오류를 줄일 뿐만 아니라 관할 구역 전반에 걸쳐 법적 유효성을 보장하여 시간과 비용을 절약합니다.

2026년 최고의 DocuSign 대안

PDF 양식 내 디지털 서명 이해

디지털 서명은 단순한 전자 서명을 넘어 암호화 기술을 사용하여 문서의 진위성과 무결성을 확인합니다. PDF 양식에서 서명 후 변경 사항이 서명을 무효화하도록 보장하는 변조 방지 봉인을 만듭니다. 이는 감사 추적 및 부인 방지가 중요한 금융, 의료 및 법률 서비스와 같은 규제 산업에서 특히 중요합니다.

이러한 서명을 프로그래밍 방식으로 활성화하려면 서명 필드를 PDF에 포함하고 API 또는 라이브러리를 통해 인증서를 적용해야 합니다. 수동 서명 도구와 달리 이 접근 방식을 통해 개발자는 서명을 웹 애플리케이션 또는 모바일 플랫폼과 같은 사용자 지정 워크플로에 통합하여 기업이 대량 문서를 처리하는 확장성을 높일 수 있습니다.

PDF 양식에서 디지털 서명을 프로그래밍 방식으로 활성화하는 방법

디지털 서명을 프로그래밍 방식으로 구현하기 위해 개발자는 일반적으로 오픈 소스 라이브러리 또는 클라우드 기반 API를 활용합니다. 이 프로세스에는 서명 구조를 정의하는 PDF/A 또는 ISO 32000과 같은 PDF 표준에 대한 이해가 필요합니다. 아래에서는 Java 또는 Python과 같은 언어의 실제 코드 예제에 중점을 두고 인기 있는 라이브러리를 사용하는 단계별 가이드를 간략하게 설명합니다. 이 접근 방식은 미국의 ESIGN 법 또는 EU의 eIDAS와 같은 글로벌 표준을 준수하도록 보장하지만 아시아의 생태계 통합 규정과 같은 지역적 차이로 인해 추가 인증 계층이 필요할 수 있습니다.

1단계: 개발 환경 준비

먼저 강력한 PDF 조작 라이브러리를 선택합니다. Apache PDFBox(Java 기반, 무료) 또는 iText(상업용/오픈 소스 버전 사용 가능)는 디지털 서명을 지원하므로 업계에서 선호하는 선택입니다. Python 사용자의 경우 PyPDF2와 endesive를 결합하면 가벼운 대안을 제공합니다.

  • 종속성 설치: PDFBox를 사용하는 Java의 경우 Maven 아티팩트 org.apache.pdfbox:pdfbox:3.0.0을 추가합니다. iText의 경우 com.itextpdf:itext7-core:7.2.5를 사용합니다.
  • 디지털 인증서 획득: DigiCert 또는 GlobalSign과 같은 신뢰할 수 있는 인증 기관(CA)에서 PKCS#12(.p12) 파일을 획득해야 합니다. 여기에는 서명에 사용되는 개인 키와 유효성 검사에 사용되는 공개 키가 포함됩니다.

기업은 CA 비용을 평가해야 합니다. 서명자당 연간 비용이 100~500달러에 달하여 총 구현 비용에 영향을 미칠 수 있기 때문입니다.

2단계: 서명 필드가 있는 PDF 양식 만들기 또는 수정

먼저 기존 PDF를 열거나 새 PDF를 생성한 다음 보이지 않거나 보이는 서명 필드를 추가합니다.

Java에서 PDFBox 사용:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField;

PDDocument document = PDDocument.load(new File("input.pdf"));
PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();
PDSignatureField signatureField = (PDSignatureField) acroForm.getField("Signature1"); // 또는 새로 만들기
if (signatureField == null) {
    // 새 서명 필드 만들기
    signatureField = new PDSignatureField(acroForm, rectangle); // 위치 정의
    signatureField.setPartialName("Signature1");
    acroForm.getFields().add(signatureField);
}
document.save("form_with_signature.pdf");

이 코드는 지정된 사각형 영역(예: 페이지 좌표)에 서명 필드를 추가합니다. 양식의 경우 필드가 AcroForm 표준을 사용하여 대화형인지 확인합니다.

Python에서 PyPDF2 및 reportlab을 사용하여 양식 만들기:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from PyPDF2 import PdfReader, PdfWriter

c = canvas.Canvas("base_form.pdf", pagesize=letter)
c.acroForm.textfield(name='Signature1', tooltip='Digital Signature Field',
                     x=100, y=700, borderStyle='inset', forceBorder=True)
c.save()

# 기존 PDF 병합 또는 수정
reader = PdfReader("base_form.pdf")
writer = PdfWriter()
writer.append(reader)
writer.add_annotation(page_number=0, annotation=...)  # 서명 주석 추가
with open("form_with_signature.pdf", "wb") as output:
    writer.write(output)

이것은 문서 구조를 변경하지 않고 PDF가 서명을 수락할 수 있도록 하는 기반을 구축합니다.

3단계: 디지털 서명 적용

이제 인증서를 사용하여 PDF에 서명합니다. 여기에는 서명 사전을 만들고 문서 바이트를 해시하는 작업이 포함됩니다.

PDFBox 사용:

import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.*;

ExternalSigningSupport externalSigning = new ExternalSigningSupport(document, signatureField);
externalSigning.saveIncrementalForExternalSigning(new FileOutputStream("unsigned.pdf"));

byte[] cmsSignedData = // BouncyCastle 등을 사용하여 CMS/PKCS#7 서명 생성
// 인증서 및 개인 키 로드
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(new FileInputStream("certificate.p12"), password);
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, password);
Certificate[] chain = keyStore.getCertificateChain(alias);

// 외부에서 서명(예: Java의 Signature 클래스를 통해)
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(contentToSign);  // externalSigning의 바이트
byte[] signatureBytes = signature.sign();

// PDF에 적용
externalSigning.setExternalSigning(new ByteArrayInputStream(cmsSignedData));
document = externalSigning.getDocument();  // 이제 서명됨
document.save("signed.pdf");

유효성 검사의 경우 PDFBox는 서명 후 서명을 확인할 수 있습니다.

PDSignature sig = signatureField.getSignature();
if (sig.isVerificationSupported()) {
    // 타임스탬프, 인증서 체인 및 문서 무결성 확인
    boolean valid = sig.checkSignature(new InputStream());
}

Python에서 endesive 라이브러리를 사용하여 더 간단하게 서명:

import endesive.pdf
from datetime import datetime

dct = {
    'sigflags': 3,
    'sigflagsft': 132,
    'sigpage': 0,
    'sigbutton': True,
    'auto_sigfield': True,
    'sigfield_name': 'Signature1',
    'reason': 'Document signed programmatically',
    'location': 'Virtual Office',
    'contact': 'admin@company.com'
}

# PDF 바이트 로드
with open('form_with_signature.pdf', 'rb') as fp:
    datau = fp.read()

# 서명
datas = endesive.pdf.cms.sign(datau, dct, key, cert, othercerts, hashalg='sha256')
with open('signed.pdf', 'wb') as fp:
    fp.write(datas)

이것은 PDF에 서명하고 서명을 자체 포함 방식으로 포함합니다. 만료 문제를 방지하기 위해 항상 타임스탬프 기관(TSA)의 타임스탬프를 포함하여 장기 유효성 검사 테스트를 수행합니다.

4단계: 확장성을 위해 API와 통합

기업 사용의 경우 라이브러리를 클라우드 서비스와 결합합니다. 예를 들어 DocuSign의 API를 사용하면 PDF를 업로드한 후 프로그래밍 방식으로 서명할 수 있습니다. 서명 필드가 있는 PDF를 포함하여 /envelopes에 POST 요청을 보내면 API가 나머지를 처리합니다.

{
  "documents": [{"documentBase64": "base64_pdf", "name": "contract.pdf", "fileExtension": "pdf"}],
  "recipients": [{"signers": [{"email": "signer@example.com", "name": "John Doe", "recipientId": 1}]}],
  "status": "sent"
}

GET /envelopes/{envelopeId}/documents/combined를 통해 서명된 PDF를 검색합니다. 이렇게 하면 인증서 관리가 간소화되지만 봉투당 요금이 발생합니다.

보안 고려 사항: 항상 HTTPS를 사용하고, 인증서를 안전하게 저장하고(예: HSM에서), 규정을 준수합니다. EU와 같은 지역에서는 eIDAS에서 고급 서명에 적격 인증서를 요구하는 반면, 미국 ESIGN 법은 의도와 동의에 중점을 둡니다.

과제 및 모범 사례

일반적인 함정으로는 인증서 해지 확인(OCSP/CRL 사용) 및 대용량 파일 처리가 있습니다. 기업은 효율성이 최대 70%까지 향상되었다고 보고하지만 초기 설정에는 20~40시간의 개발 시간이 필요할 수 있습니다. 플랫폼 간 호환성을 위해 Adobe Acrobat의 서명 패널과 같은 도구를 사용하여 유효성을 검사합니다.

이러한 프로그래밍 방식은 기업이 서명 워크플로를 사용자 지정하고, 수동 도구에 대한 의존도를 줄이고, 데이터 보안을 강화할 수 있도록 합니다.

프로그램 방식 디지털 서명을 위한 인기 있는 도구 및 서비스

몇몇 플랫폼은 프로그래밍 방식 통합을 촉진하며, 각 플랫폼은 규정 준수, 가격 책정 및 지역 지원 측면에서 고유한 강점을 가지고 있습니다. 상업적 관점에서 선택은 볼륨, 지리적 위치 및 통합 요구 사항에 따라 달라집니다.

DocuSign: 엔터프라이즈급 전자 서명 리더

DocuSign은 개발자를 위한 강력한 API 계획을 제공하며, 스타터 계층은 연간 600달러/월 40개 봉투부터 시작합니다. 기능에는 대량 전송 API, Webhook 및 인증 추가 기능이 포함됩니다. SSO 및 감사 추적이 필요한 글로벌 팀에 적합하지만 아시아 태평양 지역의 지연 및 좌석당 가격 책정(사용자당 월 10~40달러)으로 인해 비용이 증가할 수 있습니다. 고급 계획은 대용량 자동화를 위한 사용자 지정 워크플로를 지원합니다.

이미지

Adobe Sign: 원활한 PDF 통합

Adobe Document Cloud의 일부인 Adobe Sign은 REST API를 통해 프로그래밍 방식으로 액세스할 수 있는 PDF 기본 워크플로에서 뛰어납니다. 가격은 기본 계획의 사용자당 월 약 10달러부터 시작하여 엔터프라이즈 사용자 지정 견적으로 확장됩니다. 애플리케이션 내 임베디드 서명을 지원하고 양식 필드를 조작하기 위해 Acrobat과 긴밀하게 통합됩니다. 크리에이티브 산업의 경우 시각적 사용자 지정 및 ESIGN/UETA 준수를 강조하지만 SMS 전송과 같은 추가 기능에는 추가 요금이 발생합니다.

이미지

eSignGlobal: 아시아 태평양 지역에 중점을 둔 혁신 기업

eSignGlobal은 100개 주요 국가에서 글로벌 규정 준수를 달성하고 아시아 태평양 지역(APAC)에서 강점을 보이는 경쟁력 있는 대안을 제공합니다. 아시아 태평양 전자 서명은 파편화, 높은 기준 및 엄격한 규정을 가지고 있으며, 이는 ESIGN/eIDAS와 같은 서구 프레임워크 접근 방식과 대조됩니다. 여기서 표준은 정부 수준 디지털 ID(G2B)와의 심층적인 하드웨어/API 도킹이 필요한 “생태계 통합” 솔루션을 강조합니다. 이는 미국/EU의 이메일 확인 또는 자체 선언의 기술적 장벽을 훨씬 뛰어넘습니다. eSignGlobal은 홍콩의 iAM Smart 및 싱가포르의 Singpass와 같은 로컬 통합을 통해 이 문제를 해결하여 원활하고 규정을 준수하는 워크플로를 가능하게 합니다.

이 플랫폼은 좌석 요금 없이 무제한 사용자를 지원하므로 확장 팀에 비용 효율적입니다. Essential 계획은 연간 199달러(약 월 16.6달러)로 최대 100개의 문서를 전자 서명으로 보낼 수 있으며 액세스 코드 확인을 사용하여 보안을 유지합니다. 이 모든 것이 규정 준수 기반을 기반으로 합니다. Professional 계층에는 프로그래밍 방식 서명, 대량 전송 및 위험 평가와 같은 AI 도구를 위한 API 액세스가 포함됩니다. 경쟁업체와 비교하여 가격이 저렴하면서도 유럽과 미국에서 직접 경쟁합니다. 30일 무료 평가판을 받으려면 연락처 페이지를 방문하세요.

esignglobal HK

HelloSign(Dropbox 제공): 사용자 친화적인 옵션

현재 Dropbox의 일부인 HelloSign은 PDF에 서명을 포함하기 위한 간단한 API를 제공하며, 계획은 사용자당 월 15달러부터 시작합니다. SMB의 사용 편의성이 뛰어나 템플릿 및 팀 협업을 지원하지만 고급 아시아 태평양 규정 준수 기능이 부족합니다. 중간 계층 사용자를 위한 API 할당량이 관대하며 빠른 통합에 중점을 둡니다.

디지털 서명 플랫폼의 비교 개요

기능/측면 DocuSign Adobe Sign eSignGlobal HelloSign
가격 책정(엔트리 레벨) 사용자당 월 10달러(개인) 사용자당 월 10달러 월 16.6달러(Essential, 무제한 사용자) 사용자당 월 15달러
API 지원 강력함(스타터 연간 600달러) 뛰어난 PDF 통합 Pro에 포함됨; 유연함 기본 양호
봉투 제한 사용자당 월 5~100개 사용량 기반 기본 연간 100개 문서 고급 계층 무제한
지역 규정 준수 글로벌, 미국/EU 강세 ESIGN/UETA 중점 100개 국가; 아시아 태평양 강점(iAM Smart/Singpass) 주로 미국/EU
주요 강점 엔터프라이즈 자동화 PDF 생태계 좌석 요금 없음, 생태계 통합 SMB 간편성
추가 기능 IDV, SMS(추가 요금) 결제, 스토리지 AI 도구, 대량 전송 템플릿, 알림

이 표는 중립적인 절충안을 강조합니다. DocuSign은 규모에, Adobe는 PDF 충실도에, eSignGlobal은 지역 경제성에, HelloSign은 접근성에 적합합니다.

솔루션 선택에 대한 최종 생각

DocuSign 대안을 찾는 기업의 경우 eSignGlobal은 특히 아시아 태평양 지역에서 지역 규정 준수 옵션으로 두각을 나타내며 글로벌 표준을 타협하지 않고 균형 잡힌 가격 책정 및 통합을 제공합니다. 최적의 ROI를 달성하려면 워크플로 요구 사항에 따라 평가하세요.

avatar
슌팡
eSignGlobal의 제품 관리 책임자로, 전자 서명 업계에서 풍부한 국제 경험을 보유한 노련한 리더입니다. LinkedIn에서 팔로우
지금 법적 구속력이 있는 전자 서명을 받으세요!
30일 무료 전체 기능 체험
비즈니스 이메일
시작하기
tip 비즈니스 이메일만 허용됨