Webhook 이란?
- 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능
= 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행되었음을 http post로 알리는 개념
예를 들어)
메일을 수신할 수 있는 웹앱의 클라이언트와 서버가 있다고 가정하자.
구현할것은 서버측에서 메일을 수신하였을 경우, 클라이언트 측으로 알림 메시지를 전달하는것이다.
i) 일반적인 API (Polling) 클라이언트 -> 서버
1. 클라이언트에서 메일이 수신되었는지 확인하기 위해 서버로 요청
1.1 수신된 경우
- 메일 정보를 받아옴
- 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력
1.2 수신되지 않은 경우
- 재요청, 1번으로 돌아감 or 미수신 관련 로직으로
ii) 웹훅 (역방향 api)
1. 메일이 수신된 경우, 미리 지정한 클라이언트의 callback url 로 메일에 대한 정보를 전송
- 요청은 http post 방식으로 이뤄지며, 주로 json을 활용
(callback url : 서버측에서 클라이언트의 어떤 url로 데이터를 보낼지 정해놓은 주소)
- 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력
@ api 폴링은 주기를 60초에서 120초 설정하는것
실시간 이벤트로 데이터를 받기어려움 -> 웹훅은 가능
* Webhook endpoint
-웹훅이 이벤트 핸들러, 웹훅 엔드포인트는 이벤트의 목적지인 target
'백엔드 back-end' 카테고리의 다른 글
[Spring] @Controller & @RestController 차이/ 함께 사용가능? / 사용하는 이유? (0) | 2024.07.23 |
---|---|
[JAVA] @JsonIgnoreProperties(ignoreUnknown=true) (0) | 2024.07.16 |
로그 레벨 trace/debug/info/warn/error/fatal (0) | 2023.12.12 |
Lombok (0) | 2023.03.13 |
PUT, DELETE API (0) | 2023.03.13 |