안정적인 웹훅 수신부 구현 패턴
·
Pattern
들어가며입사 후 처음으로 외부 서비스의 웹훅을 받아 처리하는 기능을 맡았다. 처음엔 단순해 보였다."엔드포인트 하나 열고, 요청 받아서 DB에 저장하면 끝 아닌가?" 근데 막상 구현하다 보니 질문이 끝없이 나왔다.같은 이벤트가 두 번 오면 어떻게 되지?처리 중에 서버가 죽으면?웹훅 보안은 HMAC이라던데, 정작 연동할 서비스는 헤더에 키 하나만 주던데?웹훅 요청을 DB에 저장해야 하나, 그냥 로그면 되나?송신자가 timeout 났다고 재시도하면, 우리 시스템 멀쩡한데 중복 처리되는 거 아닌가?이리저리 알아보고 공부하며 알게 된 내용을 정리했다. 비록 정답은 아닐 수 있어도, 같은 고민을 하는 사람에게 조금이나마 도움이 됐으면 한다.1. 웹훅의 본질: 왜 어려운가웹훅을 한 줄로 정의하면 "송신자가 수신자에..