본문 바로가기
개발 공부/서버

[서버 기초] Webhook이란? API랑 뭐가 다른 건데?

by 악마의 개발자 2025. 5. 14.
반응형


💡 결제 완료되면 바로 알림 오던데, 그건 어떻게 되는 거야?”

우리가 자주 사용하는 서비스들:

  • 카카오페이 결제 완료 → 우리 서버로 알림 도착
  • 깃허브에 푸시 → 디스코드에 메시지 자동 전송

이거 누가 요청한 거지? 우리가 요청한 것도 아닌데 자동으로 알림이 와요!”

비밀이 바로 Webhook(웹훅)입니다.
오늘은 API와의 차이중심으로
Webhook알기 쉽게 정리해드릴게요 😊


🌐 API란?

API(Application Programming Interface)

우리가 서버에 요청해서 데이터를 가져오거나 저장하는 방식입니다.

 

우리가 먼저 요청!

예시:

GET /products → 상품 목록 가져오기
POST /orders → 주문 요청

📡 Webhook이란?

Webhook(웹훅)

상대 서버가 우리 서버에게 먼저 알려주는 시스템입니다.

 

상대방이 먼저 요청!
서버는 기다리기만 하면

예시:

  • 카카오페이에서 결제 완료됨 → 카카오가 서버에 POST 요청
  • GitHub에서 코드 변경됨 → GitHub서버에 POST 요청

🆚 Webhook vs API 비교표

항목 API Webhook
누가 먼저 요청? 우리가 요청 상대방이 우리에게 요청
방식 Pull (우리가 끌어옴) Push (상대가 밀어줌)
호출 시점 우리가 필요할 상대가 이벤트 발생 시점
예시 주문 정보 조회 결제 완료 알림
구조 요청-응답 이벤트-콜백 방식
사용 프론트에서 데이터 불러오기 실시간 상태 반영 (결제, 배송 등)
 

📦 Webhook 흐름 예시

[카카오페이 서버]
      ↓ (POST)
[우리 서버: /webhook/kakaopay]
→ 요청 본문에 "결제 완료" 정보 담겨 있음
→ 우리 서버는 해당 데이터를 저장/처리

💡 우리 서버는 "Webhook 수신용 엔드포인트"만들어두기만 하면 됩니다.


🔐 Webhook 실무 포인트

체크리스트 이유
인증 방식 확인 위조 요청 방지 (secret, signature 사용)
응답은 빠르게 상대 서버가 응답 대기 중, 응답 지연 재시도 발생
요청 기록 로깅 디버깅, 보안 확인용 로그 저장
상태코드 200 응답 성공적으로 수신했다는 의미로 필요
 

💬 실무에서 자주 쓰는 Webhook 예시

서비스 Webhook 활용 사례
결제 시스템 결제 완료, 환불 완료 알림
GitHub 푸시, PR, Merge 이벤트 알림
Slack, Discord 메시지 자동 전송
Shopify 주문 생성, 배송 완료 이벤트 발생 서버 호출
 

🤔 “Webhook써야 할까?”

Webhook유리한 경우:

  • 실시간성중요할 때 (결제, 주문, 상태 변화)
  • 상대방의 이벤트를 자동 반영해야

굳이 써도 되는 경우:

  • 내가 직접 API원하는 시점에 요청하면 되는 상황

🧠 정리 한마디!

구분 API Webhook
내가 요청
상대가 요청
방식 Pull Push
용도 데이터 조회, 등록 이벤트 알림, 실시간 처리
 

API내가 물어보는 것,
Webhook상대가 먼저 알려주는 것”

차이만 기억하면 OK! 😊


📌 다음 예고: 10편 – "DB에서 Primary KeyForeign Key뭐가 다른데?"

  • PKFK, 도대체 중요한지
  • 관계형 데이터 설계할 헷갈리지 않도록 예제로 정리!
반응형