Faraday: ํŒจ๋Ÿฌ๋ฐ์ด ์œ„์‹œ๋ฆฌ์ŠคํŠธ

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

ํŒจ๋Ÿฌ๋ฐ์ด์—์„œ ๋ฐ”๊พธ๊ณ  ์‹ถ์€ ๊ฒƒ์— ๋Œ€ํ•œ ์œ„์‹œ๋ฆฌ์ŠคํŠธ ์ˆ˜์ง‘์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•„์ง ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

ํŒจ๋Ÿฌ๋ฐ์ด v2.0

  • [x] ๋งค๊ฐœ๋ณ€์ˆ˜ ์ธ์ฝ”๋” ์žฌ๊ตฌ์„ฑ: lib/faraday/params_encoders/[nested, flat] ?
  • [x] ์–ด๋Œ‘ํ„ฐ๋ฅผ gem์œผ๋กœ ์ถ”์ถœ

    • [x] em-http

    • [x] em-http-ssl-ํŒจ์น˜

    • [x] ๋™์‹œ ๋™๊ธฐํ™”

    • [x] ์—‘์Šค์ฝ˜

    • [x] http ํด๋ผ์ด์–ธํŠธ

    • [x] net-http

    • [x] net-http-์˜๊ตฌ์ 

    • [x] ํ›„์›์ž

    • [x] ๋ž™

    • [x] ์žฅํ‹ฐํ‘ธ์Šค

