Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

Ruby로 명령줄 인터페이스(CLI) 만들기: 초보자를 위한 단계별 가이드

명령줄 인터페이스(CLI)를 직접 만들어 보고 싶으신가요? 코딩 실력을 키우기에 정말 좋은 프로젝트입니다. 이 가이드에서는 Ruby를 사용해 명령줄 인터페이스를 구축하는 방법을 단계별로 살펴봅니다.

시작하기 전에 컴퓨터에 Ruby가 설치되어 있어야 하고, Unix 명령어를 실행할 수 있는 터미널을 사용할 수 있어야 합니다. Linux나 macOS를 사용 중이라면 이미 유닉스 호환 터미널이 기본으로 내장되어 있으니 별도로 준비할 필요가 없습니다. 이 두 가지만 갖춰졌다면 바로 시작할 준비가 된 것입니다!

명령줄 인터페이스란 무엇일까요?

코딩을 배우기 시작하면 가장 먼저 접하게 되는 것이 바로 터미널입니다. 터미널 창에서는 명령줄 인터페이스(CLI)와 상호작용할 수 있으며, 텍스트 명령어를 입력해 프로그램을 실행하고 제어할 수 있습니다.

터미널 창을 사용하면 마우스나 그래픽 애플리케이션 없이도 컴퓨터에 지시를 내릴 수 있습니다. 덕분에 코딩할 때 명령어 작성에만 집중할 수 있고, 도구마다 새로운 사용자 인터페이스를 익힐 필요도 없어 시간을 크게 절약할 수 있습니다.

지금까지 사용해 온 CLI는 대부분 다른 개발자들이 만든 것일 겁니다. 예를 들어 Python CLI는 터미널에서 Python을 실행할 수 있게 해주고, Ruby CLI는 Ruby 애플리케이션을 같은 방식으로 실행할 수 있게 해줍니다. 다행히 여러분도 직접 만들 수 있습니다!

개발 환경 준비하기

먼저 터미널 창을 연 뒤, mkdir 명령어로 코드를 담을 폴더를 생성합니다.

mkdir ruby-cli

이 명령어를 실행하면 "ruby-cli"라는 이름의 폴더가 생성됩니다. 이제 cd 명령어로 해당 폴더에 진입해 CLI 작업을 시작하겠습니다.

cd ruby-cli

좋습니다! 이제 새로 만든 "ruby-cli" 폴더 안에 들어왔습니다. 기본 설정은 여기까지입니다. 다음 단계부터 본격적으로 명령줄 인터페이스를 작성해 보겠습니다.

첫 번째 CLI 프로그램 만들기

CLI에 추가할 첫 번째 기능은 터미널에 "This is an example CLI"라는 문구를 출력하는 것입니다. "home.rb"라는 새 파일을 만들고 코드를 작성하면 됩니다.

다음 명령어로 새 파일을 생성할 수 있습니다.

nano home.rb

그러면 nano 텍스트 편집기가 열리고, 여기에 프로그램 코드를 입력할 수 있습니다. 취향에 따라 vim이나 emacs 같은 다른 편집기를 사용해도 무방합니다.

nano 편집기에 다음 코드를 붙여 넣습니다.

#!/usr/bin/env ruby
puts "This is an example CLI"

Mac에서는 Control-X를 누른 뒤 Y, Enter를 차례로 눌러 저장합니다. 그러면 "ruby-cli" 폴더에 "home.rb" 파일이 생성됩니다.

코드의 첫 번째 줄(셔뱅 라인)은 컴퓨터가 Ruby 인터프리터로 이 코드를 실행하도록 지시합니다. 두 번째 줄은 콘솔에 "This is an example CLI"를 출력하라는 명령입니다.

이제 ruby 명령어로 파일을 실행해 보겠습니다.

ruby home.rb

실행 결과는 다음과 같습니다.

This is an example CLI

보다시피 아주 간단한 CLI가 완성되었습니다. "home.rb" 파일을 실행하면 콘솔에 해당 문구가 출력됩니다.

플래그로 사용자 입력 받기

