λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Basics/Concepts

μ›Ήν›…μ΄λž€? api 보닀 쒋은 이유 - Webhook vs APIs !

by IworldT 2022. 3. 29.
λ°˜μ‘ν˜•

 

μ•ˆλ…•ν•˜μ„Έμš”!

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” Webhook, 웹훅에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ³  μ™œ 이 웹훅이 APIλ₯Ό λŒ€μ²΄ν•˜κ³  μžˆλŠ”μ§€, λ‘˜μ΄ 무슨 차이가 μžˆλŠ”μ§€, μž₯점은 무엇인지 λ“±λ“±! μ›Ήν›… 곡식 λ¬Έμ„œλ₯Ό ν•˜λ‚˜ν•˜λ‚˜ 해석해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ €λŠ” Webhook.net μ‚¬μ΄νŠΈμ—μ„œ 읽어보고 ν•΄μ„ν•˜λ©° μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

 

 


Webhook μ›Ήν›…κ³Ό API의 곡톡점과 차이점

μ›Ήν›…κ³Ό APIλŠ” 곡톡점이 많죠. ν•„μš”ν•  λ•Œ μ΄λ“€λ‘œλΆ€ν„° 데이터λ₯Ό λ°›λŠ”λ‹€λŠ” 것이 κ°€μž₯ 큰 κ³΅ν†΅μ μž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‘˜ μ‚¬μ΄μ—λŠ” 데이터λ₯Ό μ£ΌλŠ” λ°©μ‹μ—μ„œ κ°€μž₯ 큰 차이가 μžˆμŠ΅λ‹ˆλ‹€.

 

1. APIs

APIλŠ” μš°λ¦¬κ°€ 데이터λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€. ν•„μš”ν•œ 데이터λ₯Ό νŠΉμ •ν•œ API둜 μš”μ²­μ„ ν˜ΈμΆœν•˜μ—¬ μ‘λ‹΅μœΌλ‘œ λ°›κ²Œ 되죠. pull ν•©λ‹ˆλ‹€.

api 방식

 

2. Webhook μ›Ήν›…

웹훅은 μš°λ¦¬κ°€ 데이터λ₯Ό μš”μ²­ν•˜μ§€ μ•Šμ•„λ„, ν•„μš”ν•  λ•Œ μ•Œμ•„μ„œ 데이터λ₯Ό μ€λ‹ˆλ‹€. μ € 'ν•„μš”ν•  λ•Œ'λ₯Ό trigger라고 ν•©λ‹ˆλ‹€. 미리 이벀트λ₯Ό 지정해두고, 이 μ΄λ²€νŠΈκ°€ μΌμ–΄λ‚˜λ©΄ λ‚΄κ²Œ 데이터λ₯Ό λ³΄λ‚΄μ€˜! ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. push λ‹Ήν•˜μ£ .

μ›Ήν›… 방식

 

μ–΄μ¨Œλ“  데이터λ₯Ό λ°›κΈ° μœ„ν•΄μ„œ λ‘˜μ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ”κ±΄ λ™μΌν•œκ±΄ ν™•μ‹€ν•˜μ£ ?

 


Webhook이 μ™œ API보닀 쒋은거죠? μž₯단점

μ΄μ œλΆ€ν„° μ™œ triggerλ₯Ό μ¨μ„œ ν•„μš”ν•  λ•Œ μ•Œμ•„μ„œ λ³΄λ‚΄μ£ΌλŠ” Webhook이 더 쒋은지 μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

λ¬Όλ‘  κ°„λ‹¨ν•œ μ΄μœ λ‘œλŠ” 개발자 μž…μž₯μ—μ„œ '이런이런 μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ APIλ₯Ό ν˜ΈμΆœν•΄μ„œ 데이터λ₯Ό λ°›μœΌλ©΄ ~~ ν•œλ‹€! λͺ»λ°›μœΌλ©΄.. 계속 μš”μ²­ν•œλ‹€..! κ·Έλž˜λ„ μ•ˆμ£Όλ©΄..!!' ν•˜λŠ” μ‹μœΌλ‘œ 코딩을 μ•ˆν•΄μ„œ νŽΈν•œ 점도 있죠. κ·ΈλŸ¬λ‚˜ 이것보닀 λ”ν•œ μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. 특히 ν•œκ΅­μΈμ—κ²Œ κ°€μž₯ ν•„μš”ν•œ μž₯점일 μˆ˜λ„ μžˆκ² λ„€μš”.

 

