
웹훅이란?
데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능
웹훅 동작 상태

이미지: tosspayments 개발자 센터
📌💡웹훅이 생긴 이유?
기존의 API 폴링(Polling)을 사용하면 클라이언트가 서버 API를 호출해서 이벤트가 발생했는지 확인해야 하는 단점이 있다!
API 폴링 동작 상태

이미지: tosspayments 개발자 센터
📌클라이언트가 n초 간격으로 request를 서버로 계속 날려서 response를 전달받는 방식
웹훅, API 폴링의 차이점 비교
| 웹훅 | API 폴링 | |
|---|---|---|
| 방식 | 이벤트 발생 시 클라이언트에게 자동으로 데이터를 전송한다. (푸시 방식) | 라이언트가 정기적으로 서버에 요청을 보내 새 데이터를 확인한다. (풀 방식) |
| 동작 원리 | 사전에 설정된 URL로 POST 요청을 통해 이벤트 전달 | 주기적으로 GET 요청을 보내 데이터를 가져온다 |
| 예시 | 친구에게 "시간 나면 전화 줘"라고 문자를 남기는 것 | API 폴링은 친구가 받을 때까지 계속 전화하는 것 |
웹훅, API 폴링의 장단점 비교
| 웹훅 | 장점 | 단점 |
|---|---|---|
| 실시간 업데이트 가능 | 설정 복잡 (클라이언트가 웹훅 엔드포인트를 준비해야 함) | |
| 서버와 클라이언트 간 불필요한 요청 최소화 | 보안 위험 (웹훅 URL이 노출될 경우 악용 가능) |
| API 폴링 | 장점 | 단점 |
|---|---|---|
| 구현이 단순 (웹훅 설정 불필요) | 불필요한 요청이 많아 리소스 낭비 | |
| 서버에 직접적인 제어가 없어도 데이터를 가져올 수 있다 | 실시간성 부족 (폴링 주기에 따라 데이터 지연 발생) |

이미지: tosspayments 개발자 센터
📌토스의 경우 직관적인 이벤트 타입을 명시하여 해당 이벤트가 무엇을 의미하는지 알 수 있다!

이미지: tosspayments 개발자 센터
📌해당 DEPOSIT_CALLBACK 이벤트 예시
DEPOSIT_CALLBACK 이벤트 등록: 결제 상태가 변경되어 등록한 이벤트가 발생하면 웹훅 URL로 웹훅 이벤트가 전송된다.

이미지: tosspayments 개발자 센터
📌전송 상태는 '전송 중', '성공', '실패' 중 하나

광운대학교 개발자 오픈채팅방
/가이드
📌
오픈채팅 방장봇이 지정해 둔 명령어를 입력하면 자동으로 해당 명령어가 실행되어 결과를 받을 수 있다!



해당 #테스트 채널에 웹후크(incoming-webhook)가 추가되었음을 확인할 수 있다.

{
"channel": "테스트",
"username": "문다예_bot",
"text" : "hello world",
"icon_emoji" : ":mega:"
}

username 문다예_bot이 생성되어 hello world를 출력하였다.