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