BoldSign Webhooks: 앱 vs 계정—선택 방법
Source: Dev.to
간단한 답변
| 사용 사례 | 앱‑수준 웹훅 | 계정‑수준 웹훅 |
|---|---|---|
| 언제 | 멀티테넌트 SaaS에서 테넌트 또는 통합 격리가 필요하고, 클라이언트별 라우팅 및 별도의 스테이징과 프로덕션 환경이 필요합니다. | 단일 팀이나 내부 시스템을 위해 하나의 간단한 웹훅 엔드포인트와 전체 계정 수준 가시성을 원합니다. |
| 이점 | 강력한 격리와 라우팅 유연성. | 단일 엔드포인트로 전체 가시성을 제공합니다. |
이 가이드에서 얻을 수 있는 것
- BoldSign 웹훅이 작동하는 방식에 대한 간략한 설명.
- 앱 수준(App‑Level)과 계정 수준(Account‑Level) 웹훅의 명확한 비교.
- 현실적인 시나리오와 함께 각 옵션을 선택해야 할 시점에 대한 가이드.
- 아키텍처에 적용할 수 있는 의사결정 프레임워크.
- 신뢰할 수 있고 안전한 웹훅 처리를 위한 기술적 모범 사례.
BoldSign 웹훅 작동 방식
이 섹션에서는 BoldSign 웹훅이 무엇인지 고수준에서 설명하고, 통합을 동기화하는 데 왜 중요한지 설명합니다.
BoldSign 웹훅은 HTTP POST 요청으로, 구독된 이벤트가 발생할 때마다 BoldSign이 귀하의 엔드포인트로 전송합니다.
이러한 이벤트는 전체 서명 수명 주기를 포괄하며, 포함되는 항목은 다음과 같습니다:
- 문서 이벤트: Sent, viewed, signed, completed, declined, expired.
- 인증 이벤트: Authentication failed, Identity Verification Initiated.
전체 목록은 **Available Webhook Events – API Documentation**를 참조하십시오.
BoldSign API를 폴링하는 대신, 중요한 변경이 있을 때마다 BoldSign이 귀하의 웹훅 엔드포인트를 호출합니다.
웹훅을 사용하는 이유
- 중요한 변경에 즉시 대응합니다.
- API 폴링을 없애거나 최소화합니다.
- 워크플로와 백엔드 업데이트를 자동화합니다.
- 정확하고 실시간 문서 추적을 유지합니다.
전체 페이로드 스키마와 샘플 JSON은 **Sample Event Data**를 참조하십시오.
첫 번째 웹훅을 설정하려면 **Setting Up a Webhook**를 확인하십시오.
앱‑레벨 vs. 계정‑레벨 웹훅: 주요 차이점
| 항목 | 앱‑레벨 웹훅 | 계정‑레벨 웹훅 |
|---|---|---|
| 범위 | 특정 OAuth 애플리케이션 하나의 이벤트 | 전체 BoldSign 계정의 이벤트 |
| 추천 사용 사례 | 멀티‑테넌트 SaaS 앱, 클라이언트‑별 통합, 스테이징 vs. 프로덕션 구분 | 단일 팀 워크플로, 중앙 집중식 추적, 간단한 통합 |
| 핵심 이점 | 강력한 격리와 라우팅 유연성 | 하나의 웹훅 엔드포인트로 전체 가시성 확보 |
| 웹훅 엔드포인트 | OAuth 앱당 고유 URL | 모든 이벤트에 대한 하나의 URL |
| 데이터 분리 | 앱 또는 클라이언트별로 깔끔하게 분리 | 계정 전체 활동을 하나의 스트림으로 통합 |
| 확장성 | 다른 앱에 영향을 주지 않고 앱 추가 가능 | 유지 관리가 가장 쉬움; 웹훅 설정이 하나뿐 |
| 가시성 | 해당 앱의 문서에만 제한 | 계정 전체에 대한 가시성 제공 |
앱‑수준 웹훅
앱 수준 웹훅이란
앱‑수준 웹훅은 BoldSign의 특정 OAuth 애플리케이션을 통해 생성되거나 전송된 문서에 대해서만 이벤트를 전송합니다. 클라이언트별 또는 환경별로 여러 OAuth 앱을 보유하고 있다면, 각 앱마다 고유한 웹훅 설정 및 URL을 가질 수 있습니다.
앱‑수준 웹훅을 사용해야 할 경우
다음과 같은 경우 앱‑수준 웹훅을 선택하세요:
- 다중 테넌트 SaaS 솔루션을 구축하고 고객별 격리를 원할 때.
- 스테이징과 프로덕션을 구분하는 별도 웹훅이 필요할 때.
- 고객별로 서로 다른 CRM, ERP, 백엔드로 라우팅해야 할 때.
- 다른 통합에 영향을 주지 않고 특정 통합을 끄거나 조정하고 싶을 때.
요약하면, 격리와 라우팅 제어가 중요한 경우 앱‑수준 웹훅이 적합합니다.
앱‑수준 예시 시나리오
- SaaS 플랫폼이 수백 명의 고객을 위해 BoldSign을 통합합니다.
- 각 고객(테넌트)은 자체 BoldSign OAuth 앱을 보유합니다.
- 각 OAuth 앱마다 SaaS는 해당 테넌트의 통합 파이프라인으로 연결되는 앱‑수준 웹훅 엔드포인트를 정의합니다.
- 문서가 서명되면 BoldSign은 해당 테넌트 앱과 연결된 웹훅에 오직 이벤트를 전송합니다.
- 테넌트의 CRM 또는 백엔드는 자신에게 해당하는 문서 이벤트만 받습니다.
결과: 고객별로 깔끔하게 분리되고 명확한 라우팅이 이루어지며, 다중 테넌트 시스템에 적합한 확장 가능한 패턴을 제공합니다.
Source: …
계정‑레벨 웹훅
정의
계정‑레벨 웹훅은 전체 BoldSign 계정에 적용됩니다. 하나의 웹훅 엔드포인트를 설정하면 BoldSign은 해당 계정의 모든 문서 이벤트를 그 URL로 전송합니다. 해당 계정의 문서에서 발생하는 모든 작업이 하나의 중앙 웹훅으로 흐르게 됩니다.
계정‑레벨 웹훅이 적합한 경우
다음 상황에 계정‑레벨 웹훅을 선택하십시오:
- 모든 활동을 모니터링해야 하는 단일 팀 또는 내부 시스템이 있는 경우.
- 단순함이 우선이며 하나의 통합 지점을 선호하는 경우.
- 클라이언트별 격리가 필요하지 않은 경우(예: 단일 조직이 BoldSign을 사용하는 경우).
계정‑레벨 웹훅을 선택해야 할 때
BoldSign을 사용하는 팀이나 부서—인사, 법무, 재무, 영업 등—가 모든 이벤트를 한 곳에서 수신하고 처리하고자 할 때 유용합니다.
- 모든 이벤트를 한 곳에서 수신하고 처리하고 싶을 때.
- 내부 대시보드나 중앙 모니터링을 구축하고자 할 때.
- 최소한의 구성 요소로 가장 간단한 설정을 원할 때.
요약: 단순함과 전체 가시성이 엄격한 테넌트 별 구분보다 더 중요한 경우 계정‑레벨이 이상적입니다.
계정‑레벨 예시 시나리오
- 인사팀이 BoldSign을 사용해 오퍼 레터, NDA, 온보딩 문서를 전송합니다.
- 인사팀은 모든 이벤트를 인사 시스템으로 전송하는 단일 계정‑레벨 웹훅을 설정합니다.
- 인사 시스템은 “completed”(완료), “declined”(거부), “expired”(만료) 이벤트를 수신하고 후보자 상태를 실시간으로 업데이트합니다.
결과: 하나의 통합, 하나의 웹훅, 그리고 모든 인사 문서 활동에 대한 완전한 가시성.
의사결정 가이드: 어떤 웹훅 레벨을 선택해야 할까요?
| 시나리오 | 권장 웹훅 레벨 |
|---|---|
| 여러 클라이언트 또는 테넌트를 지원하는 경우 | App‑Level |
| 별도의 스테이징 및 프로덕션 환경을 사용하는 경우 | App‑Level |
| 클라이언트 또는 통합 간에 엄격한 데이터 격리가 필요한 경우 | App‑Level |
| 팀이 하나이거나 내부 통합이 하나인 경우 | Account‑Level |
| 단순성을 원하고 전체 계정 수준 가시성이 필요한 경우 | Account‑Level |
| 전체 문서 활동을 위한 내부 대시보드를 구축하는 경우 | Account‑Level |
많은 실제 환경에서 팀은 단순성을 위해 Account‑Level부터 시작합니다. 멀티테넌트 또는 더 복잡한 통합 패턴으로 성장함에 따라, 격리가 필요한 사용 사례에 대해 App‑Level을 도입합니다.
당신은 영원히 하나의 패턴에 얽매여 있지 않습니다. 다음과 같이 할 수 있습니다:
- 첫 번째 통합을 위해 Account‑Level부터 시작합니다.
- 나중에 테넌트 또는 제품별로 App‑Level 웹훅을 도입합니다.
- 아키텍처가 필요하다면 두 유형을 동시에 운영합니다.
실제 워크플로우에서 이 선택이 어떻게 적용되는지
인사 및 직원 온보딩
- 시나리오: 인사팀이 BoldSign을 사용해 제안서, NDA, 고용 계약서를 보냅니다.
- 웹훅 레벨: 계정 수준
- 구현: 단일 웹훅 엔드포인트가 모든 문서 이벤트(전송, 조회, 서명, 거부)를 인사 시스템에 전달합니다.
- 영향: 인사 대시보드의 상태 업데이트를 자동화하고, 온보딩 워크플로우를 트리거하며, 후보자가 누락되지 않도록 합니다.
다중 테넌트 SaaS를 위한 영업 계약 관리
- 시나리오: SaaS 공급업체가 여러 개별 고객의 계약을 관리합니다.
- 웹훅 레벨: 앱 수준
- 이유: 각 고객마다 자체 OAuth 앱이 있어, 각 테넌트의 이벤트가 해당 웹훅 엔드포인트로 전송됩니다.
- 영향: 각 고객의 CRM 또는 백엔드가 해당 데이터만 받게 되어 데이터 분리와 수백 개 계정에 대한 확장이 용이해집니다.
법적 컴플라이언스 및 감사 추적
- 시나리오: 로펌이 모든 서명 이벤트에 대한 신뢰할 수 있는 상세 감사 추적이 필요합니다.
- 웹훅 레벨: 통합 설계에 따라 앱 수준 또는 계정 수준 중 선택 가능합니다.
- 이유: 웹훅은 완료, 거부, 서명된 이벤트를 실시간으로 전달하여 컴플라이언스 시스템에 기록할 수 있습니다.
- 영향: 검증 가능한 감사 추적을 자동으로 구축해 감사 시 수작업 부담과 위험을 감소시킵니다.
내부 운영 대시보드
- 시나리오: 회사가 팀 전반의 모든 문서를 볼 수 있는 중앙 대시보드를 원합니다.
- 웹훅 레벨: 계정 수준
- 이유: 하나의 웹훅이 모든 문서 이벤트를 데이터 웨어하우스 또는 분석 서비스로 스트리밍합니다.
- 영향: 최소 설정으로 팀 간 가시성과 보고가 가능해집니다.
BoldSign 웹훅을 위한 기술 베스트 프랙티스
서명 검증
- 각 웹훅 요청에는
X‑BoldSign‑Signature헤더가 포함됩니다. - 이 서명을 HMAC‑SHA256 및 웹훅 시크릿을 사용해 검증하십시오.
- 서명 검증에 실패한 요청은 거부합니다.
빠르고 예측 가능한 응답
- 성공적으로 처리된 경우 HTTP 200을 10 초 이내에 반환합니다.
- 처리량이 많을 경우 작업을 백그라운드 작업 큐에 넣고 200을 빠르게 반환합니다.
재시도 처리
- BoldSign은 지수 백오프 방식으로 실패한 전달을 재시도합니다.
- 재시도는 일반적으로 ~1 분부터 시작해 최대 24 시간까지 지속됩니다.
- 재시도된 이벤트가 데이터를 손상시키거나 중복을 만들지 않도록 **멱등성(idempotent)**을 갖춘 핸들러를 설계합니다.
견고한 로깅
- 들어오는 이벤트 ID, 유형, 타임스탬프를 기록합니다.
- 검증 실패 및 처리 오류를 디버깅에 충분히 도움이 되도록 상세히 기록합니다.
- 로그를 기존 스택(CloudWatch, ELK, Datadog 등)에 집계하여 문제를 쉽게 추적할 수 있게 합니다.
환경별 구분
- 스테이징과 프로덕션에 App‑Level을 별도로 사용하는 경우 시크릿, URL, 로그를 명확히 구분합니다.
- 스테이징 웹훅이 프로덕션 시스템으로(또는 그 반대로) 전송되지 않도록 합니다.
결론
BoldSign에서 올바른 웹훅 레벨을 선택하는 것은 구문보다 아키텍처에 더 가깝습니다:
- 앱 수준 웹훅을 선택하세요. 정밀함, 테넌트 격리 또는 환경 분리가 필요할 때. 여러 클라이언트를 지원하거나 별도 환경을 유지하거나 OAuth 앱당 세밀한 라우팅을 원할 때 이상적입니다.
- 계정 수준 웹훅을 선택하세요. 단순함, 중앙 집중식 가시성 및 관리할 웹훅 엔드포인트가 하나만 필요할 때. 단일 팀, 내부 대시보드 및 간단한 통합에 이상적입니다.
두 접근 방식 모두 실시간 이벤트 기반 워크플로를 폴링 없이 제공합니다. 올바른 선택은 시스템, 팀 및 통합 구조에 따라 달라집니다.
구성, 페이로드 형식, 이벤트 유형 및 보안 세부 사항을 더 깊이 알아보려면 BoldSign 개발자 문서를 참조하세요.
추가 리소스
- 자세한 내용은 공식 BoldSign Webhooks documentation 를 확인하세요.
- 30일 무료 체험으로 안전하게 실험해 볼 수 있습니다.
- 통합에 맞는 올바른 접근 방식을 설계하는 데 도움이 필요하신가요? BoldSign support portal 을 통해 문의하세요.
관련 블로그
- Simplify Signing Policies and Procedures in Accounting Firms with BoldSign
- How BoldSign Helps with Account Openings in Banking
- File Uploads in the BoldSign Mobile App: Everything You Need to Know
참고: 이 블로그는 원래 boldsign.com 에 게시되었습니다.