0Pricing
Ruby Academy · 강의

경로와 매개변수

HTTP를 처리합니다

경로와 매개변수은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

HTTP 요청 처리하기

웹 앱은 라우트를 일치시키고 매개변수를 읽어 요청에 응답합니다.

  • 경로 구간은 동적일 수 있습니다.
  • 쿼리 문자열은 추가 데이터를 전달합니다.
  • 양식 본문은 제출된 필드를 전달합니다.

시나트라는 이 모든 값을 params 해시를 통해 제공합니다.

require 'sinatra'

get '/echo' do
  params['msg'].to_s
end

이름 있는 라우트 매개변수

경로의 콜론은 경로 구간을 캡처하는 이름 있는 매개변수를 정의합니다.

  • /users/:id는 /users/42와 일치합니다.
  • 캡처된 값은 params['id']에 나타납니다.
require 'sinatra'

get '/users/:id' do
  "User ID is #{params['id']}"
end

여러 매개변수

라우트에는 이름 있는 매개변수가 여러 개 있을 수 있습니다.

  • 콜론으로 시작하는 각 구간이 params의 키가 됩니다.
  • 경로에서의 순서는 접근 방식에 영향을 주지 않습니다.
require 'sinatra'

get '/posts/:year/:month' do
  "Posts from #{params['month']}/#{params['year']}"
end

쿼리 문자열 매개변수

? 뒤에 오는 쿼리 문자열 값도 params에 들어갑니다.

  • /search?q=ruby는 params['q'] == 'ruby'를 제공합니다.
  • 여러 쌍은 &로 구분합니다.
require 'sinatra'

get '/search' do
  "Searching for: #{params['q']}"
end

해시로 매개변수 다루기

params 객체는 루비 해시처럼 동작합니다. 일반 해시로 연습하면 이러한 패턴을 명확하게 이해할 수 있습니다.

  • 안전성을 위해 기본값과 함께 fetch를 사용하십시오.
  • 관례상 키는 문자열입니다.
params = { 'name' => 'Ada', 'lang' => 'Ruby' }

puts params['name']
puts params.fetch('age', 'unknown')

POST로 양식 데이터 다루기

post 요청에서는 제출된 양식 필드도 params에 나타납니다.

  • 시나트라가 요청 본문을 자동으로 구문 분석합니다.
  • 쿼리 매개변수와 동일한 방식으로 접근합니다.
require 'sinatra'

post '/signup' do
  "Welcome, #{params['username']}"
end

스플랫 매개변수

스플랫(*)은 문자 수에 상관없이 일치하며, 해당 문자를 params['splat'] 배열에 저장합니다.

  • /files/*는 경로의 나머지 부분을 캡처합니다.
  • 스플랫이 여러 개이면 배열 항목도 여러 개 생성됩니다.
require 'sinatra'

get '/files/*' do
  "Path: #{params['splat'].first}"
end

선택적 라우트와 정규식 라우트

라우트는 정확하게 일치시키기 위해 정규 표현식을 사용할 수 있습니다.

  • 캡처 결과는 params['captures']에서 사용할 수 있습니다.
  • 숫자로 된 ID만 허용하는 제약 조건 등에 유용합니다.
require 'sinatra'

get %r{/item/(\d+)} do
  "Item #{params['captures'].first}"
end

매개변수 검증하기

들어오는 매개변수는 문자열로 전달되므로 항상 검증하고 변환하십시오.

  • 숫자에는 to_i 또는 Integer()를 사용하십시오.
  • 필수 값이 누락되면 명확한 오류와 함께 거부하십시오.
def parse_id(raw)
  id = Integer(raw)
  raise 'must be positive' if id <= 0
  id
end

puts parse_id('42')

기본값

선택적 매개변수에 적절한 기본값을 제공하여 값 없음 오류를 피하십시오.

  • params.fetch('page', '1')
  • 안전한 페이지 매김을 위해 변환과 함께 사용하십시오.
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"

리디렉션하기

redirect를 사용하여 클라이언트를 다른 URL로 보내십시오.

  • 기본적으로 302 상태를 발급합니다.
  • 양식 제출이 성공한 후에 흔히 사용합니다.
require 'sinatra'

post '/login' do
  redirect '/dashboard'
end

빠른 확인

라우트와 매개변수에 대해 무엇을 알고 있는지 확인해 보십시오.

복습

시나트라가 입력을 처리하는 방법을 배웠습니다:

  • 이름 있는 매개변수에는 경로에서 :name을 사용합니다.
  • 쿼리 문자열과 양식 필드도 params를 채웁니다.
  • 스플랫과 정규식 라우트는 유연한 경로를 캡처합니다.
  • 문자열 매개변수는 항상 검증하고 변환하십시오.
  • redirect를 사용하여 URL 사이에서 클라이언트를 이동시키십시오.

다음에는 구조화된 JSON 응답을 반환합니다.

자주 묻는 질문

“경로와 매개변수” 강의는 무료인가요?

네 — “경로와 매개변수” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“경로와 매개변수”에서 뭘 배우나요?

HTTP를 처리합니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Ruby Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“경로와 매개변수” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Sinatra 기초
  2. 경로와 매개변수
  3. JSON API
  4. 미들웨어와 Rack
← Ruby Academy(으)로 돌아가기