Faraday: ๋‹ค์Œ ๋Œ€๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค์˜ ๊ธฐ๋Šฅ ๋ชฉ๋ก

์— ๋งŒ๋“  2016๋…„ 10์›” 18์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: lostisland/faraday

ํŒจ๋Ÿฌ๋ฐ์ด 1.0

  • [x] ์ตœ์†Œ Ruby ๋ฒ„์ „์„ >= 2.2๋กœ ์„ค์ •
  • [x] ์ŠคํŠธ๋ฆฌ๋ฐ(Net::HTTP) #604
  • [x] ์–ด๋Œ‘ํ„ฐ ๊ด€๋ฆฌ ๋ฐฉ์‹ ๋ณ€๊ฒฝ #47 #121
  • [ ] API ๊ฐœ์„  #241 #305 #462 #517 #693 #718 #735
  • [ ] ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ณ„๋„์˜ ๋ณด์„์œผ๋กœ ๋นผ๋ƒ…๋‹ˆ๋‹ค. Faraday-Typheous, Faraday-Patron ๋“ฑ #112
  • [ ] IPv6 #621 ์ง€์›
  • [ ] ์ŠคํŠธ๋ฆฌ๋ฐ(๊ธฐํƒ€)
  • [ ] ๋ฌธ์„œ ๊ฐœ์„ /Readme #425 #575
  • [ ] Codeclimate ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐœ์„ (https://codeclimate.com/github/lostisland/faraday)
  • [ ] Rubocop์„ ํ†ตํ•ด ์ „์ฒด ํ”„๋กœ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ํ†ตํ•ฉ์œผ๋กœ Github์— ์„ค์ •
  • [ ] ๋” ๋งŽ์€ ์˜ˆ์ œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Wiki ๊ฐœ์„ 
  • [x] ํ…Œ์ŠคํŠธ๋ฅผ RSpec์œผ๋กœ ๋ณ€ํ™˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
  • [x] ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฐ ์ฝ”๋“œ ๋ฉ”ํŠธ๋ฆญ์„ ์œ„ํ•œ Github ํ†ตํ•ฉ ์„ค์ •
  • [ ] ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๋ฉ”์„œ๋“œ/๋™์ž‘์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค(๊ด€๋ จ ๊ฒฝ๊ณ  ํฌํ•จ).

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์†”์งํžˆ ๋งํ•ด์„œ, ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์ €๋Š” ActiveJob์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํ˜ธํ™˜๋˜๋Š” gem์„ ์•ฑ์— ์ถ”๊ฐ€ํ•˜๊ณ  QueueBackend(์˜ˆ: Sidekiq)๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ ์ด๊ฒƒ์€ Faraday์˜ ํ˜„์žฌ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ฉฐ ํ•ต์‹ฌ ํŒ€์˜ ์›๋ž˜ ๋น„์ „์ด ์•„๋‹ˆ๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด #486์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ •ํ™•ํžˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒจ๋Ÿฌ๋ฐ์ด๋Š” ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ต์ฒดํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด @mislav ์™€ ๋‹ค๋ฅธ ํ•ต์‹ฌ ํŒ€์›๋“ค์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œํ–‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ Faraday์— ํ•ฉ๋ฅ˜ํ•œ ๋งˆ์ง€๋ง‰ ๊ตฌ์„ฑ์›์œผ๋กœ์„œ ๊ณผ๊ฑฐ ๊ฒฐ์ •์„ ๋‹จ์ˆœํžˆ ์“ฐ๋ ˆ๊ธฐํ†ต์— ๋ฒ„๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ผ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ท€ํ•˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋ฏ€๋กœ ์ดํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฆ‰, ์ŠคํŠธ๋ฆฌ๋ฐ์„ 0.x ํ๋ฆ„์— ๋ณ‘ํ•ฉํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์—์„œ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ์ด์œ ๋กœ ํ์‡„๋œ ๋‹ค๋ฅธ PR์˜ ์˜ˆ: #485, #498, https://github.com/lostisland/faraday/pull/339#issuecomment -145872698

Faraday 1.0์€ ๋‹ฌ๋ผ์„œ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ž์œ ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›์„ ์ค‘๋‹จํ•˜๊ณ  Thypoeus์—์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ gem์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ด์ ์„ ๊ฐ€์งˆ ๊ฒƒ์ด๊ณ  ๊ตฌ์กฐ๋ฅผ ActiveJob ์™€ ํ›จ์”ฌ ๋” ์œ ์‚ฌํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ถ€๋ถ„ ์ง€์›๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ •๋‹นํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฐ ์ด์œ ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ์„ 1.0 ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด๊ณ  ๋‹น๋ถ„๊ฐ„ ์ž‘์—…์„ ์ค‘๋‹จํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋” ๊ฑธ๋ฆฌ๊ฒ ์ง€๋งŒ, ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ œ๋Œ€๋กœ ๋œ ์ผ์„ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋ถ„๋ช…ํžˆ ํ•˜๊ณ  ์‹ถ๋‹ค: ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋‹ซ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ํ•ต์‹ฌ ํŒ€์„ ๊ธฐ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”์ง„ํ•˜๋Š” ๊ฒƒ์„ ๋•๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๋ฟ์ด๋‹ค. ์ „๋ง.

์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋งˆ์ง€๋ง‰ ์ฐธ๊ณ  ์‚ฌํ•ญ: ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋ฌด์–ธ๊ฐ€์— ๊ธฐ์—ฌํ•  ๋•Œ ํ•ต์‹ฌ ํŒ€์˜ ๋น„์ „๋„ ์กด์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์—๊ฒŒ ๋™์˜ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๋‚˜๋„ ๊ทธ๋“ค๊ณผ ๋ช‡ ๊ฐ€์ง€ ์ ์—์„œ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!). ๊ทธ๋Ÿฌ๋‚˜ ํŒจ๋Ÿฌ๋ฐ์ด๊ฐ€ ์˜ค๋Š˜๋‚ ๊ณผ ๊ฐ™๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋งŽ์€ ๊ธฐ์—ฌ์ž๋“ค ๋•๋ถ„์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ๋“ค์˜ ์„ ํƒ์„ ์กด์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ํŒ€์€ ๋ชจ๋“  ๋ฌธ์ œ/PR์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ณ  ๋…ผ๋ฆฌ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ €๋ฅผ ๋ฏฟ์œผ์‹ญ์‹œ์˜ค. ํ›„์ž๋Š” ์‚ฐ๋ฐœ์ ์ธ ๊ธฐ์—ฌ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค). ๊ทธ๋“ค์ด ๊ธฐ์—ฌ์ž ์ž…๋ ฅ์„ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์กฐ์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ํŒจ๋Ÿฌ๋ฐ์ด๋ฅผ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ด๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์„์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... 1.0์—์„œ ์ž‘์—…ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ... ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์™œ ๋‹ค๋ฅธ PR์€ ๋‹ซํ˜”๋Š”์ง€ ๐Ÿ˜•

