Webhook 이란?
Slack Bot API를 쓰다가 Webhook 이라는 개념이 들어왔다.
정확하게 어떤 의미라고 설명을 할 수 없는 것 같아서 공부를 해봤다.
Webhook이 뭘까
- 웹서비스를 제공해주는 서버 단에서 어떠한 이벤트를 외부에 전달하는 방법 이란다.
- 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행 되었음을 HTTP POST로 알리는 개념.
- Webhook을 구현한 웹 애플리케이션은 특정 작업이 수행될 때 URL에 대해 POST 방식으로 요청을 생성한다.
예를 들어
게시판에 새로운 글이 등록 될 때마다, 특정 알림을 다른 서비스나, 메신저에 알리려고 한다. 라는 상황이 있다고 치자
그러면, 게시판에 새로운 글이 등록 된다.
게시판에 새로운 글이 등록 된다.
라는 액션이 있는 것이다. 이런 액션이 일어나는 것에 대해서 hooking을 하는 것이 webhooking이다.
게시판에 새로운 글이 등록 되면,
카카오톡에 알림을 보낸다.
이런 후속 처리가 필요하다면, 맨 처음의 액션을 hooking 해야 하는 것이고, web에서 이 hooking을 제공하는 것?
그게 webhook 인 것 같다.
그러면 hooking은 뭘까
- 어떠한 액션 앞 또는 뒤에 추가로 어떤 일을 하도록 하는 것.
- Slack bot api에서 살펴보면.. 봇 한테 어떠한 메세지를 보내면 그 메세지를 받고 마땅한 일을 하게 하는 것이 아닐까?
그럼 webhook은
- 웹 환경에서 위에서 말한 hooking을 할 수 있도록 제공하는 것?
- hooking을 해서 웹서버를 통해서 액션을 만들고.. 이 액션의 URL을 등록하는 방식이 webhook
일반적으로 웹 서비스는 정보를 필요로 하는 측이 클라이언트로서 서비스에 요청하는 것인데.. 웹훅은 그 반대 방향으로 요청된다.
정보를 필요로 하는 측이 서버가 되고, 엔드포인트 주소를 서비스에 제공하게 되며, 서비스는 어떤 정보를 줄 수 있는지 공개하는 방식으로 생각하면 된다.
현재는 대충 어떤 느낌인지 이해만 한 수준인 것 같다.
실제로 사용해보고 어떤 것인지 확실히 알게 되면 다시 한번 이 뒤에 이어서 정리해야 겠다.
참고 자료:
댓글남기기