Seize your moment! πŸ‘Ύ

μ•ˆλ…•ν•˜μ„Έμš”. Ericμž…λ‹ˆλ‹€. 제 λΈ”λ‘œκ·Έμ— λ°©λ¬Έν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

πŸ’» κ°œλ°œκ³΅λΆ€/Web

[Eric's CS] μ›Ήν›…(WebHook) ? 🎣

Eric_ko 2023. 4. 6. 08:17

βœ… Abstarct

μ›Ήν›…(Webhook)은 μ›Ή μ„œλΉ„μŠ€ κ°„μ˜ μ‹€μ‹œκ°„ μƒν˜Έ μž‘μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μžλ™ν™”λœ λ°©λ²•μž…λ‹ˆλ‹€.
이 κΈ€μ—μ„œλŠ” μ›Ήν›…μ˜ κ°œλ…κ³Ό 원리, 그리고 μ‚¬μš© μ˜ˆμ‹œλ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.
 

πŸ” μ›Ήν›…(Webhook)μ΄λž€?

μ›Ήν›…(Webhook)은 ν•œ μ‹œμŠ€ν…œμ—μ„œ λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ 이벀트 정보λ₯Ό μ „λ‹¬ν•˜λŠ” μžλ™ν™”λœ λ°©λ²•μž…λ‹ˆλ‹€. 웹훅은 주둜 μ›Ή μ„œλΉ„μŠ€ κ°„μ˜ μ‹€μ‹œκ°„ μƒν˜Έ μž‘μš©μ— μ‚¬μš©λ˜λ©°, νŠΉμ • μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œλ§ˆλ‹€ 정보λ₯Ό μ „λ‹¬ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
 

μ›Ήν›…μ˜ 원리

웹훅은 일반적으둜 HTTP POST μš”μ²­μ„ μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ „μ†‘ν•˜λ©°, 이λ₯Ό λ°›λŠ” μ‹œμŠ€ν…œμ€ μ›Ήν›…μ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³  μ μ ˆν•œ 응닡을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 λ°©μ‹μœΌλ‘œ μ›Ή μ„œλΉ„μŠ€ κ°„μ˜ μ‹€μ‹œκ°„ μƒν˜Έ μž‘μš©μ„ 효율적으둜 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 

μ›Ήν›… μ‚¬μš© μ˜ˆμ‹œ

온라인 μ‡Όν•‘λͺ°μ—μ„œ κ²°μ œκ°€ μ™„λ£Œλ˜λ©΄ 결제 μ‹œμŠ€ν…œμ—μ„œ 결제 정보λ₯Ό 온라인 μ‡Όν•‘λͺ° μ‹œμŠ€ν…œμœΌλ‘œ 전달해야 ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 웹훅을 μ‚¬μš©ν•˜λ©΄ 결제 μ‹œμŠ€ν…œμ—μ„œ 온라인 μ‡Όν•‘λͺ° μ‹œμŠ€ν…œμœΌλ‘œ 결제 정보λ₯Ό μžλ™μœΌλ‘œ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.
 
λ˜ν•œ, GitHub와 같은 버전 관리 μ‹œμŠ€ν…œμ—μ„œλŠ” μ½”λ“œ λ³€κ²½ 사항이 λ°œμƒν•˜λ©΄ 웹훅을 μ‚¬μš©ν•˜μ—¬ 지속적 톡합(CI) μ„œλΉ„μŠ€μ— μ•Œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 CI μ„œλΉ„μŠ€λŠ” λ³€κ²½ 사항을 μžλ™μœΌλ‘œ λΉŒλ“œν•˜κ³  ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ›Ήν›… κ΅¬ν˜„ μ‹œ 주의 사항

웹훅을 κ΅¬ν˜„ν•  λ•Œ λͺ‡ 가지 주의 사항이 μžˆμŠ΅λ‹ˆλ‹€.
- λ³΄μ•ˆ: 웹훅은 원격 μ„œλ²„μ™€μ˜ μƒν˜Έ μž‘μš©μ΄κΈ° λ•Œλ¬Έμ— λ³΄μ•ˆμ΄ μ€‘μš”ν•©λ‹ˆλ‹€. 인증 및 κΆŒν•œ λΆ€μ—¬λ₯Ό 톡해 λ°μ΄ν„°μ˜ 무단 접근을 방지해야 ν•©λ‹ˆλ‹€.
- 였λ₯˜ 처리: μ›Ήν›… μš”μ²­μ΄ μ‹€νŒ¨ν•  경우, μž¬μ‹œλ„ λ©”μ»€λ‹ˆμ¦˜μ„ κ΅¬ν˜„ν•˜μ—¬ 웹훅이 μ•ˆμ •μ μœΌλ‘œ λ™μž‘ν•˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
- μ„±λŠ₯: μ›Ήν›… μš”μ²­μ€ μ‹€μ‹œκ°„μœΌλ‘œ μ²˜λ¦¬λ˜μ–΄μ•Ό ν•˜λ―€λ‘œ, λ°›λŠ” μ‹œμŠ€ν…œμ€ λΉ λ₯΄κ²Œ 응닡할 수 μžˆλ„λ‘ μ΅œμ ν™”λ˜μ–΄μ•Ό.
 

Webhooks vs APIs

 

API (Application Programming Interface)

APIλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” 일련의 ν”„λ‘œν† μ½œ, 도ꡬ 및 κ·œμΉ™μž…λ‹ˆλ‹€. APIλŠ” μ„œλΉ„μŠ€ μ œκ³΅μžκ°€ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 μ™ΈλΆ€ κ°œλ°œμžλ“€μ΄ μ‚¬μš©ν•  수 있게 ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. API ν˜ΈμΆœμ€ 주둜 μ‚¬μš©μžμ˜ μš”μ²­μ— 따라 이루어지며, λŒ€λΆ€λΆ„μ˜ 경우 ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— 데이터λ₯Ό μš”μ²­ν•˜κ±°λ‚˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ μ§€μ‹œν•©λ‹ˆλ‹€. 이λ₯Ό "ν’€" λ°©μ‹μ˜ 톡신이라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 

차이점 μš”μ•½

- 트리거 방식: 웹훅은 μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ μžλ™μœΌλ‘œ ν˜ΈμΆœλ˜λŠ” 반면, APIλŠ” μ‚¬μš©μž λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— 따라 ν˜ΈμΆœλ©λ‹ˆλ‹€.
- 톡신 방식: 웹훅은 "ν‘Έμ‹œ" λ°©μ‹μœΌλ‘œ, μ„œλΉ„μŠ€κ°€ λ‹€λ₯Έ μ„œλΉ„μŠ€μ— 정보λ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€. APIλŠ” "ν’€" λ°©μ‹μœΌλ‘œ, ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλΉ„μŠ€λ‘œλΆ€ν„° 정보λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.
- μ‚¬μš© λͺ©μ : 웹훅은 μ‹€μ‹œκ°„ μƒν˜Έ μž‘μš©μ„ μœ„ν•΄ μ‚¬μš©λ˜λ©°, APIλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ 일반적인 μƒν˜Έ μž‘μš©μ„ μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.
 
결둠적으둜, μ›Ήν›…κ³Ό APIλŠ” μ›Ή μ„œλΉ„μŠ€ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” λ„κ΅¬μ΄μ§€λ§Œ, μ‚¬μš© 방식과 λͺ©μ μ— 따라 μ μ ˆν•œ 방법을 μ„ νƒν•˜μ—¬ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Ericκ³Ό ν•¨κ»˜ Jira μ›Ήν›… 등둝해보기


https://just09.tistory.com/418

[Eric's Web] APIλ₯Ό ν†΅ν•΄μ„œ Jira Webhook λ“±λ‘ν•˜κΈ°. ( OAuth2.0 Tokenμ–»κΈ° 포함)

μ•ˆλ…•ν•˜μ„Έμš”. Ericμž…λ‹ˆλ‹€. 였늘 μ œκ°€ μ€€λΉ„ν•œ λ‚΄μš©μ€ Jira APIλ₯Ό ν†΅ν•œ Jira Webhook λ“±λ‘ν•˜κΈ° μž…λ‹ˆλ‹€. μ›Ήν›…(Webhook)μ΄λž€? μ›Ήν›…(Webhook)은 ν•œ μ‹œμŠ€ν…œμ—μ„œ λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ 이벀트 정보λ₯Ό μ „λ‹¬ν•˜λŠ” μžλ™ν™”λœ λ°©

just09.tistory.com