์•ˆ๋…•ํ•˜์„ธ์š” @grosser๋‹˜ , ์ด์œ ๋Š” https://github.com/lostisland/faraday/pull/604#issuecomment -259125910์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ๋œ ์ด์œ ๋Š” PR์ด Net::HTTP ์–ด๋Œ‘ํ„ฐ์™€๋งŒ ํ˜ธํ™˜๋˜๊ณ  ์ŠคํŠธ๋ฆฌ๋ฐ์ด v1.0์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด์—ˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ v1.0์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต์ด ์—†์œผ๋ฏ€๋กœ ๋‹น๋ถ„๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์ž‘์—…์„ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์—†์Šต๋‹ˆ๋‹ค.

@iMacTia #604(๋˜ํ•œ #522, #461)์— ๋Œ€ํ•œ ์ž‘์—…์„ "์ž ์‹œ๋งŒ, ์ด๊ฒƒ์€ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์— ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค." , ํ•˜์ง€๋งŒ ์ž‘์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ํŒ€์˜ ์ถ”์ง„๋ ฅ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜๋ฝํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@jcoyne "์ŠคํŠธ๋ฆฌ๋ฐ์— ์ ๊ทน์ ์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—" ์ŠคํŠธ๋ฆฌ๋ฐ์ด ์•„์ง ์‹œ์ž‘๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ž‘์—…ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ฃผ๋กœ ๋‚ด ์ž˜๋ชป์ด๋ผ๋Š” ๊ฒƒ์„ ์™„์ „ํžˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ #604๋ฅผ ๋‹ค์‹œ ๋ฏธ๋ฃฌ ์ด์œ ๋ฅผ ์„ค๋ช…ํ–ˆ๋Š”๋ฐ ๊ตฌํ˜„์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.
604๋ฅผ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค๋ฅธ ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํ˜„์žฌ๋Š” Net::HTTP๋งŒ ์ง€์›๋จ).
  2. ๋‹ค๋ฅธ ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ์ง์ ‘์ ์ธ ์ง€์›์„ ์ œ๊ฑฐํ•˜๊ณ  ์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ๋กœ gemifyํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „ 1.0์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด #604๊ฐ€ ํ˜„์žฌ์ฒ˜๋Ÿผ ๋ณ‘ํ•ฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ๋‚ด๋ถ€์ ์œผ๋กœ ์•„์ง ํ•ฉ์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์ž‘์—…์— ํˆฌ์žํ•  ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜๊ณ  ๋Š๋ฆฌ๋‹ค๋Š” ์ ์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
