Faraday: ์š”์ฒญ ๋ณธ๋ฌธ์„ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋Œ€์‹  ์‘๋‹ต์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

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

์•ˆ๋…•.

์š”์ฒญ ๋ฐ ์‘๋‹ต ๋ณธ๋ฌธ์„ ๋ชจ๋‘ 0.9.2๋กœ ์ธ์‡„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์ง€๋งŒ #277 PR์—์„œ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์„ค์ •์„ ์ œ๋Œ€๋กœ ํ•œ ๊ฒƒ ๊ฐ™์•„์š”. ์‚ฌ์˜ค๋ฆฐ ๊ฒฝ์œ  ํŒจ๋Ÿฌ๋ฐ์ด ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค..

  <strong i="9">@client</strong> = Saorin::Client.new(:url => @endpoint) do |connection|
    connection.response :logger, <strong i="10">@logger</strong>, :bodies => true
  end

๋‚ด ๋ˆˆ์—๋Š” ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์ด ์š”์ฒญ ๋ณธ๋ฌธ ์„ ์ธ์‡„ํ•˜์ง€ ์•Š์ง€๋งŒ ์‘๋‹ต ๋ณธ๋ฌธ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ์ƒ๋˜์ง€ ์•Š์Œ).
(์˜ˆ์ƒ๋Œ€๋กœ ์‘๋‹ต ๋ณธ๋ฌธ์„ ๋‹ค์‹œ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค).

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋กœ๊ทธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด response ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค request

post https://foo.bar.com/api/3.0/json-rpc
request User-Agent: "Faraday v0.9.2"
Content-Type: "application/json"
request {"result":{"accessGranted":false},"id":"foo","jsonrpc":"2.0"}
Status 200
response server: "nginx"
date: "Thu, 14 Jul 2016 21:28:21 GMT"
content-type: "application/json"
transfer-encoding: "chunked"
connection: "close"
response {"result":{"accessGranted":false},"id":"foo","jsonrpc":"2.0"}

๋‹ค์Œ faraday/response/logger.rb ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    def call(env)
      info "#{env.method} #{env.url.to_s}"
      debug('request') { dump_headers env.request_headers }
      debug('request') { dump_body(env[:body]) } if env[:body] && log_body?(:request)
      super
    end

    def on_complete(env)
      info('Status') { env.status.to_s }
      debug('response') { dump_headers env.response_headers }
      debug('response') { dump_body env[:body] } if env[:body] && log_body?(:response)
    end

