Ruby를 사용하여 모든 것을 자동화 할 수 있습니까?


11

매일 운영되는 다양한 플랫폼 (Windows, Linux 등)에서 다양한 유형의 응용 프로그램 (웹 기반, GUI 기반, 명령 줄 등)에 직면하고 있습니다. 스크립팅을 통해 작업을 자동화 할 수있는 좋은 기회가 있습니다. 그러나 거의 모든 유형의 응용 프로그램 및 플랫폼에는 기본 스크립팅 언어 또는 도구 (예 : VBScriptWindowsPowerShell , Linux 용 Bash 스크립트, 웹 응용 프로그램 용 Selenium 및 GUI 응용 프로그램 용 AutoIt 등)가 있습니다. 너무 많은 스크립팅 언어를 배우고 유지 관리해야합니다.

Ruby가 다양한 플랫폼과 쉽게 상호 작용할 수 있다는 느낌이 들며 매우 표현력이 좋습니다. 그래서 내 질문은 :

  1. 루비를 사용하여 모든 것을 스크립팅 할 수 있습니까?

  2. 그렇다면 각 플랫폼 의 기본 스크립팅 언어 와 비교하여 주요 단점은 무엇 입니까?

답변:


6

루비는 Linux, OS X 등에서 범용 스크립팅 언어를위한 훌륭한 선택입니다.하지만 최근에는 2000 년부터 7 년까지 모든 Windows 버전에서 작동하는 일부 스크립트를 작성해야했습니다. VBScript에는 필요한 기능이 없었습니다 ( 예를 들어 SOAP 웹 서비스와 대화하고 Windows 2000에서는 PowerShell을 사용할 수 없으므로 Microsoft 툴킷 외부를 살펴본 후 Ruby를 사용하기로 결정했습니다 (이전에는 Linux에서 사용 했음). 결정을 후회하지는 않지만 더 나은 선택이 있었는지 궁금합니다. Windows의 Ruby에 대한 주요 불만 사항은 다음과 같습니다.

  • c : \ windows \ system32와 같은 시스템의 가상화 된 영역에 액세스하려고 시도한 64 비트 Ruby for Windows (아는 한)는 없습니다. 나는 그 것들 중 일부를 위해 VBScript로 포격했습니다. 어쩌면 내가 알지 못하는 더 좋은 방법이있을 수 있습니다.
  • 느리다. 쿼드 코어 CPU와 6GB RAM이 있고 irb를로드하는 데 2 ​​초 이상 걸립니다.
  • 레지스트리 액세스 및 WMI와 같은 항목을위한 Windows 전용 라이브러리가 있지만, 생각보다 쉬운 것은 아니며 문서의 상대적 부족으로 인해 시행 착오가 발생합니다.

여전히 상황은 기본적으로 예상대로 작동하며 OS에 내장 된 것보다 약 1000 배 정도 Ruby를 사용하는 것을 좋아하므로 최소한 Windows의 범용 스크립팅을 위해 Ruby보다 더 나쁠 수 있다고 말하고 싶습니다. .


2

Ruby는 플랫폼 (Windows, Linux, MAC) 간의 이식성과 다른 종류의 응용 프로그램 자동화 기능과 관련하여 요구 사항에 맞는 것 같습니다. AFAIK 루비 라이브러리를 사용하여 브라우저와 명령 줄 앱을 자동화 할 수는 있지만 GUI 기반 도구는 확실하지 않습니다 (.NET과 같은 일부 플랫폼에는 루비 바인딩이 있어이 점에서 도움이 될 수 있습니다).

루비에는 많은 라이브러리가 있으므로 스크립팅에 적합한 많은 작업을 자동화 할 수 있어야합니다. 예를 들어, 다른 텍스트 형식으로 파일을 조작하고 네트워크, 데이터베이스 등에 액세스 할 수 있습니다. 그러나 비디오 인코딩과 같은 네이티브 루비에서 일부 작업을 수행하는 것이 가장 좋지 않을 수 있습니다. 그러나 루비를 사용하여 다른 도구를 호출하면 항상 그렇게 할 수 있습니다.

BATCH 및 Shell 스크립트와 비교하는 경우 루비를 사용하여 이러한 스크립트가 수행 할 수있는 거의 모든 작업을 수행 할 수 있습니다. 단점은 다음과 같습니다.

  • 추가 설치가 필요할 수 있습니다.
  • 다른 사람들은 스크립트를 유지하기 위해 루비를 배워야 할 수도 있습니다.
  • 도구가 다른 스크립팅 언어와 바인딩 된 경우 루비는 성능이나 기능에 액세스 할 수있는 기능과 일치하지 않을 수 있습니다. 예를 들어, Ruby를 통해 자동화 할 때 브라우저 내부에서 JavaScript를 통해 수행 할 수있는 모든 작업을 수행하지 못할 수 있습니다.

Rukuli는 GUI를 테스트 도전에 직면 일부 커버 할 수있다
ljs.dev

0

위의 모든 답변에 동의하지만 Windows와 POSIX에는 플랫폼 별 차이점이 있으므로 플랫폼 별 내용을 사용하는 경우 스크립트를 재사용 할 수 있다고 보장 할 수 없습니다.

루비는 일반적인 스크립팅에는 적합하지만 성능에는 좋지 않습니다. 어쨌든 스크립트 내부의 플랫폼을 식별하고 외부 명령과 스크립트를 실행할 수 있습니다.


1
같은 수의 투표에 대한 답변이 임의의 순서로 배치되므로 StackExchange 사이트에 대한 답변의 위치를 ​​신뢰할 수 없습니다. 당신은 "나는 모든 대답에 동의 같은 것들 말을 안 그래서 "
아담 하트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.