# 데이터센터 프록시 코드 예제: curl, Python, Node.js 및 Playwright

> curl, Python requests 및 aiohttp, Node.js undici 및 Playwright, HTTP 및 SOCKS5를 위한 프록시 코드 예제입니다. RackProxies: IP당 US$1.29부터, KYC 없이, 암호화폐.

- URL: https://rackproxies.com/ko/docs/code-examples/
- 마지막 업데이트: 2026-10-19
- Publisher: RackProxies (https://rackproxies.com)

가장 많이 쓰이는 클라이언트를 위한 복사 가능한 스니펫으로, 각각 구문이 검증되었습니다. 모든 예제는 api.ipify.org, httpbin.org/ip 또는 example.com을 대상으로 합니다.

**빠른 답변 — 코드에서 데이터센터 프록시를 어떻게 사용하나요?**

이 프록시 코드 예제들은 하나의 `http://USERNAME:PASSWORD@IP:PORT` URL을 클라이언트에 전달합니다: curl에서는 `-x`, Python requests에서는 `proxies=`, Node.js에서는 `ProxyAgent`, Playwright에서는 `proxy` 옵션입니다. SOCKS5는 `socks5h://`을 사용합니다. **RackProxies** IP는 HTTP, HTTPS (CONNECT) 및 SOCKS5을 지원하며, 30일 동안 전용 IPv4당 US$1.29부터입니다. KYC 없이, 암호화폐만.

## 어떤 스니펫이 필요한가요?

*모든 스니펫의 문서 주소 203.0.113.24 및 포트 8000: 계정의 라인으로 교체하세요.*

| 클라이언트 | HTTP 프록시 | SOCKS5 프록시 | 추가 패키지 |
| --- | --- | --- | --- |
| curl | `-x http://…` | `-x socks5h://…` | 없음 |
| Python requests | `proxies={…}` | `socks5h://` URL | SOCKS5용 `requests[socks]` |
| Python aiohttp | `proxy=` 및 `proxy_auth=` | 기본 내장 아님 | SOCKS5용 `aiohttp-socks` |
| Node.js fetch | undici `ProxyAgent` | 기본 내장 아님 | `undici` |
| Node.js https | `https-proxy-agent` | `socks-proxy-agent` | 둘 중 하나 |
| Playwright | `proxy: { server, username, password }` | HTTP 사용 또는 허용 목록 사용 | `playwright` |

## curl로 프록시를 어떻게 사용하나요?

`-x`로 프록시 URL을 전달하세요. curl은 `https://` 대상에 대한 CONNECT 터널을 자체적으로 처리합니다. 이 페이지의 모든 스니펫은 문서 주소 `203.0.113.24`을 사용하며, [연결 형식](https://rackproxies.com/ko/docs/connection-format/) 페이지에서 라인으로 URL을 구성하는 방법을 확인할 수 있습니다.

*curl: HTTP, SOCKS5, 별도 로그인, 허용 목록*

```bash
# HTTP proxy, HTTPS target (CONNECT tunnel)
curl -x http://USERNAME:PASSWORD@203.0.113.24:8000 https://api.ipify.org

# SOCKS5, hostname resolved by the proxy
curl -x socks5h://USERNAME:PASSWORD@203.0.113.24:8000 https://api.ipify.org

# Login passed separately (no URL-encoding needed)
curl -x http://203.0.113.24:8000 -U 'USERNAME:PASSWORD' https://httpbin.org/ip

# IP allowlist: no login
curl -x http://203.0.113.24:8000 https://api.ipify.org

# Show the proxy handshake and the timings
curl -v -s -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' \
  -x http://USERNAME:PASSWORD@203.0.113.24:8000 https://example.com
```

## Python requests로 프록시를 어떻게 사용하나요?

requests에 `http`과 `https`에 동일한 URL을 담은 `proxies` 사전을 전달하세요. `https` 키는 `https://` 대상에 사용되는 키이며, 그 값은 프록시 연결을 설명하므로 여전히 `http://`로 시작합니다. 프록시가 연결이나 로그인을 거부하면 requests는 `ProxyError`을 발생시킵니다.

*HTTP 프록시를 통한 requests, 오류 처리 포함*

```python
import requests  # pip install requests

# From the line 203.0.113.24:8000:USERNAME:PASSWORD in your account
proxy = 'http://USERNAME:PASSWORD@203.0.113.24:8000'
proxies = {'http': proxy, 'https': proxy}

try:
    response = requests.get('https://api.ipify.org', proxies=proxies, timeout=20)
    response.raise_for_status()
    print('Exit IP:', response.text)
except requests.exceptions.ProxyError as error:
    print('Proxy problem (credentials, port or allowlist):', error)
except requests.exceptions.Timeout:
    print('No answer within 20 seconds')
```

*SOCKS5로 requests 사용하기 (pip install "requests[socks]")*

```python
import requests  # pip install "requests[socks]"

# socks5h: the proxy resolves the hostname. Use the SOCKS5 port shown in your account.
proxy = 'socks5h://USERNAME:PASSWORD@203.0.113.24:8000'
proxies = {'http': proxy, 'https': proxy}

response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=20)
print(response.json())  # {'origin': '203.0.113.24'}
```

*하나의 IP로 여러 요청을 처리하는 Session*

```python
import requests

# A Session reuses connections: faster for many requests through the same IP.
session = requests.Session()
session.proxies.update({
    'http': 'http://USERNAME:PASSWORD@203.0.113.24:8000',
    'https': 'http://USERNAME:PASSWORD@203.0.113.24:8000',
})
session.headers['User-Agent'] = 'my-monitor/1.0 (contact: you@example.com)'

for url in ['https://example.com', 'https://httpbin.org/ip']:
    response = session.get(url, timeout=20)
    print(url, response.status_code, len(response.content), 'bytes')
```

Session 예제처럼 도구 이름과 연락처를 담은 `User-Agent`을 설정하세요. 그러면 사이트 소유자가 차단 대신 연락할 수 있습니다. requests는 `proxies` 인자가 없을 때 `HTTP_PROXY` 및 `HTTPS_PROXY` 환경 변수도 읽습니다.

## Python aiohttp에서 프록시는 어떻게 사용하나요?

aiohttp는 요청마다 프록시를 받습니다: 주소에는 `proxy=`, 로그인에는 `proxy_auth=`을 사용합니다. `https://` 대상에 대한 CONNECT를 포함한 HTTP 프록시를 지원합니다. SOCKS5의 경우 별도의 `aiohttp-socks` 패키지가 필요합니다.

*HTTP 프록시를 통한 aiohttp*

```python
import asyncio

import aiohttp  # pip install aiohttp (HTTP proxies; SOCKS needs the aiohttp-socks package)

PROXY = 'http://203.0.113.24:8000'
AUTH = aiohttp.BasicAuth('USERNAME', 'PASSWORD')


async def main():
    timeout = aiohttp.ClientTimeout(total=20)
    async with aiohttp.ClientSession(timeout=timeout) as session:
        async with session.get('https://httpbin.org/ip', proxy=PROXY, proxy_auth=AUTH) as response:
            print(await response.json())


asyncio.run(main())
```

## Node.js에서 프록시는 어떻게 사용하나요?

Node 내장 `fetch`은 프록시 인자를 받지 않으므로 `undici` 패키지와 그 `ProxyAgent`을 `dispatcher`으로 사용하세요. 클래식 `https` 모듈의 경우 HTTP 프록시에는 `https-proxy-agent`, SOCKS5에는 `socks-proxy-agent`을 사용합니다. 두 스니펫 모두 ES 모듈이므로 `.mjs` 파일로 저장하세요.

*undici ProxyAgent로 fetch 사용하기*

```javascript
// npm install undici
import { ProxyAgent, fetch } from 'undici';

const dispatcher = new ProxyAgent({
  uri: 'http://203.0.113.24:8000',
  token: `Basic ${Buffer.from('USERNAME:PASSWORD').toString('base64')}`,
});

const response = await fetch('https://api.ipify.org', { dispatcher });
console.log('Exit IP:', await response.text());
```

*https-proxy-agent와 socks-proxy-agent로 https 사용하기*

```javascript
// npm install https-proxy-agent socks-proxy-agent
import https from 'node:https';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { SocksProxyAgent } from 'socks-proxy-agent';

const httpAgent = new HttpsProxyAgent('http://USERNAME:PASSWORD@203.0.113.24:8000');
// Use the SOCKS5 port shown in your account; socks5h lets the proxy resolve DNS.
const socksAgent = new SocksProxyAgent('socks5h://USERNAME:PASSWORD@203.0.113.24:8000');

for (const agent of [httpAgent, socksAgent]) {
  https.get('https://api.ipify.org', { agent }, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => console.log('Exit IP:', chunk));
  }).on('error', (err) => console.error('Proxy error:', err.message));
}
```

## Playwright에서 프록시는 어떻게 사용하나요?

server와 별도로 username 및 password를 담은 `proxy` 객체를 `chromium.launch()`에 전달하세요. HTTP 형식을 사용하세요: Chromium의 내장 SOCKS5 클라이언트는 지금까지 SOCKS5 프록시에 대한 username 및 password 인증을 지원하지 않았습니다. IP 허용 목록을 사용할 경우 `username`와 `password`은 생략하세요.

*HTTP 프록시를 통한 Playwright (Chromium)*

```javascript
// npm install playwright && npx playwright install chromium
import { chromium } from 'playwright';

const browser = await chromium.launch({
  proxy: { server: 'http://203.0.113.24:8000', username: 'USERNAME', password: 'PASSWORD' },
});
const page = await browser.newPage();
await page.goto('https://api.ipify.org');
console.log('Exit IP:', await page.textContent('body'));
await browser.close();
```

자체 사이트의 QA, 광고 및 현지화 확인, 기타 유사한 합법적 작업을 위해 프록시를 통해 브라우저를 사용하세요. 프록시는 IP만 변경한다는 점을 기억하세요: 브라우저 컨텍스트에서 설정하지 않는 한 브라우저의 언어와 시간대는 사용자 컴퓨터의 것으로 유지됩니다.

## 프록시를 통한 지연 시간은 어떻게 측정하나요?

완전한 요청 몇 개의 시간을 측정하고 중앙값을 사용하세요. 아래 Python 스니펫은 하나의 IP를 통해 `https://example.com`에 다섯 개의 요청을 보냅니다. 서로 다른 데이터센터 도시의 IP로 실행하여 비교하세요. [도시 가이드](https://rackproxies.com/ko/guides/choose-a-datacenter-city/)에서 각 거리에 대한 물리적 하한을 설명합니다.

*프록시를 통한 중앙값 요청 시간*

```python
import statistics
import time

import requests

proxy = 'http://USERNAME:PASSWORD@203.0.113.24:8000'
timings = []
for _ in range(5):
    start = time.perf_counter()
    requests.get('https://example.com', proxies={'http': proxy, 'https': proxy}, timeout=20)
    timings.append((time.perf_counter() - start) * 1000)

print(f'median {statistics.median(timings):.0f} ms over {len(timings)} requests')
```

## IP 목록 전체는 어떻게 사용하나요?

TXT 내보내기를 로드하고, 각 줄을 URL로 변환하고, 요청마다 IP를 선택하세요: 사이트 간에는 라운드 로빈, 동일 사이트에는 동일 IP를 사용합니다. [로테이팅 vs 스태틱 가이드](https://rackproxies.com/ko/guides/rotating-vs-static-datacenter-proxies/)에 완전한 예제가 있고, [연결 형식](https://rackproxies.com/ko/docs/connection-format/) 페이지에 전체 목록용 변환기가 있습니다. 목록 크기와 관계없이 각 사이트의 속도를 준수하세요: IP가 많다고 해서 사이트의 한도가 높아지지는 않습니다.

## 코드 예제 관련 질문

### 사이트가 https://인데 왜 프록시에는 http://를 사용하나요?

프록시 URL의 스킴은 웹사이트가 아닌 프록시와의 연결을 설명합니다. 클라이언트는 일반 TCP로 프록시에 연결하여 CONNECT 터널을 열도록 요청한 후 그 안에서 웹사이트와 TLS를 실행합니다. 페이지 내용은 종단 간 암호화된 상태로 유지되며, 프록시 로그인만 읽을 수 있는 형태로 전송됩니다.

### 비밀번호에 특수 문자가 있습니다. 무엇이 달라지나요?

URL 형식에서는 Python의 `urllib.parse.quote(password, safe='')` 또는 JavaScript의 `encodeURIComponent(password)`로 비밀번호를 인코딩하세요. aiohttp의 `BasicAuth`, Playwright의 `username` 및 `password`, curl의 `-U`처럼 로그인을 별도로 받는 클라이언트는 인코딩이 필요 없습니다. [연결 형식](https://rackproxies.com/ko/docs/connection-format/) 페이지에 문자 목록이 있습니다.

### requests에서 SOCKS 지원에 필요한 종속성이 없다고 하는 이유는 무엇인가요?

requests의 SOCKS 지원은 선택적 추가 기능에 있습니다. PySocks를 추가하는 `pip install "requests[socks]"`으로 설치하고, 프록시가 호스트 이름을 확인하도록 `socks5h://` URL을 사용하세요. HTTP 프록시는 추가 패키지 없이 작동하므로 URL을 `http://`로 전환하고 종속성을 변경하지 않고 유지할 수도 있습니다.

### 하나의 IP로 여러 요청을 병렬로 실행할 수 있나요?

네, 공정 사용 범위 내에서 가능합니다. IP당 연결 제한은 공개하지 않습니다. 자체 안정성을 위해 병렬성을 합리적으로 유지하고 각 웹사이트의 속도를 준수하세요: 동일 사이트에 대한 병렬 요청도 해당 사이트의 한도에 포함됩니다. 공정 사용 정책에 따라 GB당이 아닌 IP당 30일 단위로 청구됩니다.

### 내 코드가 가장 먼저 호출해야 할 테스트 URL은 무엇인가요?

`https://api.ipify.org` 또는 `https://httpbin.org/ip`을 호출하세요. 각각 인식하는 IP를 반환하므로 트래픽이 프록시에서 나가는지 확인할 수 있습니다. 그런 다음 실제 대상를 호출하세요. 테스트 URL은 작동하지만 대상이 작동하지 않으면 문제는 코드가 아니라 프록시와 대상 사이에 있습니다.

### 이 예제용 프록시를 받으려면 신분증이 필요한가요?

아니요. KYC 없이: 가입, 충전, 구매 시 신분증, 셀피, 서명 서류가 필요하지 않습니다. BTC, USDT, USDC, ETH, SOL, LTC에서 충전하고, US$1.29에서 플랜을 구매하고, 계정의 줄을 스니펫에 복사하세요. 모든 플랜 크기는 [요금제](https://rackproxies.com/ko/pricing/)를 참조하세요.

**자체 IP로 예제 실행하기** US$1.29용 1 IP, HTTP 및 SOCKS5 포함. KYC 없이, 암호화폐로 결제. [요금 보기](https://rackproxies.com/ko/pricing/) · [빠른 시작](https://rackproxies.com/ko/docs/quickstart/)

## 참고 자료

1. [curl man 페이지](https://curl.se/docs/manpage.html) — curl project (2026-10-19)
2. [Requests: 프록시 및 SOCKS](https://requests.readthedocs.io/en/latest/user/advanced/) — Requests (2026-10-19)
3. [aiohttp: 프록시 지원](https://docs.aiohttp.org/en/stable/client_advanced.html) — aiohttp (2026-10-19)
4. [undici: ProxyAgent](https://undici.nodejs.org/) — Node.js (2026-10-19)
5. [proxy-agents (https-proxy-agent, socks-proxy-agent)](https://github.com/TooTallNate/proxy-agents) — GitHub (2026-10-19)
6. [Playwright: HTTP 프록시](https://playwright.dev/docs/network) — Playwright (2026-10-19)

---

RackProxies: RackProxies는 전용 데이터센터 프록시 제공업체입니다: IPv4 주소를 IP당 30일 단위로 대여하며, 신분증 업로드 없이 암호화폐로 결제합니다. 페이지에서는 공개 네트워크 데이터를 바탕으로 22개국과 34개 데이터센터 도시를 다룹니다.
