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