์คํธ๋ฆฌ๋ฐ ์ง์์ ์ฐพ๊ณ ์์ต๋๋ค ... 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๋ฅผ ๋ค์ ์ค ํ๋๋ก ๋ณํฉํ๋ ค๋ฉด ๋จผ์ ๋ค์ ์์
์ ์ํํด์ผ ํฉ๋๋ค.
์์ ์๋ฃจ์
์ค ํ๋์ ๋ํ ์์
์ ํฌ์ํ ์๊ฐ์ด ๋ถ์กฑํ๊ณ ๋๋ฆฌ๋ค๋ ์ ์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
์๋ง๋ 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์ ๊ด๋ฆฌํ๊ณ ๋ช ํํ๊ณ ๋ ผ๋ฆฌ์ ์ธ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํฉ๋๋ค(์ ๋ฅผ ๋ฏฟ์ผ์ญ์์ค. ํ์๋ ์ฐ๋ฐ์ ์ธ ๊ธฐ์ฌ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค). ๊ทธ๋ค์ด ๊ธฐ์ฌ์ ์ ๋ ฅ์ ํํฐ๋งํ๊ฑฐ๋ ์กฐ์ ํ์ง ์์๋ค๋ฉด ์ค๋๋ ์ฐ๋ฆฌ๋ ์์ ํ ๋ค๋ฅธ ํจ๋ฌ๋ฐ์ด๋ฅผ ์๊ฒ ๋ ๊ฒ์ด๊ณ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ์๊ณ ์๋ ๊ฒ๋ณด๋ค ๋ ๋์์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.
์ด ๋ฌธ์ ๋ ์ด์ ํ๋ก์ ํธ ๋ก ๋ณํ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์งํ ๋งํด์, ๋๋ ๊ฐ์ธ์ ์ผ๋ก ๋ง์ง๋ง ๋ฌธ์ฅ์ ๋์ํฉ๋๋ค.
์ ๋ 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์ ๊ด๋ฆฌํ๊ณ ๋ช ํํ๊ณ ๋ ผ๋ฆฌ์ ์ธ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํฉ๋๋ค(์ ๋ฅผ ๋ฏฟ์ผ์ญ์์ค. ํ์๋ ์ฐ๋ฐ์ ์ธ ๊ธฐ์ฌ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค). ๊ทธ๋ค์ด ๊ธฐ์ฌ์ ์ ๋ ฅ์ ํํฐ๋งํ๊ฑฐ๋ ์กฐ์ ํ์ง ์์๋ค๋ฉด ์ค๋๋ ์ฐ๋ฆฌ๋ ์์ ํ ๋ค๋ฅธ ํจ๋ฌ๋ฐ์ด๋ฅผ ์๊ฒ ๋ ๊ฒ์ด๊ณ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ์๊ณ ์๋ ๊ฒ๋ณด๋ค ๋ ๋์์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.