Rails Insights

루비로 간단한 CLI 도구 만들기

명령줄 인터페이스(CLI) 도구는 개발자와 사용자 간의 상호작용을 간소화하는 데 매우 유용합니다. 루비는 간단하고 직관적인 문법 덕분에 CLI 도구를 만드는 데 적합한 언어입니다. 이 글에서는 루비를 사용하여 간단한 CLI 도구를 만드는 방법을 단계별로 안내하겠습니다.

CLI 도구란?

CLI 도구는 사용자가 명령줄에서 입력한 명령을 통해 작동하는 프로그램입니다. 이러한 도구는 파일 관리, 데이터 처리, 시스템 모니터링 등 다양한 작업을 자동화하는 데 사용됩니다. CLI 도구의 장점은 다음과 같습니다:

  • 빠른 실행 속도
  • 리소스 소모가 적음
  • 스크립트화 및 자동화 가능
  • 다양한 플랫폼에서 사용 가능

루비 설치하기

루비를 사용하기 위해서는 먼저 루비를 설치해야 합니다. 루비는 다양한 운영체제에서 사용할 수 있으며, 설치 방법은 다음과 같습니다:

Windows에서 루비 설치하기

Windows에서는 RubyInstaller를 사용하여 루비를 설치할 수 있습니다. 다음 단계를 따라주세요:

1. RubyInstaller 웹사이트에 접속합니다: https://rubyinstaller.org/
2. 최신 버전의 RubyInstaller를 다운로드합니다.
3. 다운로드한 파일을 실행하고 설치 마법사의 지시에 따라 설치합니다.
4. 설치가 완료되면 명령 프롬프트를 열고 'ruby -v'를 입력하여 설치가 성공적으로 완료되었는지 확인합니다.

macOS에서 루비 설치하기

macOS에서는 Homebrew를 사용하여 루비를 설치할 수 있습니다. 다음 단계를 따라주세요:

1. 터미널을 열고 Homebrew가 설치되어 있는지 확인합니다. 설치되어 있지 않다면, 다음 명령어를 입력하여 설치합니다:
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Homebrew를 사용하여 루비를 설치합니다:
   brew install ruby
3. 설치가 완료되면 'ruby -v'를 입력하여 설치가 성공적으로 완료되었는지 확인합니다.

Linux에서 루비 설치하기

Linux에서는 패키지 관리자를 사용하여 루비를 설치할 수 있습니다. 예를 들어, Ubuntu에서는 다음 명령어를 사용할 수 있습니다:

sudo apt update
sudo apt install ruby-full

설치가 완료되면 'ruby -v'를 입력하여 설치가 성공적으로 완료되었는지 확인합니다.

간단한 CLI 도구 만들기

이제 루비가 설치되었으니, 간단한 CLI 도구를 만들어 보겠습니다. 이 도구는 사용자가 입력한 두 숫자의 합을 계산하는 기능을 가집니다.

1단계: 프로젝트 디렉토리 만들기

먼저, CLI 도구를 위한 새로운 디렉토리를 만듭니다. 터미널에서 다음 명령어를 입력하세요:

mkdir simple_cli_tool
cd simple_cli_tool

2단계: 루비 파일 생성하기

이제 루비 파일을 생성합니다. 'calculator.rb'라는 이름의 파일을 만들어 주세요:

touch calculator.rb

3단계: 코드 작성하기

이제 'calculator.rb' 파일을 열고 다음 코드를 입력합니다:

# calculator.rb

def add_numbers(num1, num2)
  num1 + num2
end

if ARGV.length != 2
  puts "사용법: ruby calculator.rb <숫자1> <숫자2>"
  exit
end

num1 = ARGV[0].to_i
num2 = ARGV[1].to_i

result = add_numbers(num1, num2)
puts "결과: #{result}"

