## **Ruby CLI(Command Line Interface) 툴 예제** Ruby로 간단한 **CLI(Command Line Interface) 툴**을 만들어보자. 이 예제에서는 사용자가 입력한 도시의 **현재 날씨를 출력하는 CLI 프로그램**을 작성한다. --- ### **1. 사전 준비** 이 프로젝트에서는 `httparty` 라이브러리를 사용하여 **API 요청**을 보낼 것이다. 먼저 라이브러리를 설치하자. ```sh gem install httparty ``` 그리고 **무료 날씨 API**인 [OpenWeatherMap](https://openweathermap.org/)에서 API 키를 발급받아야 한다. --- ### **2. CLI 툴 코드** `weather_cli.rb` 파일을 생성하고 다음 코드를 작성한다. ```ruby #!/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. 코드 설명** 1. **라이브러리 로드** - `httparty` : API 요청을 보낼 때 사용 - `json` : JSON 응답을 파싱 2. **날씨 정보 가져오기 (`fetch_weather` 메서드)** - `HTTParty.get(url)`을 사용하여 OpenWeatherMap API에 요청을 보낸다. - 응답이 정상(`code == 200`)이면 JSON 데이터를 파싱하고 온도 및 날씨 정보를 출력한다. - 오류가 발생하면 메시지를 출력한다. 3. **사용자 입력 처리 (`ARGV`)** - 사용자가 도시명을 입력하면 `ARGV.join(" ")`으로 받아서 API 요청을 보낸다. - 입력이 없으면 사용법을 출력한다. --- ### **4. 실행 방법** 터미널에서 실행 권한을 부여하고 실행하면 된다. ```sh chmod +x weather_cli.rb ./weather_cli.rb Seoul ``` **출력 예시:** ```sh 🌤️ Seoul의 현재 기온: 15°C (clear sky) ``` --- ### **5. 확장 가능성** 이 CLI 툴은 간단하지만 다음과 같은 기능을 추가하여 확장할 수 있다. ✅ **다른 API 연동** (예: 뉴스, 주가, 환율 정보) ✅ **파일 입력/출력 지원** (예: 여러 도시의 날씨를 한 번에 조회) ✅ **사용자 옵션 추가** (`--unit metric` 같은 옵션 지원) 이제 Ruby로 CLI 프로그램을 쉽게 만들 수 있다!