Faraday: HTTP.rb์šฉ ์–ด๋Œ‘ํ„ฐ

์— ๋งŒ๋“  2018๋…„ 02์›” 23์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: lostisland/faraday

์š”์•ฝ

์ตœ๊ทผ์— HTTP ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋œ ์ผ๋ช… HTTP.rb . Ruby๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ HTTP ํด๋ผ์ด์–ธํŠธ์ด์ง€๋งŒ ๊ฝค ๊น”๋”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Faraday์— ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ธ๋ถ€

๋‚˜๋Š” ๊ธฐ๊บผ์ด ๊ทธ๊ฒƒ์„ ๋„์šธ ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ง€์นจ๊ณผ ๋‹ค์Œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•? ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ด๋“œ๋‚˜ ํŠน์ • ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๊นŒ?
  • ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์–ด๋””์— ์ œ์ถœํ•˜๋‚˜์š”? HTTP.rb? ํŒจ๋Ÿฌ๋ฐ์ด? ๋‘˜ ๋‹ค?

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

@PandaWhisperer faraday-http ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ง‰ ์‹œ์ž‘๋˜์—ˆ๊ณ  ์ž‘๋…„์— ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž‘์—… ๋•๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค: https://rubygems.org/gems/faraday-http ๐ŸŽ‰

์•„์ง ์‚ฌ์šฉ์„ ๊ณ„ํš ์ค‘์ด๊ณ  ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ท€ํ•˜๋ฅผ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ดˆ๋Œ€๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

@PandaWhisperer ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”. Faraday์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ง€๊ธˆ๊นŒ์ง€ ์–ด๋Œ‘ํ„ฐ๋Š” Faraday์— ๋ณด๊ด€๋˜์—ˆ๊ณ  ํ•ต์‹ฌ ํŒ€์—์„œ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๋กœ ์ธํ•ด ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ๊นจ๋‹ฌ์•˜์œผ๋ฏ€๋กœ ์™ธ๋ถ€๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์†”๋ฃจ์…˜์€ ์ „์šฉ gem(์˜ˆ: faraday-http )์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ํด๋ผ์ด์–ธํŠธ gem ๋‚ด๋ถ€์— ํ†ตํ•ฉ๋œ ๊ฒฝ์šฐ(์˜ˆ: typhoeus )๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ๊ฒƒ์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ gem์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ „์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๊ตฌํ˜„๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ตœ๊ทผ์— ๋‹ค๋ฅธ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€ ์กฐ์–ธ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. #766์—์„œ (์–ด๋Œ‘ํ„ฐ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋งํฌ์™€ ํ•จ๊ป˜) ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ RSpec์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์— ์žˆ์œผ๋ฉฐ ์™ธ๋ถ€ gem์ด ํ…Œ์ŠคํŠธ ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ๋‹จ๊ธฐ๊ฐ„์˜ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค ๐Ÿ˜‚

์ด ๋ชจ๋“  ๊ฒƒ์ด ์œ ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ์ง€๋งŒ ๋” ํ•„์š”ํ•œ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ๐Ÿ‘!

์•ˆ๋…•ํ•˜์„ธ์š” @iMacTia์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์„ ๊ฐ–๊ณ  ๊ธฐ๋ณธ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ•ดํ‚นํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ฉ”์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ณด๋‚ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค). ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ง€์›๋˜๊ณ  ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ์‹œ๊ฐ„์„ ๋‚ด์–ด ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด๊ฒƒ์€ ๋‹จ์ง€ ์žฌ๋ฏธ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด์—ˆ๊ณ  ์ง€๊ธˆ์€ ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ณด์„์œผ๋กœ ํฌ์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด LMK๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

