# CLI 도구를 조합하여 나만의 요술봉 만들기 (feat. Ruby)

> Clean Markdown view of GeekNews topic #20200. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20200](https://news.hada.io/topic?id=20200)
- GeekNews Markdown: [https://news.hada.io/topic/20200.md](https://news.hada.io/topic/20200.md)
- Type: news
- Author: [kodingwarrior](https://news.hada.io/@kodingwarrior)
- Published: 2025-04-08T09:07:10+09:00
- Updated: 2025-04-08T09:07:10+09:00
- Original source: [hackers.pub](https://hackers.pub/@kodingwarrior/2025/cli-workflow-hacks-using-bash-and-ruby)
- Points: 5
- Comments: 0

## Summary

이 글은 Bash 스크립트에 Ruby를 결합하여 CLI 도구 자동화를 이루는 방법을 소개하며, Ruby의 가독성과 유연성을 강조합니다. Ruby는 다양한 데이터 포맷을 쉽게 처리할 수 있는 내장 라이브러리를 제공하며, AWS CLI, Git, GitHub CLI 등과 결합하여 강력한 자동화 워크플로우를 구축할 수 있습니다. 또한, Ruby의 정규표현식과 텍스트 처리 기능을 활용하여 정형화되지 않은 데이터를 효율적으로 처리할 수 있습니다.

## Topic Body

- **글의 개요**  
  - Bash 스크립트에 Ruby를 결합해 CLI 도구 자동화를 이루는 다양한 트릭을 소개함.  
  - 다른 스크립팅 언어도 가능하지만, Ruby의 가독성과 유연성을 강조.  
  
- **왜 Bash 대신 Ruby인가?**  
  - Ruby는 명확한 자료형(정수, 부동소수점, 문자열, 배열, 해시 등)을 제공해 코드 가독성을 높임.  
  - macOS 사용자에게는 homebrew가 설치되어 있다면 기본으로 딸려오는 Ruby 덕분에 활용도가 높음.  
  - CocoaPod, Fastlane 등 빌드/자동화 스크립트에서 Ruby가 유용하게 활용됨.  
  - JSON, CSV, YAML 등 다양한 데이터 포맷을 내장 라이브러리로 손쉽게 다룰 수 있음.  
  
- **Ruby One-Liner 스크립트 작성하기**  
  - 한 줄짜리 스크립트는 `ruby -e "&lt;expression&gt;"` 형식으로 실행 가능함.  
  - 파이프와 리다이렉션을 이용해 다른 CLI 도구의 결과를 받아 처리할 수 있음.  
  - `-r` 옵션으로 필요한 라이브러리를 미리 로드해 기능 확장을 지원함.  
  
- **다른 CLI 도구와 결합해서 사용해보기**  
  - AWS CLI, Git, GitHub CLI, jq, curl 등과 Ruby를 결합하면 단일 기능의 강점을 극대화할 수 있음.  
  - **JSON 데이터 처리 예시:**  
    - `curl`로 API 호출 후 Ruby의 JSON 라이브러리로 데이터를 파싱하고 특정 필드(예: title) 출력.  
  - **YAML 데이터 처리 예시:**  
    - `cat config.yaml`으로 파일 읽은 후, Ruby의 YAML 라이브러리로 파싱해 특정 설정 값을 추출.  
  - CLI 도구의 결과를 Ruby로 추가 가공해 보다 유연한 자동화 워크플로우를 구축 가능.  
  
- **정형화되지 않은 데이터 처리 (Git Log 예시)**  
  - 모든 데이터가 JSON/CSV/YAML처럼 정형화되어 있지 않을 수 있음.  
  - Ruby의 정규표현식과 텍스트 처리 기능으로 로그, 시스템 메시지 등을 한 줄씩 읽어 필요한 정보를 추출할 수 있음.  
  - **Git Log 스크립트 예시:**  
    - `git log --oneline #{file}`으로 한 줄짜리 커밋 로그 추출.  
    - `gum choose --limit 100`으로 원하는 로그를 인터랙티브하게 선택.  
    - 각 선택된 로그에서 커밋 해시를 추출해 `git show`로 상세 변경 내역 출력.  
    - 최종적으로 선택된 로그를 체크리스트 형태로 재구성하여 출력.  
  
- **마치며**  
  - CLI 도구와 Ruby 스크립트를 결합하면 간단한 커맨드 조합으로 강력한 자동화 도구를 만들 수 있음.  
  - 복잡한 데이터 처리, 로그 분석, 버전 관리 작업을 효율적으로 자동화해 생산성을 극대화할 수 있음.  
  - 작은 시작이 큰 변화를 불러오며, 여러분도 자신만의 사이드 프로젝트를 시작해보길 권장함.  
  - 참고로 Perl도 유용하며, Perl One-Liners Guide와 같은 자료가 도움이 될 수 있음.

## Comments



_No public comments on this page._
