Day 30 · 5/5
🌿 중급 백엔드

Webhook이 뭔가요?

쉽게 이해하기

택배 배송 알림을 떠올려보세요. 택배가 출발하면 자동으로 문자가 오고, 도착하면 또 문자가 오잖아요. 일일이 택배 사이트에 들어가서 '배송 조회' 버튼을 누를 필요가 없죠. Webhook도 마찬가지로, 서버에서 '결제 완료', '회원가입' 같은 이벤트가 생기면 자동으로 지정된 URL로 데이터를 보내주는 거예요.

핵심 정리

서버에서 특정 이벤트가 발생하면 자동으로 다른 서버에 알려주는 방식이에요.

자세히 알아보기

Webhook은 특정 이벤트가 발생했을 때 자동으로 HTTP POST 요청을 보내는 방식의 알림 시스템입니다. 일반적인 API는 '내가 필요할 때 요청(Pull)'하는 방식이라면, Webhook은 '서버가 알아서 보내주는(Push)' 방식이에요. 실시간성이 중요한 서비스에서 필수적으로 사용됩니다. Webhook의 작동 원리는 간단합니다. 먼저 서비스 제공자에게 '이 URL로 알림을 보내주세요'라고 등록합니다. 그러면 특정 이벤트(예: 결제 완료, 새 메시지 도착)가 발생할 때마다 그 URL로 POST 요청이 날아와요. 받는 쪽에서는 해당 URL에 엔드포인트를 만들어서 데이터를 처리하면 됩니다. 실무에서 Webhook이 많이 쓰이는 예시를 보면, 결제 시스템(토스페이먼츠, 스트라이프)은 결제 완료/실패를 Webhook으로 알려줍니다. 깃허브는 코드가 푸시되면 Webhook으로 CI/CD 파이프라인을 자동 실행시키죠. 슬랙도 특정 채널에 메시지가 오면 Webhook으로 봇을 작동시킬 수 있어요. Webhook 구현 시 주의할 점이 있습니다. 첫째, 보안을 위해 Webhook 요청이 진짜 해당 서비스에서 온 건지 검증해야 합니다(시크릿 키 확인). 둘째, 네트워크 오류로 Webhook이 실패할 수 있으니 재시도 로직을 고려해야 해요. 셋째, Webhook 처리가 오래 걸리면 타임아웃이 발생할 수 있으니, 빠르게 응답하고 실제 처리는 백그라운드에서 하는 게 좋습니다.