위 코드는 사용자가 입력한 두 숫자를 더하는 간단한 기능을 수행합니다. ARGV 배열을 사용하여 명령줄 인수를 받아오고, 사용법을 안내하는 메시지를 출력합니다.

4단계: CLI 도구 실행하기

이제 CLI 도구를 실행해 보겠습니다. 터미널에서 다음 명령어를 입력하세요:

ruby calculator.rb 5 10

위 명령어를 실행하면 다음과 같은 결과가 출력됩니다:

결과: 15

CLI 도구 개선하기

이제 기본적인 CLI 도구를 만들었으니, 몇 가지 기능을 추가하여 개선해 보겠습니다.

1. 오류 처리 추가하기

사용자가 숫자가 아닌 값을 입력했을 때 오류 메시지를 출력하도록 코드를 수정해 보겠습니다. 다음과 같이 코드를 변경합니다:

# calculator.rb

def add_numbers(num1, num2)
  num1 + num2
end

def valid_number?(num)
  Float(num) rescue false
end

if ARGV.length != 2 || !valid_number?(ARGV[0]) || !valid_number?(ARGV[1])
  puts "사용법: ruby calculator.rb <숫자1> <숫자2>"
  exit
end

num1 = ARGV[0].to_f
num2 = ARGV[1].to_f

result = add_numbers(num1, num2)
puts "결과: #{result}"

이제 사용자가 숫자가 아닌 값을 입력하면 오류 메시지가 출력됩니다.

2. 더하기 외의 기능 추가하기

더하기 외에도 빼기, 곱하기, 나누기 기능을 추가해 보겠습니다. 다음과 같이 코드를 수정합니다:

# calculator.rb

def add_numbers(num1, num2)
  num1 + num2
end

def subtract_numbers(num1, num2)
  num1 - num2
end

def multiply_numbers(num1, num2)
  num1 * num2
end

def divide_numbers(num1, num2)
  return "0으로 나눌 수 없습니다." if num2 == 0
  num1 / num2
end

def valid_number?(num)
  Float(num) rescue false
end

if ARGV.length != 3 || !valid_number?(ARGV[1]) || !valid_number?(ARGV[2])
  puts "사용법: ruby calculator.rb <연산자> <숫자1> <숫자2>"
  puts "연산자: add, subtract, multiply, divide"
  exit
end

operator = ARGV[0]
num1 = ARGV[1].to_f
num2 = ARGV[2].to_f

result = case operator
         when "add"
           add_numbers(num1, num2)
         when "subtract"
           subtract_numbers(num1, num2)
         when "multiply"
           multiply_numbers(num1, num2)
         when "divide"
           divide_numbers(num1, num2)
         else
           "유효하지 않은 연산자입니다."
         end

puts "결과: #{result}"

이제 사용자는 'add', 'subtract', 'multiply', 'divide' 중 하나의 연산자를 선택하여 계산할 수 있습니다.

3. 도움말 기능 추가하기

사용자가 도움말을 요청할 수 있도록 기능을 추가해 보겠습니다. 다음과 같이 코드를 수정합니다:

# calculator.rb

# ... (기존 코드)

if ARGV.length == 1 && ARGV[0] == "help"
  puts "사용법: ruby calculator.rb <연산자> <숫자1> <숫자2>"
  puts "연산자: add, subtract, multiply, divide"
  exit
end

# ... (기존 코드)

이제 사용자가 'help'를 입력하면 사용법을 안내하는 메시지가 출력됩니다.

결론

이 글에서는 루비를 사용하여 간단한 CLI 도구를 만드는 방법을 알아보았습니다. 기본적인 덧셈 기능에서 시작하여, 오류 처리, 다양한 연산 기능, 도움말 기능까지 추가해 보았습니다. CLI 도구는 다양한 작업을 자동화하고 효율성을 높이는 데 큰 도움이 됩니다. 여러분도 루비를 활용하여 자신만의 CLI 도구를 만들어 보세요!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.