웹 기술 기초
온라인 결제 서비스에서 결제가 완료된 것을 가맹점 서버가 즉시 알고 싶어 한다. 결제 서비스가 미리 등록된 가맹점의 URL로 HTTP POST로 통지를 보내는 방식(Webhook)에 대한 설명으로 올바른 것은?
- A가맹점이 결제 서비스에 일정한 간격으로 문의할 필요가 없고, 변화가 일어났을 때만 통지가 도착한다. 도착한 통지가 진짜인지는 서명 등으로 확인한다
- B가맹점 서버는 외부로부터의 요청을 받을 필요가 없으므로, 통지를 받는 URL을 인터넷에 공개하지 않아도 된다
- C통지는 브라우저와의 사이에 연 WebSocket 연결로 도착하므로, 가맹점 담당자가 항상 브라우저를 열어 두어야 한다
정답과 해설 보기
정답: A. 가맹점이 결제 서비스에 일정한 간격으로 문의할 필요가 없고, 변화가 일어났을 때만 통지가 도착한다. 도착한 통지가 진짜인지는 서명 등으로 확인한다
Webhook에서는 사건이 일어난 쪽의 서비스가, 받는 쪽이 등록한 URL로 HTTP 요청을 보내 알립니다. 받는 쪽이 상태를 반복해서 문의하는 방식에 비해 쓸데없는 요청이 없고, 변화를 즉시 알 수 있습니다. 그 대신 받는 쪽은 인터넷에서 오는 요청을 받아들여야 하므로, 공유 비밀 키에 의한 서명 등으로 통지가 진짜인지 확인합니다. 통지는 실패하면 재전송되는 경우가 있으므로, 같은 통지가 2번 도착해도 문제가 생기지 않도록 처리합니다.