# Ruby

> Proxyman Automatic Setup으로 Ruby 스크립트와 서버의 HTTP/HTTPS 트래픽을 캡처하세요. http, net/http, net/https, httparty, faraday와 함께 사용할 수 있습니다.

## 1. 새로운 자동 설정 방식 (v4.7.0 이상) ✅ {#1-new-automatic-solution-v470-or-later-}

Proxyman v4.7.0 이상에서는 클릭 한 번으로 Ruby의 HTTP/HTTPS 트래픽을 캡처할 수 있습니다.

* 클릭 한 번으로 설정: HTTP 프록시 설정을 직접 하거나 자체 서명 인증서를 수동으로 신뢰할 필요가 없습니다.
* 여러 Ruby 라이브러리를 지원합니다: http, net/http, net/https, httparty, faraday

### 사용 방법: {#how-to-use}

1. Proxyman -> Setup Menu -> Automatic Setup 순서로 엽니다.
2. "Open New Terminal"을 클릭합니다.
3. 필요한 경우 AppleScript 권한 요청을 허용합니다.
4. 새 Terminal 창이 열리면 그곳에서 Ruby 백엔드 서버를 시작하거나 스크립트를 실행합니다. => Proxyman이 모든 트래픽을 자동으로 캡처합니다.
5. 완료 ✅

![net/http 같은 Ruby 라이브러리를 캡처하는 Open New Terminal 버튼이 있는 Proxyman Automatic Setup 창](https://proxyman.com/docs/assets/proxyman-automatic-setup-window.jpg)

_Ruby 트래픽 캡처_

## 2. 이전 방식 (권장하지 않음) {#2-old-solution-not-recommended}

### 1. Ruby에 HTTP 프록시 설정 {#1-set-http-proxy-to-ruby}

Net::HTTP는 `http_proxy` 환경 변수가 있으면 해당 프록시를 자동으로 사용합니다. 

따라서 다음과 같이 사용할 수 있습니다:

```bash
ENV['http_proxy'] = 'http://127.0.0.1:9090' # your http://address:port here
```

그러면 Net::HTTP는 기본적으로 모든 요청에 이 프록시를 사용합니다.

참고: [https://stackoverflow.com/questions/15792999/how-to-set-a-proxy-in-rubys-net-http](https://stackoverflow.com/questions/15792999/how-to-set-a-proxy-in-rubys-net-http)

### 2. Ruby에 Proxyman 인증서 설치 {#2-install-proxyman-certificate-on-ruby}

macOS의 **Ruby**는 기본적으로 Proxyman의 자체 서명 인증서를 신뢰하지 않을 수 있습니다. 그래서 HTTPS 트래픽을 가로챌 때 SSL 오류가 발생할 수 있습니다.

`SSL_CERT_FILE` 환경 변수로 Ruby가 Proxyman 인증서를 사용하도록 지정할 수 있습니다.

```bash
$ env SSL_CERT_FILE=~/.proxyman/proxyman-ca.pem ruby my_script.rb
```

> **노트:** 최신 Proxyman 버전은 인증서를 `~/Library/Application Support/com.proxyman.NSProxy/app-data/proxyman-ca.pem`에 저장합니다. Mac에 `~/.proxyman/proxyman-ca.pem` 파일이 없다면 이 경로를 사용하거나, Certificate 메뉴 -> Export -> Root Certificate as PEM에서 인증서를 내보내세요.

## 더 알아보기 {#learn-more}

* [Ruby(net::http 또는 http gem) 스크립트의 HTTP/HTTPS 요청 캡처하기](https://proxyman.com/posts/2023-05-09-Capture-HTTP-HTTPS-Request-Response-From-Ruby-Net-HTTP-library)
* [Proxyman으로 Ruby의 HTTP/HTTPS 트래픽 캡처하기](https://proxyman.com/ruby) (Proxyman 웹사이트)