μ‹€μ‹œκ°„ μ—…λ°μ΄νŠΈκ°€ 더 λΉ λ₯΄κ²Œ κ°€λŠ₯!

 

APIλŠ” polling 방식이라고 μƒκ°ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€. polling 방식은, 쀄 λ•Œ κΉŒμ§€ μ§€μ†μ μœΌλ‘œ μš”μ²­ν•˜λŠ” 것이라고 μƒκ°ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

λ‚΄ 앱이 μ¦κΆŒμ‚¬ λ‰΄μŠ€λ₯Ό λ³΄μ—¬μ£ΌλŠ” 앱이라고 생각 ν•΄ λ³΄μ„Έμš”. μ¦κΆŒμ‚¬μ—μ„œ ν•«ν•œ μ†Œμ‹μ΄ 뜨면 λ°”λ‘œ 긁어와야겠죠? 자, APIλ₯Ό μ‚¬μš©ν•΄μ„œ κ·Έ μ†Œμ‹μ„ κΈμ–΄μ˜€κ³ μž ν•©μ‹œλ‹€.. 그런데 κ·Έ ν•«ν•œ μ†Œμ‹μ΄ μ–Έμ œ λœ¨λŠ”μ§€ μ•Œ μˆ˜κ°€ μ—†λ„€μš”. μ§€μ†μ μœΌλ‘œ μš”μ²­ν•΄μ•Όκ² μŠ΅λ‹ˆλ‹€. 1μ‹œκ°„μ— ν•œ 번? λ„ˆλ¬΄ μ—…λ°μ΄νŠΈκ°€ λŠλ¦½λ‹ˆλ‹€. 1뢄에 ν•œ 번? 이런 APIλ₯Ό 1뢄에 ν•œλ²ˆμ”©, μ—¬λŸ¬ μ¦κΆŒμ‚¬μ— μš”μ²­ν•œλ‹€λ©΄.. λ‚΄ μ•±μ˜ μ„œλ²„λŠ” κ³ΌλΆ€ν•˜λ‘œ 제 κΈ°λŠ₯을 λ‹€ν•˜μ§€ λͺ»ν•˜κ³  λ§κ²ƒμž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ Webhook 웹훅은 ν•«ν•œ μ†Œμ‹μ΄ 뜨면 λ°”λ‘œ λ‚΄κ²Œ λ³΄λ‚΄μ€λ‹ˆλ‹€. ν•«ν•œ μ†Œμ‹μ΄ λ‚΄ 앱에 μ „λ‹¬λ˜λ©΄, μ „ λ°”λ‘œ λ³΄μ—¬μ£ΌλŠ” μ½”λ“œλ§Œ 짜면 λ˜κ² λ„€μš”. 제 μ„œλ²„λŠ” λŒ€κΈ°μƒνƒœμ—λ§Œ 있으면 λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ΄λŠ” λ‹€μ–‘ν•˜κ²Œ ν™œμš©λ  수 μžˆκ² μŠ΅λ‹ˆλ‹€. 고객이 μ›Ήμ‚¬μ΄νŠΈλ₯Ό 였래 λ°©ν™©ν•  λ•Œ, ꡬ맀λ₯Ό λ§μ„€μ΄λŠ” 것 같을 λ•Œ, μ›Ήμ‚¬μ΄νŠΈμ— λͺ‡ λΆ„ 체λ₯˜ν•˜λ©΄ λ‚΄κ²Œ μ•Œλ¦Όμ„ μ£ΌλŠ” trigger 트리거λ₯Ό μ €μž₯ν•΄λ‘μ—ˆλ‹€κ°€, 이 μ•Œλ¦Όμ΄ 였면 'κ³ κ°λ‹˜! νŠΉλ³„μΏ ν°μž…λ‹ˆλ‹€! 망섀이지 λ§ˆμ‹œμ£ !' ν•˜λŠ” μ˜μ—…μ„ ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‘μš©ν•  뢀뢄이 많죠?

 

 


