ํจ๋ฌ๋ฐ์ด์์ ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒ์ ๋ํ ์์๋ฆฌ์คํธ ์์ง์ ์์ํ๊ณ ์ถ์ต๋๋ค. ์์ง ๊ตฌ์ฒด์ ์ธ ๊ฒ์ ์์ต๋๋ค.
lib/faraday/params_encoders/[nested, flat]
?Faraday::Utils
Faraday::Connection
=> Faraday::Client
#response
์์ฑ(RaiseError, RetriableRequest ๋ฑ) [#1284]Faraday::Connection
๋ฐ Faraday::RackBuilder
๊ด๊ณ ์ฌ์ค๊ณuse
/ adapter
/etc ์์ ์ ๊ฑฐFaraday::RackBuilder#handlers
=> Faraday::Connection#handlers
lib/faraday/middleware/*
rescue + reopen
๋ก์ง๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. gem์ ๋ํ ์ปคํ๋ง/๋ฒ์ญ ๋ก์ง์ ์ ๊ฑฐํ ๊ฒ์
๋๋ค https://github.com/drbrain/net-http-persistent/pull/100 ์ฐธ์กฐ๊ฐ์ฌํฉ๋๋ค. ์ข์ ์ ์์ ๋๋ค!
์ ์ญ ์บ์๊ฐ ํ์ํ์ง ์๋๋ก ์ฐ๊ฒฐ ๊ฐ์ฒด๋ฅผ ์ ์งํ์ฌ 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 ๊ฒฝ๋ก๋ฅผ ์์ํ๊ณ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ผ๋ก ๋ฌด์์ ํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์ฌ๊ธฐ์๋ ์ํ๋ ํ๋ ์์ํฌ๋ก ํ
์คํธ๋ฅผ ๋ค์ ์์ฑํ๊ณ ์ํ๋ค๋ฉด ์ค์ ํธ์ถ์ ์ฌ์ฉํ๋ ๊ฒ๋ ํฌํจ๋ฉ๋๋ค.
๋ณด์์ด ์์ "์ฌ์ฉ์ ์์ญ"์ ์์ผ๋ฉด ๋ ์ด์ ์ท์ ํ ๊ถ๋ฆฌ๊ฐ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒฐ์ ์ ์ปค๋ฎค๋ํฐ์ ๋ณด์ ์์ ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋งํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ค์ ์์ฒญ์ด ์๋ ์ผ์ข ์ "ํตํฉ ํ ์คํธ" ์ ํ๊ตฐ์ ๋ง๋๋ ๊ฒ์ ๋ํด ๋ด๋ถ์ ์ผ๋ก ๋ ผ์ํ๊ณ ์์ต๋๋ค. ์ด ์ ํ๊ตฐ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(๋ชจ๋ ์์ง ๋ ผ์ ์ค์).
@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
)
@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
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์ฒญ๋! ์ด์ ฏ๋ฐค @lostisland ๊ฐ ์กฐ์ง ๊ณ์ ์ด๋ผ๋ ์ฌ์ค์ ์์ ํ ๋น
๋ค์ ์ฃผ์๋
Net::HTTP
์ด๋ํฐ๋ฅผ gem์ผ๋ก ์ฎ๊ธฐ๊ธฐ ์ํด ๋ณ๊ฒฝ๋ ์ฌํญ์ ์ดํด๋ณด๊ณNet::HTTP::Persistent
๋ํด ๋ณต์ ํฉ๋๋ค. ๋น ๋ฅธ ์์ ์ ๋๊ธฐ ์ํด ๊ฐ์ธ ๊ณ์ ์์ ํ ๋ฒ ์์ํ๊ฒ ์ต๋๋ค. ๋ชจ์์ด ์๊ธด ๊ฒ ๊ฐ์ต๋๋ค. ๋งํฌ๋ฅผ ์ฌ๋ ค ๋๊ณ ์ด์ ํ ์ ์์ต๋๋ค.