์•„๋งˆ๋„ Net::HTTP์— ๋Œ€ํ•œ ์ง€์›๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— #604๋งŒ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์— ๋งŒ์กฑํ•˜์‹ค ๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ gem์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†์„ ๋•Œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.

@iMacTia ๋‚˜๋Š” ๋‹น์‹ ์ด ์ด ๋ฆด๋ฆฌ์Šค์— ๋ชจ๋“  ๋…ธ๋ ฅ์„ ์Ÿ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์ž‘์—…ํ–ˆ์œผ๋ฉฐ ์•Œ๋ ค์ง„ ๊ธฐ์ˆ ์  ๋ฌธ์ œ๊ฐ€ ์—†๋Š” pull ์š”์ฒญ์„ ๋‹ซ๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•  ๋•Œ์˜ ๋ƒ‰๋‹ดํ•œ ํšจ๊ณผ์— ๋Œ€ํ•ด ์ขŒ์ ˆํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ์ง€์›์ด ๋ฐ”๋žŒ์งํ•œ ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€๋งŒ ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด์— ๋Œ€ํ•œ ํ•ด์„์ด ์ง€๋‚˜์น˜๊ฒŒ ์—„๊ฒฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด์€ ํ•˜๋‚˜์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์˜ ์ผ๊ด€์„ฑ์„ ์š”๊ตฌํ•˜์ง€๋งŒ ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๋Š์Šจํ•œ ์ •์˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: edgeapi.rubyonrails.org/classes/ActiveJob/QueueAdapters.html#module-ActiveJob::QueueAdapters-label-Backends+Features).