ํŒจ๋Ÿฌ๋ฐ์ด v3.0

  • [ ] SNAKE_CASE ์ƒ์ˆ˜๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉ
  • [ ] Faraday::Utils
  • [ ] Faraday::Connection => Faraday::Client
  • [ ] ํด๋ผ์ด์–ธํŠธ/์š”์ฒญ/์‘๋‹ต์˜ ์†์„ฑ์„ ์œ„ํ•ด ์˜ต์…˜ ๊ตฌ์กฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ์š”์ฒญ/์‘๋‹ต ๊ฐ์ฒด ์†์„ฑ์„ ์œ„ํ•ด env๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • [ ] HTTP ๊ด€๋ จ ์˜ค๋ฅ˜ ํด๋ž˜์Šค์˜ ์ผ๊ด€๋œ #response ์†์„ฑ(RaiseError, RetriableRequest ๋“ฑ) [#1284]
  • [ ] ์ข‹์€ ole ruby๋ฅผ ์œ„ํ•ด ์–ด๋Œ‘ํ„ฐ/๋ฏธ๋“ค์›จ์–ด ์ž๋™ ๋กœ๋”ฉ ์ข…๋ฃŒ
  • [ ] ์–ด๋Œ‘ํ„ฐ/๋ฏธ๋“ค์›จ์–ด ๋‚ด๋ถ€ API ์žฌ๋ฐฉ๋ฌธ(๋ž™ ์–ด๋Œ‘ํ„ฐ ์˜๋ฏธ ์ œ๊ฑฐ)
  • [ ] Faraday::Connection ๋ฐ Faraday::RackBuilder ๊ด€๊ณ„ ์žฌ์„ค๊ณ„

    • [ ] use / adapter /etc ์œ„์ž„ ์ œ๊ฑฐ

    • [ ] Faraday::RackBuilder#handlers => Faraday::Connection#handlers

  • [ ] ๋ฏธ๋“ค์›จ์–ด ์žฌ๊ตฌ์„ฑ lib/faraday/middleware/*
  • [ ] mw ์žฌ์‹œ๋„: ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„ ํƒ€์ด๋ฐ ์ถ”์ถœ
  • [ ] ๋กœ๊น…/๊ณ„์ธกํ™”: Faraday์— ๋‚ด์žฅ๋˜์–ด _any_ ๋ฏธ๋“ค์›จ์–ด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • [ ] net/http ๋ฐ net/http ์˜๊ตฌ ์–ด๋Œ‘ํ„ฐ ๊ฒฐํ•ฉ
  • [ ] ์บ์‹œ๋œ ๋ฌธ์ž์—ด ์‘๋‹ต ๋ณธ๋ฌธ์— ๋Œ€ํ•œ ์‰ฌ์šด ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ
  • [ ]HTTP/Socks ํ”„๋ก์‹œ ์ง€์› (http ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด์—์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ)
  • [ ] ๋” ๋‚˜์€ API๋กœ ๋ฉ€ํ‹ฐํŒŒํŠธ ์ง€์› ๋‚ด์žฅ.
  • [ ] ํŒŒ์ดํ”„๋ผ์ด๋‹ ๋˜๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ ์žฌ๋ฐฉ๋ฌธ(net-http-pipeline, typhoeus)
  • [ ] ์ผ๊ด€๋œ ์‘๋‹ต ์˜ค๋ฅ˜ ๋ฐœ์ƒ (/cc #1042 )

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

์—„์ฒญ๋‚œ! ์–ด์ ฏ๋ฐค @lostisland ๊ฐ€ ์กฐ์ง ๊ณ„์ •์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์™„์ „ํžˆ ๋น„

๋‹ค์Œ ์ฃผ์—๋Š” Net::HTTP ์–ด๋Œ‘ํ„ฐ๋ฅผ gem์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ณ  Net::HTTP::Persistent ๋Œ€ํ•ด ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์ž‘์—…์„ ๋•๊ธฐ ์œ„ํ•ด ๊ฐœ์ธ ๊ณ„์ •์—์„œ ํ•œ ๋ฒˆ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ์–‘์ด ์ƒ๊ธด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์˜ฌ๋ ค ๋†“๊ณ  ์ด์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ์ „์—ญ ์บ์‹œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋„๋ก ์—ฐ๊ฒฐ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•˜์—ฌ net-http-persistent๋ฅผ ๋œ ํ•ดํ‚นํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • net-http-persistent๊ฐ€ gem์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ... ๊ทธ ์ค‘ 90%๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ํ•˜๊ณ  ์žˆ๋Š” net-http๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ช‡ ์ค„์˜ ์ฝ”๋“œ์™€ rescue + reopen ๋กœ์ง๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. gem์— ๋Œ€ํ•œ ์ปคํ”Œ๋ง/๋ฒˆ์—ญ ๋กœ์ง์„ ์ œ๊ฑฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค https://github.com/drbrain/net-http-persistent/pull/100 ์ฐธ์กฐ
  • net-http-pipeline ์‚ฌ์šฉ ํ—ˆ์šฉ

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค!

์ „์—ญ ์บ์‹œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋„๋ก ์—ฐ๊ฒฐ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•˜์—ฌ net-http-persistent๋ฅผ ๋œ ํ•ดํ‚นํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์•„ ์˜ˆ, ํŒจ๋Ÿฌ๋ฐ์ด๊ฐ€ ์–ด๋Œ‘ํ„ฐ ๋ฐ ๋ฏธ๋“ค์›จ์–ด ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ž™ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ˆ˜๋ช…์ด ๊ธด Faraday::Connection#adapter ์†์„ฑ์ธ ๊ฒฝ์šฐ net-http ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์—ฐ๊ฒฐ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— "์–ด๋Œ‘ํ„ฐ/๋ฏธ๋“ค์›จ์–ด ๋‚ด๋ถ€ API ๋‹ค์‹œ ๋ฐฉ๋ฌธ(๋“œ๋กญ ๋ž™ ์–ด๋Œ‘ํ„ฐ ์˜๋ฏธ๋ก )"์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

net-http-persistent๊ฐ€ gem์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •

๋‚ด๊ฐ€ ํƒ€๊ณ  ์žˆ์–ด. PR์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

net-http-pipeline ์‚ฌ์šฉ ํ—ˆ์šฉ

Faraday๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ์„ ์ง€์›ํ•˜์ง€๋งŒ net-http-pipeline ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ net-http ๋Œ€ํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— "ํŒŒ์ดํ”„๋ผ์ด๋‹ ๋˜๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ ์žฌ๋ฐฉ๋ฌธ(net-http-pipeline, typhoeus)"์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฒฝ์šฐ: ๋‹ค์Œ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋Œ€๋ถ€๋ถ„์˜ ์ฒ˜๋ฆฌ๊ธฐ ๋…ผ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ฏ€๋กœ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค.

2019๋…„ 5์›” 31์ผ ๊ธˆ์š”์ผ ์˜ค์ „ 10์‹œ 31๋ถ„ ์œ„ํ—˜ ์œ„ํ—˜ olson [email protected]
์ผ๋‹ค:

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค!

์—ฐ๊ฒฐ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•˜์—ฌ net-http-persistent๋ฅผ ๋œ ํ•ดํ‚นํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ „์—ญ ์บ์‹œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์•„ ์˜ˆ, Faraday๊ฐ€ ๋ž™ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•œ ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š”
์–ด๋Œ‘ํ„ฐ ๋ฐ ๋ฏธ๋“ค์›จ์–ด ํด๋ž˜์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์–ด๋Œ‘ํ„ฐ๊ฐ€
์ˆ˜๋ช…์ด ๊ธด Faraday::Connection#adapter ์†์„ฑ, net-http ์–ด๋Œ‘ํ„ฐ
์—ฐ๊ฒฐ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฐฉ๊ธˆ "์žฌ๋ฐฉ๋ฌธ
์–ด๋Œ‘ํ„ฐ/๋ฏธ๋“ค์›จ์–ด ๋‚ด๋ถ€ API(๋“œ๋กญ ๋ž™ ์–ด๋Œ‘ํ„ฐ ์˜๋ฏธ๋ก )"๋ฅผ
์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์œ„์‹œ๋ฆฌ์ŠคํŠธ.

net-http-persistent๊ฐ€ gem์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •

๋‚ด๊ฐ€ ํƒ€๊ณ  ์žˆ์–ด. PR์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

net-http-pipeline ์‚ฌ์šฉ ํ—ˆ์šฉ

Faraday๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ์„ ์ง€์›ํ•˜์ง€๋งŒ
net-http-pipeline์„ ์‚ฌ์šฉํ•˜์—ฌ net-http์šฉ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ถ”๊ฐ€ํ–ˆ๋‹ค
"ํŒŒ์ดํ”„๋ผ์ด๋‹ ๋˜๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ ์žฌ๋ฐฉ๋ฌธ(net-http-pipeline, typhoeus)"
์œ„์‹œ๋ฆฌ์ŠคํŠธ.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/lostisland/faraday/issues/953?email_source=notifications&email_token=AAACYZ5IS7IRWR45K7IFKL3PYFOILA5CNFSM4HAAQSK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LDNMVX
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAACYZ6EKR7M4ARR47IAI23PYFOILANCNFSM4HAAQSKQ
.

@grosser ๋‹น์‹ ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ ํŒจ๋Ÿฌ๋ฐ์ด์—์„œ ์–ด๋Œ‘ํ„ฐ์™€ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” ๊ณผ์ •์— ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ ์ œ๊ณต( faraday-net_http faraday -http )์„ ํฌํ•จํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ํ•œ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ๊ณผ๊ฑฐ ๊ธฐ์—ฌ๋ฅผ ๊ณ ๋ คํ•  ๋•Œ net_http_persistent์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ–๊ณ  ์‹ถ์€์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
์œ„์˜ ์˜ˆ์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณ„๋„์˜ ์ €์žฅ์†Œ(์ด๋Š” ์‚ฌ์šฉ์ž ์•„๋ž˜์— ์žˆ์„ ์ˆ˜ ์žˆ์Œ)๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ํ˜„์žฌ ๋ฒ„์ „๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•œ v1.0์„ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด Faraday gem ์‚ฌ์–‘์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Faraday v2.0์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์„ ์‚ญ์ œํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

๊ฑฐ๊ธฐ์—์„œ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ณ€๊ฒฝ/๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ์›ํ•˜๋Š” ๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„
๐Ÿ™Œ ๊ด€์‹ฌ์žˆ์œผ์‹ ๋ถ„ ์•Œ๋ ค์ฃผ์„ธ์š”! ์–ด์จŒ๋“  ์ฒซ ๋ฒˆ์งธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•  ๊ณ„ํš์ด๋ฏ€๋กœ ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์‰ฌ์›Œ๋ณด์ด๋„ค์š” ํ•ด๋ณผ๊ป˜์š”

2020๋…„ 12์›” 31์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 4์‹œ 33๋ถ„์— Matt [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@grosser https://github.com/grosser ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ
ํŒจ๋Ÿฌ๋ฐ์ด์—์„œ ์–ด๋Œ‘ํ„ฐ์™€ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” ํ”„๋กœ์„ธ์Šค.
์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ ์ œ๊ณต ํฌํ•จ(faraday-net_http
ํŒจ๋Ÿฌ๋ฐ์ด-http)

๊ท€ํ•˜์˜ ๊ณผ๊ฑฐ ๊ธฐ์—ฌ๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ
net_http_persistent์˜ ์†Œ์œ ๊ถŒ?
๋‹น์‹ ์ด ํ•ด์•ผ ํ•  ์ผ์€ ๊ทธ๊ฒƒ์„ ๋ณ„๋„์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ด๊ฒƒ์€
์œ„์˜ ์˜ˆ์—์„œ์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์•„๋ž˜์—!) v1.0์„ ๋ฆด๋ฆฌ์Šคํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์€ ํ˜„์žฌ์™€ ์ •ํ™•ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ
์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ ํŒจ๋Ÿฌ๋ฐ์ด ๋ณด์„ ์‚ฌ์–‘.

๊ฑฐ๊ธฐ์—์„œ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝ/๋ฆฌํŒฉํ† ๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
์›ํ•˜๋Š” ๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋งŒ๋“ค๊ธฐ ๐Ÿ˜„
๐Ÿ™Œ ๊ด€์‹ฌ์žˆ์œผ์‹ ๋ถ„ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋„์›€์ด ๋˜์–ด์„œ ์ €๋„ ๊ธฐ์ฉ๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ๊ทธ ์ผ์„ ํ•  ๊ณ„ํš์ด๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์œผ๋กœ

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/lostisland/faraday/issues/953#issuecomment-752938926 ,
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/AAACYZYOKFNQGJM5GXZQJMLSXRR73ANCNFSM4HAAQSKQ
.

@grosser ๊ต‰์žฅํ•˜๋‹ค! ๋„์›€์ด ํ•„์š”ํ•˜์‹œ๋ฉด ์™ธ์ณ์ฃผ์„ธ์š”!
@julik, @grosser์— ๋Œ€ํ•œ๋ณด๋‹ค ๋‚ด ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜๋ฉด ๋น„์Šทํ•œ ์ผ์„ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒํ•˜์‹ญ์‹œ์˜ค Patron ์–ด๋Œ‘ํ„ฐ ๐Ÿ˜„๋ฅผ?

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ํ–‰๋ณตํ•œ 2021๋…„! ๋‚˜๋Š” Patron ์–ด๋Œ‘ํ„ฐ์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์„ค์ •ํ•  ๋•Œ ์ง๋ฉดํ•œ ๋ฌธ์ œ๋Š” ๊ณต์œ  ํ…Œ์ŠคํŠธ์—์„œ ๋ชจ์˜ โ€‹โ€‹์‚ฌ์šฉ์„ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค(webmock์ด ๋ช‡ ๊ณณ์—์„œ Patron์„ ํŒจ์น˜ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค). ์ถ”์ถœ์„ ํ•  ๋•Œ ๋‚˜๋Š” Patron webmock ์žฌ์ •์˜์˜ ๊ณต๋™ ์œ ์ง€์ž๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•œ ๊ฐ€์ง€์ด๋ฉฐ, ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋Œ€์‹  ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Webmock๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์†Œ ๊ฐœ์ธ์ ์ธ ๊ฒƒ์ด์ง€๋งŒ 2020๋…„์— ์ƒ๋Œ€์ ์œผ๋กœ ์–ด๋ ค์šด ์ฃผ์ œ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์„ค๋“ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ํ•ด์˜ "ํ™•์‹คํ•œ" ์˜ˆ์‚ฐ์„ ์†Œ์ง„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์ขŒ ๋Œ€์›”์— ๋งŽ์ด ๋น ์ ธ์„œ ์‹ค์ œ๋กœ๋Š” ๋‚ด ์›ฐ๋น™์— ์•ฝ๊ฐ„์˜ ์œ„ํ—˜์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„ ๋‚˜๋Š” A์—์„œ B๋กœ ๋งค์šฐ ์•ˆ์ „ํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ์‚ฌ์ด์— ๋‚ด๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์•ž๋’ค๋กœ์˜ ์–‘์€ ๊ฒฝ๋กœ๊ฐ€ ์ด์ „๋ณด๋‹ค ํ›จ์”ฌ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ๋‚ด๊ฐ€ ๋น ๋ฅธ ์„ฑ์žฅ์„ ๊ฒช๊ณ  ์žˆ๋Š” ์กฐ์ง์˜ ์ผ๋ถ€๋ผ๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด์— ๋Œ€ํ•ด ์–‘๋ณด๋ฅผ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž…์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ œ ๊ฐœ์ธ์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ผ์— ์ฐธ์—ฌํ•  ์˜ˆ์‚ฐ์„ ์„ธ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ: ์šฐ๋ฆฌ๊ฐ€ ๊ทธ ๊ฒฐ์ •์„ ์žฌ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด(์‹ค์ œ ์š”์ฒญ ๋Œ€์‹  webmock์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋Œ‘ํ„ฐ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค) ํ›„์›์ž ํ†ตํ•ฉ ๋„๋งค์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

@julik ๋‹น์‹ ์˜ ์š”์ ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค! Webmock์„ ๋„์ž…ํ•œ ์ฃผ๋œ ์ด์œ ๋Š” ๊ณผ๊ฑฐ์— ์ด๋ฏธ ๋…ผ์˜ํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. 8๊ฐ€์ง€ ๋‹ค๋ฅธ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋„ ๊ทธ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค!

๋ฒˆ๋“ค์—์„œ ์™ธ๋ถ€ ์–ด๋Œ‘ํ„ฐ๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๊ฐ€๋Šฅํ•œ ํ•œ ๋ถ€๋“œ๋Ÿฝ๊ณ  ์‰ฝ๊ฒŒ ๋˜๋„๋ก ์™ธ๋ถ€์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. Faraday v1.0์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ฒˆ๋“ค๋กœ ์ œ๊ณตํ•˜๋ฏ€๋กœ(๊ทธ๋Ÿฌ๋‚˜ lib ํด๋”์— ํŒŒ์ผ์ด ์•„๋‹Œ gem์œผ๋กœ ํฌํ•จ๋จ), ๊ทธ๋Ÿฐ ๋‹ค์Œ repo๋ฅผ ์ƒˆ gem์œผ๋กœ ์ถ”์ถœํ•  ๋•Œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ๋‹ค์•ผ! Net::HTTP ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์–ด๋Œ‘ํ„ฐ ์ ฌ์˜ v1.0์ด ์ƒ์„ฑ๋˜๊ณ  ํŒจ๋Ÿฌ๋ฐ์ด์— ์ถ”๊ฐ€๋˜๋ฉด ์–ด๋Œ‘ํ„ฐ ์ ฌ์— ๋Œ€ํ•œ v2.0 ๊ฒฝ๋กœ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์œผ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์—ฌ๊ธฐ์—๋Š” ์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ์›ํ•œ๋‹ค๋ฉด ์‹ค์ œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋ณด์„์ด ์†Œ์œ„ "์‚ฌ์šฉ์ž ์˜์—ญ"์— ์žˆ์œผ๋ฉด ๋” ์ด์ƒ ์ƒท์„ ํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉฐ ๋ชจ๋“  ๊ฒฐ์ •์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋ณด์„ ์†Œ์œ ์ž์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋” ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์‹ค์ œ ์š”์ฒญ์ด ์žˆ๋Š” ์ผ์ข…์˜ "ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ" ์ œํ’ˆ๊ตฐ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋…ผ์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ๊ตฐ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋ชจ๋‘ ์•„์ง ๋…ผ์˜ ์ค‘์ž„).

  • ๋ชจ๋“  ์–ด๋Œ‘ํ„ฐ์™€ ํ•จ๊ป˜ "ํ”Œ๋Ÿฌ๊ทธ ์•ค ํ”Œ๋ ˆ์ด"๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Gemified/Packaged
  • ์‹ค์ œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค
  • ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ง€์›(๋ชจ์˜ API ๋ฐ ํ”„๋ก์‹œ ์„œ๋ฒ„์™€ ๊ฐ™์€ ๊ฒƒ์„ ๋•๊ธฐ ์œ„ํ•ด)
  • ์„ฑ๋Šฅ ์‹œํ—˜
  • ํŒŒ์ด๋ฒ„/๋™์‹œ์„ฑ ์ง€์›
  • ๊ธฐ๋Šฅ ํ™•์ธ ๋ณด๊ณ ์„œ("ํŒจ๋Ÿฌ๋ฐ์ด" ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•˜๊ณ  ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋Š” ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ ์ƒ์„ฑ, ์ƒˆ ๊ธฐ๋Šฅ์„ ์ฐพ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์šฉ)
  • ๋” ๋งŽ์ด ์—ด์–ด์ฃผ์„ธ์š”... !

@technoweenie ๋Š” ์‹ฌ์ง€์–ด ์ด์— ๋Œ€ํ•œ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค: https://github.com/technoweenie/faraday-live

๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ๊ทธ ์ผ์„ ๋•๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ์œผ๋กœ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๊ทธ ๋ฉด์— ๋Œ€ํ•œ ์˜๊ฒฌ๊ณผ ๋„์›€์„ ํ™˜์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜ƒ

์ €๋„ ์ œ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์–ด์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. (์ด๊ฒƒ์„ ๋ณด์—ฌ์ฃผ์‹  @olleolleolle ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค) :)

๋‚˜๋Š” https://github.com/lostisland/faraday/projects/3๋ฅผ ๋ณด์•˜๋‹ค - ์ด๊ฒƒ๋“ค์„ ๋ณด์„์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ GitHub์— ๋ชจ๋“  ๊ฐœ๋ณ„ ๋ณด์„์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŒจ๋Ÿฌ๋ฐ์ด ์กฐ์ง์„ ๋งŒ๋“ค ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@iMacTia , ๋‹น์‹ ์„ ์œ„ํ•œ CC

@MikeRogers0 lostisland, ์ด ์กฐ์ง์€ gemified ์–ด๋Œ‘ํ„ฐ์ธ faraday -http ์˜ ๊ณ ํ–ฅ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋” ๋งŽ์€ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ด ์กฐ์ง์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์—„์ฒญ๋‚œ! ์–ด์ ฏ๋ฐค @lostisland ๊ฐ€ ์กฐ์ง ๊ณ„์ •์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์™„์ „ํžˆ ๋น„

๋‹ค์Œ ์ฃผ์—๋Š” Net::HTTP ์–ด๋Œ‘ํ„ฐ๋ฅผ gem์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ณ  Net::HTTP::Persistent ๋Œ€ํ•ด ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์ž‘์—…์„ ๋•๊ธฐ ์œ„ํ•ด ๊ฐœ์ธ ๊ณ„์ •์—์„œ ํ•œ ๋ฒˆ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ์–‘์ด ์ƒ๊ธด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์˜ฌ๋ ค ๋†“๊ณ  ์ด์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @MikeRogers0 , ๋“ฃ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
@grosser ๋Š” ๋˜ํ•œ Net::HTTP::Persistent ์–ด๋Œ‘ํ„ฐ์— ๋Œ€ํ•ด ๊ณผ๊ฑฐ์— ๊ธฐ์—ฌํ•œ ์ ์ด ์žˆ์œผ๋ฏ€๋กœ ์ง€์‹์ด ํ’๋ถ€ํ•˜๋ฏ€๋กœ ๋ถ€๋‹ด ์—†์ด ๊ณ„์†ํ•ด์„œ ๊ทธ๋ฅผ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค.

์–ด๋Œ‘ํ„ฐ์˜ ์œ„์น˜์— ๊ด€ํ•ด์„œ๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๊ทธ๋“ค์ด ์–ด๋””์— ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๊ฐ•ํ•˜๊ฒŒ ๋Š๋ผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ ์‚ฌ๋žŒ์ด ์ฃผ์š” ์œ ์ง€ ๊ด€๋ฆฌ์ธ์ด๋ผ๋ฉด ๊ฐœ์ธ ๊ณ„์ •์œผ๋กœ ์‚ฌ๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ๋Š” ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์— ๋งŒ์กฑํ•œ๋‹ค๋ฉด, ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ณ„์ •์— ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋‚จ๊ฒจ๋‘๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์•„๋ฌด๋Ÿฐ ๋ฐ˜๋Œ€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

@MikeRogers0 @julik @grosser ์ƒˆ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ ํ…œํ”Œ๋ฆฟ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/lostisland/faraday-adapter-template

์ด๊ฒƒ์„ WIP์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ๊ฐœ์„ ์„ ์œ„ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค!

@iMacTia ํ…œํ”Œ๋ฆฟ ์ €์žฅ์†Œ๋Š” ๋งค์šฐ ํŽธ๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ https://github.com/MikeRogers0/faraday-net_http_persistent๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. - @lostisland ๋กœ ์ „์†ก๋˜๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. :)

๋ฉ‹์ง„ ์ž‘์—…
๋‚˜๋Š” ์ €์žฅ์†Œ ์ „์†ก์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์‚ฌ์šฉ์ž์—์„œ ์กฐ์ง์œผ๋กœ ์ด๋™ํ•  ๋•Œ ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ 'lostisland'๋กœ ์ด์ „ํ•  ์˜ํ–ฅ์ด ์žˆ๋‹ค๋ฉด ๋จผ์ € ์ €์—๊ฒŒ ์ด์ „ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์ด์ „ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ์•ˆ์—? ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ท€ํ•˜์™€ @grosser ๋ฅผ ํ•ด๋‹น ์ €์žฅ์†Œ์˜ ๊ด€๋ฆฌ์ž๋กœ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

๋˜ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‹ค๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค! ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ(๋ถˆ๋ถ„๋ช…ํ•œ ๋‚ด์šฉ, ์›ํ•˜๋Š” ๋‚ด์šฉ์ด ํฌํ•จ๋œ ๋‚ด์šฉ, ์˜คํƒ€ ๋“ฑ...) ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ ์ด์— ๋Œ€ํ•œ PR์„ ์ž์œ ๋กญ๊ฒŒ ์—ด์–ด์ฃผ์„ธ์š” ๐Ÿ˜„

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์˜ gem์„ Rubygems๋กœ ๋ฆด๋ฆฌ์Šคํ•˜๊ณ  Faraday์—์„œ Net::HTTP::Persistent ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ gem์„ ๊ฑฐ๊ธฐ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ํŒจ๋Ÿฌ๋ฐ์ด์— ๋Œ€ํ•œ PR์„ ๊ตํ™˜ ์—ฌ๋ถ€๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋‚˜๋Š” ๋‹น์‹ ๊นŒ์ง€, ๋ฐฉ์ถœ ๋Œ๋ณผ ์ˆ˜ ( ์—ฌ๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ์— PR Net::HTTP )

image

@iMacTia - ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, ์ „์†ก์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค :)

๋˜ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‹ค๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค! ์˜๊ฒฌ์ด ์žˆ์œผ์‹œ๋ฉด

Readme์— GitHub Action์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•˜๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค. :) ๋˜ํ•œ Rubocop์„ StandardRB๋กœ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ถŒ์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์˜ gem์„ Rubygems๋กœ ๋ฆด๋ฆฌ์Šคํ•˜๊ณ  Faraday์—์„œ Net::HTTP::Persistent ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์ƒˆ gem์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—„์ฒญ๋‚œ! ํ™๋ณดํ•˜๋Ÿฌ ๊ฐ‘๋‹ˆ๋‹ค ๐ŸŽ‰

@MikeRogers0 @grosser repo๊ฐ€ โ€‹โ€‹์ด์ „๋˜์—ˆ์œผ๋ฉฐ ๋‘˜ ๋‹ค ์ดˆ๋Œ€์žฅ์„ ๋ฐ›์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ‘
https://github.com/lostisland/faraday-net_http_persistent

@MikeRogers0 ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™!

@MikeRogers0 faraday-net_http_persistent ์ด์ œ Rubygems์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐ŸŽ‰
https://rubygems.org/gems/faraday-net_http_persistent

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