2.8 KiB
2.8 KiB
Ruby CLI(Command Line Interface) 툴 예제
Ruby로 간단한 CLI(Command Line Interface) 툴을 만들어보자. 이 예제에서는 사용자가 입력한 도시의 현재 날씨를 출력하는 CLI 프로그램을 작성한다.
1. 사전 준비
이 프로젝트에서는 httparty 라이브러리를 사용하여 API 요청을 보낼 것이다. 먼저 라이브러리를 설치하자.
gem install httparty
그리고 무료 날씨 API인 OpenWeatherMap에서 API 키를 발급받아야 한다.
2. CLI 툴 코드
weather_cli.rb 파일을 생성하고 다음 코드를 작성한다.
#!/usr/bin/env ruby
require 'httparty'
require 'json'
API_KEY = "YOUR_OPENWEATHERMAP_API_KEY" # 여기에 API 키 입력
BASE_URL = "https://api.openweathermap.org/data/2.5/weather"
def fetch_weather(city)
url = "#{BASE_URL}?q=#{city}&appid=#{API_KEY}&units=metric"
response = HTTParty.get(url)
if response.code == 200
data = JSON.parse(response.body)
temperature = data["main"]["temp"]
description = data["weather"].first["description"]
puts "🌤️ #{city}의 현재 기온: #{temperature}°C (#{description})"
else
puts "⚠️ 도시 정보를 가져오지 못했습니다. 도시 이름을 확인하세요!"
end
end
if ARGV.empty?
puts "사용법: ruby weather_cli.rb <도시명>"
else
city = ARGV.join(" ")
fetch_weather(city)
end
3. 코드 설명
-
라이브러리 로드
httparty: API 요청을 보낼 때 사용json: JSON 응답을 파싱
-
날씨 정보 가져오기 (
fetch_weather메서드)HTTParty.get(url)을 사용하여 OpenWeatherMap API에 요청을 보낸다.- 응답이 정상(
code == 200)이면 JSON 데이터를 파싱하고 온도 및 날씨 정보를 출력한다. - 오류가 발생하면 메시지를 출력한다.
-
사용자 입력 처리 (
ARGV)- 사용자가 도시명을 입력하면
ARGV.join(" ")으로 받아서 API 요청을 보낸다. - 입력이 없으면 사용법을 출력한다.
- 사용자가 도시명을 입력하면
4. 실행 방법
터미널에서 실행 권한을 부여하고 실행하면 된다.
chmod +x weather_cli.rb
./weather_cli.rb Seoul
출력 예시:
🌤️ Seoul의 현재 기온: 15°C (clear sky)
5. 확장 가능성
이 CLI 툴은 간단하지만 다음과 같은 기능을 추가하여 확장할 수 있다.
✅ 다른 API 연동 (예: 뉴스, 주가, 환율 정보)
✅ 파일 입력/출력 지원 (예: 여러 도시의 날씨를 한 번에 조회)
✅ 사용자 옵션 추가 (--unit metric 같은 옵션 지원)
이제 Ruby로 CLI 프로그램을 쉽게 만들 수 있다!