์†”์งํžˆ ๋งํ•ด์„œ, ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์ €๋Š” ActiveJob์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํ˜ธํ™˜๋˜๋Š” gem์„ ์•ฑ์— ์ถ”๊ฐ€ํ•˜๊ณ  QueueBackend(์˜ˆ: Sidekiq)๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ ์ด๊ฒƒ์€ Faraday์˜ ํ˜„์žฌ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ฉฐ ํ•ต์‹ฌ ํŒ€์˜ ์›๋ž˜ ๋น„์ „์ด ์•„๋‹ˆ๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด #486์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ •ํ™•ํžˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒจ๋Ÿฌ๋ฐ์ด๋Š” ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ต์ฒดํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด @mislav ์™€ ๋‹ค๋ฅธ ํ•ต์‹ฌ ํŒ€์›๋“ค์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œํ–‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ Faraday์— ํ•ฉ๋ฅ˜ํ•œ ๋งˆ์ง€๋ง‰ ๊ตฌ์„ฑ์›์œผ๋กœ์„œ ๊ณผ๊ฑฐ ๊ฒฐ์ •์„ ๋‹จ์ˆœํžˆ ์“ฐ๋ ˆ๊ธฐํ†ต์— ๋ฒ„๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ผ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ท€ํ•˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋ฏ€๋กœ ์ดํ•ดํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฆ‰, ์ŠคํŠธ๋ฆฌ๋ฐ์„ 0.x ํ๋ฆ„์— ๋ณ‘ํ•ฉํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์—์„œ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ์ด์œ ๋กœ ํ์‡„๋œ ๋‹ค๋ฅธ PR์˜ ์˜ˆ: #485, #498, https://github.com/lostisland/faraday/pull/339#issuecomment -145872698

Faraday 1.0์€ ๋‹ฌ๋ผ์„œ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ž์œ ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›์„ ์ค‘๋‹จํ•˜๊ณ  Thypoeus์—์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ gem์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ด์ ์„ ๊ฐ€์งˆ ๊ฒƒ์ด๊ณ  ๊ตฌ์กฐ๋ฅผ ActiveJob ์™€ ํ›จ์”ฌ ๋” ์œ ์‚ฌํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ถ€๋ถ„ ์ง€์›๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ •๋‹นํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฐ ์ด์œ ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ์„ 1.0 ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด๊ณ  ๋‹น๋ถ„๊ฐ„ ์ž‘์—…์„ ์ค‘๋‹จํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋” ๊ฑธ๋ฆฌ๊ฒ ์ง€๋งŒ, ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ œ๋Œ€๋กœ ๋œ ์ผ์„ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋ถ„๋ช…ํžˆ ํ•˜๊ณ  ์‹ถ๋‹ค: ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋‹ซ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ํ•ต์‹ฌ ํŒ€์„ ๊ธฐ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”์ง„ํ•˜๋Š” ๊ฒƒ์„ ๋•๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๋ฟ์ด๋‹ค. ์ „๋ง.

์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋งˆ์ง€๋ง‰ ์ฐธ๊ณ  ์‚ฌํ•ญ: ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋ฌด์–ธ๊ฐ€์— ๊ธฐ์—ฌํ•  ๋•Œ ํ•ต์‹ฌ ํŒ€์˜ ๋น„์ „๋„ ์กด์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์—๊ฒŒ ๋™์˜ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๋‚˜๋„ ๊ทธ๋“ค๊ณผ ๋ช‡ ๊ฐ€์ง€ ์ ์—์„œ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!). ๊ทธ๋Ÿฌ๋‚˜ ํŒจ๋Ÿฌ๋ฐ์ด๊ฐ€ ์˜ค๋Š˜๋‚ ๊ณผ ๊ฐ™๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋งŽ์€ ๊ธฐ์—ฌ์ž๋“ค ๋•๋ถ„์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ๋“ค์˜ ์„ ํƒ์„ ์กด์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ํŒ€์€ ๋ชจ๋“  ๋ฌธ์ œ/PR์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ณ  ๋…ผ๋ฆฌ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ €๋ฅผ ๋ฏฟ์œผ์‹ญ์‹œ์˜ค. ํ›„์ž๋Š” ์‚ฐ๋ฐœ์ ์ธ ๊ธฐ์—ฌ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค). ๊ทธ๋“ค์ด ๊ธฐ์—ฌ์ž ์ž…๋ ฅ์„ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์กฐ์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ํŒจ๋Ÿฌ๋ฐ์ด๋ฅผ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ด๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์„์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด์ œ ํ”„๋กœ์ ํŠธ ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