지금까지 만든 CLI는 메시지를 출력하는 것밖에 하지 못합니다. 그렇다면 사용자 입력을 받으려면 어떻게 해야 할까요? 이럴 때 optparse 라이브러리를 사용하면 됩니다. 이 라이브러리를 활용하면 명령줄에서 전달된 옵션을 파싱해 프로그램 안에서 사용할 수 있습니다.

optparse를 선택한 이유는 두 가지입니다. 첫째, 각 명령어의 도움말 메뉴를 자동으로 생성해 줍니다. 둘째, Ruby에 기본으로 내장되어 있어 별도 설치가 필요 없습니다.

사용자의 이메일 주소를 입력받아 콘솔에 다시 출력하는 기능을 추가해 보겠습니다.

텍스트 편집기에서 "home.rb" 파일을 열고 내용을 다음 코드로 교체합니다.

#!/usr/bin/env ruby
require 'optparse'
options = {}
OptionParser.new do |op|
 op.on("-e", "--email", "Your email address") do |value|
 options[:name] = value
 end
end.parse!
puts 'Your email address is: ' + options[:name]

이 코드는 optparse 라이브러리로 명령어를 통해 전달된 데이터를 파싱합니다. 그런 다음 사용자가 지정한 값을 변수에 할당하고 콘솔에 출력합니다. 여기서는 "Your email address is:"라는 문구 뒤에 사용자가 입력한 이메일 주소가 함께 출력됩니다.

다음 명령어로 코드를 직접 테스트해 볼 수 있습니다.

ruby home.rb -e jack@jones.com

실행 결과:

Your email address is: jack@jones.com

optparse 라이브러리의 매력적인 점은 도움말 메뉴를 자동 생성한다는 것입니다. 다음 명령어로 확인할 수 있습니다.

ruby home.rb --help

실행 결과:

Usage: ruby [options]
 -e, --email Your email address

명령어 실행 시 -e 또는 --email 플래그 중 어느 것이든 사용할 수 있습니다.

Ruby로 명령줄 인터페이스(CLI) 만들기: 초보자를 위한 단계별 가이드

"커리어 카르마는 내게 가장 필요했던 순간에 찾아와 부트캠프 매칭을 빠르게 도와주었어요. 수료 후 두 달 만에 제 가치관과 인생 목표에 맞는 꿈의 직장을 찾았습니다!"
— 비너스, Rockbot 소프트웨어 엔지니어

프로그램에서 직접 사용자 입력 받기

앞선 예제에서는 플래그를 사용해 입력을 받았습니다. 하지만 여러 정보를 한꺼번에 받아야 할 때는 플래그 방식이 번거로울 수 있습니다.

Ruby로 CLI를 만드는 재미있는 점은, 어떤 Ruby 프로그램이든 CLI가 될 수 있다는 사실입니다. 즉, 새로운 규칙을 배우지 않아도 바로 시작할 수 있습니다.

사용자의 이름과 나이를 입력받고, 16세 이상인지 확인하는 애플리케이션을 만들어 보겠습니다.

먼저 다음 명령어로 nano 편집기를 실행합니다.

nano home.rb

새 파일에 다음 코드를 붙여 넣습니다.

puts "What is your name?"
name = gets
puts "What is your age?"
age = gets
if age.to_i >= 16
 puts "#{name}! You are 16 or older!"
else
 puts "#{name}! You are not over the age of 16!"
end

파일을 저장한 후 다음 명령어로 새 CLI를 실행할 수 있습니다.

ruby home.rb

실행 결과:

What is your name?
James
What is your age?
17
James! You are 16 or older!

"What is your age?" 질문에 "14"라고 입력하면 다음과 같이 출력됩니다.

James! You are not over the age of 16.

CLI에는 원하는 어떤 Ruby 코드든 자유롭게 작성할 수 있습니다. 유일한 한계는 상상력뿐입니다.

마무리

CLI는 터미널을 통해 프로그램과 상호작용할 수 있는 방식입니다. Atom이나 메모장 같은 텍스트 편집기를 열었을 때 보이는 그래픽 사용자 인터페이스(GUI)의 대안이라고 생각하면 됩니다.

이 가이드에서는 Ruby로 간단한 CLI를 만드는 과정을 살펴봤습니다. 이제 여러분도 Ruby 전문가처럼 자신만의 CLI를 만들어 볼 준비가 되었습니다!