그럼 μ™œ 웹훅을 μ•ˆμ“°κ³  APIλ₯Ό μ“°λ‚˜μš”?

항상 μ›Ήν›…λ§Œ μ“°λ©΄ λ˜μ§€ μ•Šλ‚˜μš”? 더이상 API 방식은 ν•„μš” μ—†λŠ”κ±° μ•„λ‹Œκ°€μš”? μ˜›λ‚  λ°©μ‹μΈκ°€μš”??

λŒ€λ‹΅μ€ NO μž…λ‹ˆλ‹€. μ—¬μ „νžˆ APIλŠ” ν•„μš”ν•˜κ³ , Webhook은 더 λ°œμ „ν•΄μ•Ό ν•  뢀뢄이 있으며, μ™„μ „ν•œ μ„ΈλŒ€κ΅μ²΄λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€κ³  λ΄…λ‹ˆλ‹€.

 

1. Webhook 웹훅은 λ³€ν™”λ₯Ό λ§Œλ“€ 수 μ—†μ–΄!

첫 번째둜, 웹훅은 λ°›μ•„μ˜€κΈ°λ§Œ ν•˜λŠ” 방식이죠. λ‚΄κ°€ λ³€ν™”λ₯Ό 쀄 μˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ³€ν™”λŠ” λ‚΄ μ•±μ—μ„œλ§Œ κ°€λŠ₯ν•˜μ£ . APIλŠ” λ‚΄κ°€ 데이터λ₯Ό μš”μ²­ν•˜λ©΄μ„œ κ·Έ μ„œλ²„μ— λ°μ΄ν„°μ˜ 변경을 μš”μ²­ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 아직은 APIκ°€ ν•„μš”ν•˜μ£ . Webhook은 아직 one-way 단방ν–₯μ—λ§Œ μ ν•©ν•©λ‹ˆλ‹€.

 

2. Webhook 웹훅은 metadataμ™€λŠ” μ•ˆμΉœν•΄..

λ‹€μŒμœΌλ‘œ, 웹훅은 메타데이터λ₯Ό μ „λ‹¬ν•˜κΈ° νž˜λ“­λ‹ˆλ‹€. 웹훅은 λ‹€μ–‘ν•œ 데이터λ₯Ό μ „λ‹¬ν•˜κΈ° νž˜λ“€λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·Ήλ‹¨μ μœΌλ‘œ, κ·Έλƒ₯ μ•Œλ¦Ό κΈ°λŠ₯ 정도에 λΆˆκ³Όν•˜λ‹€λŠ” μ˜λ―Έμ΄κΈ°λ„ ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ APIλŠ” λ‹€μ–‘ν•œ 메타데이터 전달이 κ°€λŠ₯ν•˜μ£ . 이게 아직 웹훅이 APIλ₯Ό λ”°λΌμž‘μ§€ λͺ»ν•œ κ°€μž₯ μ€‘μš”ν•œ μ μž…λ‹ˆλ‹€.

 

κ·Έλž˜μ„œ ν˜„μž¬λŠ” μ›Ήν›…κ³Ό APIλ₯Ό μ μ ˆν•˜κ²Œ 같이 μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

 


 

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” μ΄λ ‡κ²Œ Webhook 웹훅에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ³  APIs와 λΉ„κ΅ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 각각의 데이터 전솑 방식에 λŒ€ν•œ 차이λ₯Ό κΌ­ μ•Œμ•„λ‘μ‹œκ³ , μž₯단점도 ν™•μΈν•΄λ³΄μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

 

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€