์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฝ์œผ๋ฉด line: debug('request') { dump_body(env[:body]... ๊ฐ€ ์ ์ ˆํ•œ var๋ฅผ ์ธ์‡„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ env[] ๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉด ์š”์ฒญ ๋ณธ๋ฌธ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค request_headers , request_options ๋ฐ response ๋ฐ์ดํ„ฐ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋„ ๊ทธ๊ฒƒ์„ ์ „์— ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ–ˆ๋‹ค๊ณ  ๋ฏฟ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ๋‚ด๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋””?

unconfirmed

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

์•ˆ๋…•ํ•˜์„ธ์š” @iMacTia , ์ €๋„ ์ด ๋ฌธ์ œ๋กœ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“์•˜์Šต๋‹ˆ๋‹ค. ๋กœ๊ฑฐ ์ „์— ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ •์˜ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ ๋กœ๊ทธ ์š”์ฒญ ๋ณธ๋ฌธ:

Faraday.new(url: url) do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
  faraday.adapter Faraday.default_adapter
end

์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Faraday.new(url: url) do |faraday|
  faraday.adapter Faraday.default_adapter
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

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

@nthx ๋‚˜๋„ ์ด๊ฑฐ๋ณด๊ณ ..

@stve - ๋ณด๊ณ ์„œ๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์š”์ฒญ ๊ตฌ์„ฑ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ํ•ด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ..

<strong i="6">@client</strong> = Saorin::Client.new(:url => @endpoint) do |connection|
  connection.response :logger, <strong i="7">@logger</strong>, :bodies => true
  connection.request :logger, <strong i="8">@logger</strong>, :bodies => true
end

์ผ๋ฐ˜์ ์ธ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์€ env[:body] ๊ฐ€ ํ•œ ๋ฒˆ ์š”์ฒญ์˜ ๋ณธ๋ฌธ์œผ๋กœ ์„ค์ •๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ log ๋ฉ”์†Œ๋“œ ๋˜๋Š” dump_body๊ฐ€ ์‹คํ–‰๋  ๋•Œ๊นŒ์ง€ ์‘๋‹ต ๋ณธ๋ฌธ์€ env[:body] ๋‚ด๋ถ€์˜ ์š”์ฒญ ๋ณธ๋ฌธ์„ ๋Œ€์ฒดํ•˜๊ณ  ์›๋ž˜ ์š”์ฒญ ๋ณธ๋ฌธ์— ๋Œ€ํ•ด ๋” ์ด์ƒ ๋ณ€์ˆ˜/๋ณต์‚ฌ๋ณธ์ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ˜๋“œ์‹œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. env ๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด ์ „์—ญ์ ์ด๋ฏ€๋กœ ํ˜ธ์ถœ์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ์ „์— ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ๋™๊ธฐ์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์‰ฌ์šด ์ˆ˜์ •์€ ๋‘ ๊ฐœ์˜ env ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณธ๋ฌธ์„ ์ถ”์ ํ•˜๊ณ  ํ•˜๋‚˜๋Š” ์š”์ฒญ์—, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์‘๋‹ต์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ—ค๋”์—๋Š” request_headers ๋ฐ response_headers ๋ผ๋Š” ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๊ฐ’์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์˜ ๋ฆฌ๋“œ๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ์ด์œ ๋Š” ...

๋˜๋Š” request_body ๋ผ๋Š” ๋‘ ๋ฒˆ์งธ env ๊ฐ’์„ ๋งŒ๋“ค๊ณ  env.request_body ๋ฐ env.body ๋‘˜ ๋‹ค์— ์š”์ฒญ ๋ณธ๋ฌธ์„ ๋‘ ๋ฒˆ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ์กด ๋™์ž‘์— ์˜์กดํ•˜๋Š” ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ์ด๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ์žˆ๋Š” ๋กœ๊น… ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์—…๋ฐ์ดํŠธ๋œ ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ request_body ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

@nthx , ๋†“์ณค๋‹ค๋ฉด ์ฃ„์†กํ•˜์ง€๋งŒ ์–ด๋–ค ๋กœ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”?
์ฝ”๋“œ๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ด์ง€๋งŒ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ "๋ฌธ์ œ"๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์‹œ์ €์ž…๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋œ ํ›„์— ํ‰๊ฐ€๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ํ‘œ์ค€ (๋™๊ธฐ์‹) ๋กœ๊ฑฐ๋กœ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ค‘์ธ ๋กœ๊ฑฐ๋ฅผ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. :)

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

์•ˆ๋…•ํ•˜์„ธ์š” @nthx , ํ…Œ์ŠคํŠธ์— ํ–‰์šด์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ƒˆ๋กœ์šด ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ•˜์…จ๋‚˜์š”?
์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ Faraday ๋˜๋Š” ๋กœ๊ฑฐ์— ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ‘œ์ค€์„ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ๋‚˜์—๊ฒŒ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๋กœ๊ฑฐ์— ๊ฒฐํ•จ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ด๊ฒƒ์„ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@nthx ๊ฐ€๋Šฅํ•œ ์›์ธ์œผ๋กœ ํŒจ๋Ÿฌ๋ฐ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒˆ๋กœ์šด ์ฆ๊ฑฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹œ์—๋Š” Faraday ๋‚ด์žฅ Logger๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ์ „ํžˆ ์ด ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋ฏธ๋“ค์›จ์–ด์— ์ž์ฒด ๋กœ๊ฑฐ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜์ค‘์— Faraday๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์—์„œ ๋” ๊ฐ„๋‹จํ•œ ๊ฒƒ์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @iMacTia , ์ €๋„ ์ด ๋ฌธ์ œ๋กœ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“์•˜์Šต๋‹ˆ๋‹ค. ๋กœ๊ฑฐ ์ „์— ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ •์˜ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ ๋กœ๊ทธ ์š”์ฒญ ๋ณธ๋ฌธ:

Faraday.new(url: url) do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
  faraday.adapter Faraday.default_adapter
end

์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Faraday.new(url: url) do |faraday|
  faraday.adapter Faraday.default_adapter
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

์•ˆ๋…•ํ•˜์„ธ์š” @llxff ์ž…๋‹ˆ๋‹ค .

์˜ˆ, ๋ฏธ๋“ค์›จ์–ด ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๊ณ  ์–ด๋Œ‘ํ„ฐ๊ฐ€ ํ•ญ์ƒ ๋งจ ์•„๋ž˜์— ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.
์–ด๋Œ‘ํ„ฐ๋ฅผ BEFORE์— ๋†“์œผ๋ฉด ๋กœ๊ฑฐ ์–ด๋Œ‘ํ„ฐ์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์š”์ฒญ์ด ์ˆ˜ํ–‰๋˜์–ด ์‘๋‹ต์ด ๋‘ ๋ฒˆ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ, ์ €๋Š” ์ด์ œ ์ด์— ๋Œ€ํ•œ @nthx ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ฝ๊ณ  ์žˆ์œผ๋ฉฐ ๋ฏธ๋“ค์›จ์–ด ์Šคํƒ์— ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

<strong i="11">@client</strong> = Saorin::Client.new(:url => @endpoint) do |connection|
    connection.response :logger, <strong i="12">@logger</strong>, :bodies => true
  end

๋˜ํ•œ Saorin gem์—์„œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ ๋™์ผํ•œ ์ •ํ™•ํ•œ ์ด์œ ๋กœ ์™„์ „ํžˆ ์ž˜๋ชป๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค: https://github.com/mashiro/saorin/blob/master/lib/saorin/client/faraday. rb#L16

๋ง์ด๋œ๋‹ค. ์•„์ง ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋‹ค๋ฅธ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ณด๊ณ ์„œ๋ฅผ ์ฝ์—ˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์ง€๋งŒ #277 PR์—์„œ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์‘๋‹ต ๋กœ๊น…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๊นŒ?
๋ฌธ์„œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌธ์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ํ‹ฐ์ผ“์„ ๋งŒ๋“ค์–ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ด๊ฒƒ์„ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ - Saorin ๋…€์„๋“ค์—๊ฒŒ ๋ˆ„๊ตฌ์—๊ฒŒ ์—ฐ๋ฝํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @nthx ๋‹˜ ๋ง์”€์ด ๋งž์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ ๋ฌธ์„œ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ƒ์„ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์‚ฌ์‹ค, ์šฐ๋ฆฌ๋Š” Readme๋ฅผ "๋ฌธ์„œ"๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค).
๊ท€ํ•˜์˜ ํŠน์ • ๊ฒฝ์šฐ์—๋Š” ๋กœ๊ฑฐ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” https://github.com/lostisland/faraday/blob/master/README.md#basic -use ์„น์…˜์— ์„ธ ๋ฒˆ์งธ ์˜ˆ๊ฐ€ ์žˆ์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. .
์šฐ๋ฆฌ๋Š” ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฐœ์„ ๋œ Wiki๋ฅผ ๊ฐ€์งˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

Saorin์— ๋”ฐ๋ฅด๋ฉด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•œ ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋‚ด ์˜๊ฒฌ์„ ๋ณด๊ณ ํ•˜๋Š” ํŽ˜์ด์ง€์—์„œ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๋“ค์˜ gem์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๋“ค์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•,

๋ฐฉ๊ธˆ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋‚ด ์š”์ฒญ์ด ์ œ๋Œ€๋กœ ์„œ๋ช…๋˜์ง€ ์•Š์€ ์ด์œ ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญํ•˜๊ธฐ ์ „์— ์„œ๋ช…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ •์˜ํ•˜๋ฏ€๋กœ ์ธ์ฆ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ์š”์ฒญ์ด ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ถ€์ž‘์šฉ์€ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ env.body๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ช…์„ ์ž‘์„ฑํ•˜๊ณ  ์‘๋‹ต ๋ณธ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ช…์„ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์ƒ๋‹จ์—์„œ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ •์˜ํ•  ๋•Œ ๋‚ด ๋กœ๊ทธ๋„ ์ž˜๋ชป๋˜์—ˆ๊ณ  ๋‚ด ์„œ๋ช… ์Šคํฌ๋ฆฝํŠธ๋„ ์ž˜๋ชป๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”!

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