Rails Insights

Ruby에서 ARGV로 명령줄 인수 처리하기

Ruby는 간결하고 강력한 프로그래밍 언어로, 다양한 작업을 쉽게 수행할 수 있도록 돕습니다. 그 중 하나가 명령줄 인수를 처리하는 것입니다. 이 글에서는 Ruby의 ARGV를 사용하여 명령줄 인수를 처리하는 방법에 대해 알아보겠습니다. ARGV는 Ruby 프로그램이 실행될 때 전달된 인수들을 배열 형태로 제공합니다. 이 기능을 활용하면 사용자로부터 입력을 받아 프로그램의 동작을 유연하게 조정할 수 있습니다.

ARGV란 무엇인가?

ARGV는 Ruby에서 제공하는 특별한 배열로, 프로그램이 실행될 때 명령줄에서 전달된 인수들을 저장합니다. 예를 들어, 사용자가 프로그램을 실행할 때 다음과 같이 인수를 전달할 수 있습니다:

ruby my_program.rb arg1 arg2 arg3

이 경우, ARGV 배열은 다음과 같이 구성됩니다:

ARGV = ["arg1", "arg2", "arg3"]

이제 ARGV를 사용하여 명령줄 인수를 처리하는 방법을 살펴보겠습니다.

기본 사용법

ARGV를 사용하는 기본적인 방법은 매우 간단합니다. 아래의 예제를 통해 ARGV를 어떻게 활용할 수 있는지 알아보겠습니다.

# my_program.rb
puts "전달된 인수는 다음과 같습니다:"
ARGV.each do |arg|
  puts arg
end

위의 코드를 실행하면, 사용자가 입력한 모든 인수가 출력됩니다. 예를 들어, 다음과 같이 실행할 수 있습니다:

ruby my_program.rb Hello World

출력 결과는 다음과 같습니다:

전달된 인수는 다음과 같습니다:
Hello
World

인수 개수 확인하기

때때로 프로그램에서 전달된 인수의 개수를 확인해야 할 필요가 있습니다. ARGV 배열의 length 메서드를 사용하여 인수의 개수를 쉽게 확인할 수 있습니다.

# my_program.rb
puts "전달된 인수의 개수: #{ARGV.length}"

이 코드를 실행하면, 사용자가 입력한 인수의 개수를 출력합니다. 예를 들어:

ruby my_program.rb one two three

출력 결과는 다음과 같습니다:

전달된 인수의 개수: 3

인수 기본값 설정하기

때때로 인수가 제공되지 않을 경우 기본값을 설정하고 싶을 수 있습니다. 이를 위해 Ruby의 || 연산자를 사용할 수 있습니다. 아래의 예제를 통해 기본값을 설정하는 방법을 알아보겠습니다.

# my_program.rb
name = ARGV[0] || "사용자"
puts "안녕하세요, #{name}님!"

이 코드를 실행할 때 인수를 제공하지 않으면 기본값인 "사용자"가 사용됩니다:

ruby my_program.rb

출력 결과는 다음과 같습니다:

안녕하세요, 사용자님!

인수를 제공하면 해당 인수가 사용됩니다:

ruby my_program.rb Alice

출력 결과는 다음과 같습니다:

안녕하세요, Alice님!

인수 타입 변환하기

명령줄 인수는 기본적으로 문자열로 처리됩니다. 따라서 숫자나 다른 타입으로 변환해야 할 경우, 적절한 변환을 수행해야 합니다. 예를 들어, 사용자가 두 개의 숫자를 입력하고 이들의 합을 계산하는 프로그램을 작성해 보겠습니다.

# my_program.rb
num1 = ARGV[0].to_i
num2 = ARGV[1].to_i
sum = num1 + num2
puts "두 숫자의 합: #{sum}"

이 코드를 실행할 때 두 개의 숫자를 입력하면 합계가 출력됩니다:

ruby my_program.rb 5 10

출력 결과는 다음과 같습니다:

두 숫자의 합: 15

옵션 인수 처리하기

명령줄 인수는 단순한 값뿐만 아니라 옵션 형태로도 전달될 수 있습니다. 예를 들어, -h 또는 --help와 같은 옵션을 처리하는 방법을 살펴보겠습니다.

# my_program.rb
if ARGV.include?("-h") || ARGV.include?("--help")
  puts "도움말: 이 프로그램은 두 숫자의 합을 계산합니다."
  puts "사용법: ruby my_program.rb [숫자1] [숫자2]"
  exit
end

num1 = ARGV[0].to_i
num2 = ARGV[1].to_i
sum = num1 + num2
puts "두 숫자의 합: #{sum}"

이 코드를 실행할 때 도움말 옵션을 제공하면 도움말 메시지가 출력됩니다:

ruby my_program.rb -h

출력 결과는 다음과 같습니다:

도움말: 이 프로그램은 두 숫자의 합을 계산합니다.
사용법: ruby my_program.rb [숫자1] [숫자2]

인수 유효성 검사하기

사용자가 잘못된 인수를 입력할 경우를 대비하여 유효성 검사를 수행하는 것이 좋습니다. 아래의 예제에서는 인수가 두 개가 아닌 경우 오류 메시지를 출력하도록 하겠습니다.

# my_program.rb
if ARGV.length != 2
  puts "오류: 두 개의 숫자를 입력해야 합니다."
  puts "사용법: ruby my_program.rb [숫자1] [숫자2]"
  exit
end

num1 = ARGV[0].to_i
num2 = ARGV[1].to_i
sum = num1 + num2
puts "두 숫자의 합: #{sum}"

이 코드를 실행할 때 인수가 두 개가 아닌 경우 오류 메시지가 출력됩니다:

ruby my_program.rb 5

출력 결과는 다음과 같습니다:

오류: 두 개의 숫자를 입력해야 합니다.
사용법: ruby my_program.rb [숫자1] [숫자2]

결론

이 글에서는 Ruby에서 ARGV를 사용하여 명령줄 인수를 처리하는 방법에 대해 알아보았습니다. ARGV를 통해 사용자로부터 입력을 받아 프로그램의 동작을 유연하게 조정할 수 있습니다. 기본적인 사용법부터 인수 개수 확인, 기본값 설정, 타입 변환, 옵션 처리, 유효성 검사까지 다양한 방법을 살펴보았습니다. 이러한 기능들을 활용하여 더욱 강력하고 유용한 Ruby 프로그램을 작성해 보세요!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.