저희 SaaS 서비스는 특정 이벤트(결제 완료, 상태 변경 등) 발생 시 고객사의 서버로 웹훅(Webhook) 알림을 보내주는 기능을 제공하고 있습니다.
하지만 고객사 서버의 일시적인 장애나 네트워크 문제로 웹훅 요청이 실패하는 경우가 자주 발생합니다.
발송 실패 사실을 모른 채 넘어가 민원이 발생하곤 하는데,
실무진 입장에서 웹훅 발송 성공률을 높이고 실패 건을 정기적으로 추적 및 재발송하는 관리 체계가 궁금합니다.
답변:
안녕하세요. SaaS 전환지원센터입니다.
웹훅은 고객사 서버나 네트워크 상황에 따라 일시적으로 요청이 정상 처리되지 않는 경우가 있어, 발송에 실패했을 때 이를 확인하고 다시 처리할 수 있도록 관리하는 것이 좋습니다.
우선 웹훅을 보낸 기록을 남겨두는 것이 중요합니다. 어떤 고객사에 어떤 이벤트를 보냈는지, 정상적으로 응답을 받았는지, 실패했다면 어떤 오류가 발생했는지 정도를 확인할 수 있도록 해두면 이후 장애나 민원 발생 시 원인을 파악하기 수월합니다.
일시적인 서버 장애나 네트워크 오류의 경우에는 한 번 실패했다고 바로 종료하기보다는 일정 시간 간격을 두고 자동으로 다시 보내는 방식을 적용할 수 있습니다. 반면 잘못된 주소나 인증 오류처럼 고객사 설정을 확인해야 하는 경우에는 계속 재발송하기보다 별도의 실패 건으로 남겨 담당자가 확인할 수 있도록 하는 것이 좋습니다.
또한 일정 횟수 이상 재시도했는데도 계속 실패하는 건은 운영 담당자가 확인할 수 있도록 알림을 설정해두면 좋습니다. 관리자 화면에서 실패 건과 재시도 현황을 확인할 수 있도록 하거나, 필요하다면 고객사에서도 웹훅 발송 이력을 확인할 수 있도록 제공하는 방법도 있습니다.
재발송 기능을 만들 때는 중복 처리 문제도 함께 고려해야 합니다. 실제로 고객사에서는 이벤트를 정상적으로 처리했지만 응답이 돌아오는 과정에서 문제가 발생해 SaaS에서는 실패로 인식하는 경우가 있기 때문입니다. 이벤트마다 고유한 ID를 부여하고, 동일한 이벤트가 다시 전달되더라도 고객사에서 중복 처리되지 않도록 설계하는 것이 좋습니다.
결국 웹훅은 발송 기능 자체보다도 실패했을 때 어떻게 확인하고 다시 처리할 것인지까지 함께 설계하는 것이 중요합니다. 초기에는 발송 이력과 자동 재시도 정도부터 적용하고, 서비스 규모가 커지면 실패 알림이나 고객사별 발송 현황 관리까지 확대하는 방식으로 운영할 수 있습니다.
이 외에도 현재 웹훅 운영과 관련해 궁금하신 사항이나 구체적으로 확인하고 싶은 부분이 있으시면 전문가 컨설팅 요청 및 추가 질문을 남겨주시기 바랍니다. 확인 후 안내드리겠습니다.
감사합니다.