포도가게의 개발일지
[Web] Webhook? 본문
what?
- 웹훅은 웹페이지 또는 웹앱에서 발생하는 특정 이벤트들을 callback으로 변환해주는 방버이다. 일반적인 API는 클라이언트가 서버를 호출하는 방식이다. 하지만 웹훅의 경우 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하는 방식이면 "역방향 API"라고도 부른다.(sse같은건가?) Webhook 프로바이더는 해당 이벤트가 발행하면 HTTP POST 요청을 생성하여 callback URL(endpoint, 목적지)로 이벤트 정보을 보냅니다.
why?
- 메일을 수신할 수 있는 웹앱의 클라이언트와 서버가 있다. 구현할 것은 서버측에서 메일을 수신하였을 경우 클라이언트 측으로 알림 메세지를 전달하는 것이다.!! 알림!! (즉 busy waiting쓸데없는 overhead를 줄 일 수있다 하지만 단점으로는 server가 클라이언트의 정보를 알아야되니 그만큼의 리소스가 소모되겠지 ..)
1. 메일이 수신되었을 경우 : 서버 -> 클라이언트로 미리 지정한 클라이언트 callback url로 메일에 대한 정보를 보냄
2. 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력
단점: 클라이언트 서비스 error로 인해 webhook에서 오는 data가 유실될 수 있음. 또는 response처리가 제대로 되지않은경우 webhook이 실패한지 알고 다시 보낼수있음.
how?
기본적으로 http post를 이용하여 구현하는 것 같다. 아마 client url이 필요할것이고 그것을 입력해놓으면 end point에서 해당 이벤트 발생시 post method를 쏘는것 같다. http가 보안 문제가 있을 수 있으니 https로 하면 좋을 것 같은데 그럼 client에서 SSL을 발급받아야 된다. 음 람다 같은거 이용해서 뭐 만들어도 재밌어 보인다.
'웹' 카테고리의 다른 글
[Web] Cookie (0) | 2022.04.01 |
---|---|
[Web] Blob (0) | 2022.03.26 |
[Web] SSE(Server Sent Event) (0) | 2022.03.26 |
Restful API? (0) | 2022.01.18 |
Socket vs WebSocket vs Socket.IO? (0) | 2021.11.26 |