@PandaWhisperer ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”. ์‹œ๊ฐ„์„ ๋‚ด์–ด ์ž‘์—…ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
์Šฌ์ฉ ๋ดค๋Š”๋ฐ PR์ด ์ข‹์€ ์ถœ๋ฐœ์ ์ด ๋œ ๊ฒƒ ๊ฐ™์•„์š” ๐Ÿ‘
์ด๋ฏธ ์ง€์ ํ–ˆ๋“ฏ์ด ํ˜„์žฌ ๊ตฌํ˜„์ด SSL ๋˜๋Š” ์••์ถ•์„ ์ง€์›ํ•˜๋Š”์ง€ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ์žฌ๋ฏธ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ฒƒ์„ ๊ณ ๋ คํ•˜๋ฉด ๊ฒฐ๊ณผ์— ๋งŒ์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜„

v1.0์˜ ์ „์ฒด ์•„์ด๋””์–ด๋Š” ์ƒˆ๋กœ์šด ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์—ฌ๋Ÿฌ๋ถ„๊ณผ ๊ฐ™์€ ์‚ฌ๋žŒ๋“ค(์ปค๋ฎค๋‹ˆํ‹ฐ!)์ด ํ•ต์‹ฌ ํŒ€์— ์ง์ ‘์ ์œผ๋กœ ์˜์กดํ•˜์ง€ ์•Š๊ณ ๋„ Faraday์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ์ค‘์š”ํ•œ ์ž‘์—…์€ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์™ธ๋ถ€ ์–ด๋Œ‘ํ„ฐ/๋ฏธ๋“ค์›จ์–ด gem์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ ๊ทธ๊ฒƒ์— ์ง‘์ค‘ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๋ถ„๊ธฐ ์—์„œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„๋ฃŒ๋˜๊ณ  ๋ณ‘ํ•ฉ๋˜๋ฉด ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ…Œ์ŠคํŠธ ๋ฐ์Šคํฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

์•ˆ๋…•ํ•˜์„ธ์š” @PandaWhisperer ๐Ÿ‘‹
๊ณ ํ†ต์Šค๋Ÿฌ์šด ๋ช‡ ๋‹ฌ๊ณผ ๋งŽ์€ ๋ฆฌํŒฉํ† ๋ง ๋์— 1.0์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ด์ œ RSpec์œผ๋กœ ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐ŸŽ‰ !
๊ทธ ์ผํ™˜์œผ๋กœ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” "๊ณต์œ  ์˜ˆ์ œ" ์„ธํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ํŒจ๋Ÿฌ๋ฐ์ด ์ฝ”์–ด์— ๋Œ€ํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์™ธ๋ถ€ ๋ณด์„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„์ง HTTP ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž‘์—… ์ค‘์ด๊ณ  ์‹œ๋„ํ•ด ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ๐Ÿ‘

@PandaWhisperer ์ด์ œ v1.0์— ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์–ด๋Œ‘ํ„ฐ๋Š” ์ด์ œ ์ž์ฒด
๋‚˜๋Š” ๋‹น์‹ ์ด ์ž‘์„ฑํ•œ ์–ด๋Œ‘ํ„ฐ์—์„œ ๋ณด์„์„ ๋งŒ๋“œ๋Š” ์ž์œ ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ฃผ์š” PR์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/lostisland/faraday-http/pull/1

์ด๊ฒƒ์€ ๊ฐœ๋… ์ฆ๋ช…์ผ ๋ฟ์ด์ง€๋งŒ Faraday 1.0์˜ ์ฒซ ๋ฒˆ์งธ ๊ณต์‹ ์™ธ๋ถ€ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค โค๏ธ

์—ฌ์ „ํžˆ ํ•ด๋‹น ์–ด๋Œ‘ํ„ฐ์— ๊ด€์‹ฌ์ด ์žˆ๊ณ  ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@PandaWhisperer faraday-http ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ง‰ ์‹œ์ž‘๋˜์—ˆ๊ณ  ์ž‘๋…„์— ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž‘์—… ๋•๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค: https://rubygems.org/gems/faraday-http ๐ŸŽ‰

์•„์ง ์‚ฌ์šฉ์„ ๊ณ„ํš ์ค‘์ด๊ณ  ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ท€ํ•˜๋ฅผ ๊ณต๋™ ์ž‘์—…์ž๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ดˆ๋Œ€๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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