프록시와 함께 pip 사용 방법

제한 우회, 보안 강화, 패키지 관리 효율화를 위해 pip로 프록시를 설정하세요.
3 분 읽기
How to Use Pip with Proxies blog image

이 글에서는 제한된 네트워크에서 원활한 패키지 관리를 위해 pip와 함께 프록시를 구성하고 사용하는 방법을 배웁니다.

공개 프록시와 사설 프록시의 차이점

프록시를 선택할 때 공개 프록시와 비공개 프록시 중 어떤 것을 사용할지 결정하는 것은 중요한 고려 사항입니다.

공개 프록시

공개 프록시는 누구나 사용할 수 있으며 인증 절차가 없는 경우가 많습니다. IP 주소에 빠르게 접근할 수 있지만 속도 저하, 불안정한 연결, IP 차단 가능성 등의 단점이 있습니다. 무료이고 널리 이용 가능하기 때문에 프록시 로테이션, 캐싱, 접근 제어 같은 필수 기능이 부족해 실제 운영 환경에서는 신뢰성이 떨어집니다.

공개 URL은 다음과 같은 형식일 수 있습니다: https://proxyserver:port.

프라이빗 프록시

프라이빗 프록시는 인증을 요구하며, 일반적으로 비용이 발생하지만 더 높은 보안성, 안정성 및 고급 기능을 제공합니다. 전용 IP 주소에 대한 안전하고 빠르며 안정적인 연결을 제공하며, 프록시 인증 및 회전과 같은 기능을 포함합니다.

접근은 일반적으로 인증을 통해 제어되며, 대개 다음과 같이 프록시 URL 앞에 사용자 이름과 암호를 접두사로 포함합니다: https://username:password@proxyserver:port.

pip에서 프록시 사용하기

pip에서 프록시를 사용하려면 프록시에 대한 세부 정보를 수집해야 합니다. 다음 예시는 다음과 같은 세부 정보를 가진 공개 프록시를 사용합니다:

  • 프록시 서비스의 프록시 주소
  • 통신에 필요한 프록시 서비스 포트

다음 proxy-list 저장소는 매일 테스트된 공개 프록시 주소를 제공하며, 테스트에는 유용할 수 있지만 실제 운영 환경에서는 사용해서는 안 됩니다.

proxy-list 저장소 내에서 proxy-list-status.txt 파일을 확인하여 작동하는 공개 프록시를 찾으세요. 파일에서 성공 플래그가 표시된 주소를 찾으면 해당 프록시가 작동 중임을 의미합니다:

Selecting a public proxy

이 튜토리얼에서는 45.185.162.203:999를 공개 프록시 주소로 사용하십시오. 이는 프록시 서버 주소가 http://45.185.162.203:999임을 의미합니다.

명령줄을 통한 pip 프록시 설정

pip 프록시를 설정하는 가장 빠른 방법은 --proxy 명령줄 옵션을 사용하여 pip install 명령을 호출할 때 주소를 전달하는 것입니다.

공개 프록시 주소를 사용하여 다음 명령어로 프록시 및 패키지 접근을 테스트하세요:

# 공개 프록시
pip install boto3 --proxy http://45.185.162.203:999

이 방법은 새 프록시를 영구적으로 구성하기 전에 프록시를 빠르게 테스트하고 검증하는 데 유용합니다. pip 패키지를 게시하는 경우 다른 IP에서 사용 가능 여부를 확인하는 데 도움이 됩니다.

pip 구성 파일을 사용한 pip 프록시 설정

pip 프록시를 영구적으로 설정하려면 pip 구성 파일을 사용하면 쉽고 선언적인 해결책이 됩니다. 위치는 운영 체제에 따라 다르며 다음 디렉터리에서 찾을 수 있습니다:

  • 전역: 시스템 전체 구성 파일로, 사용자 간 공유됩니다.
  • 사용자: pip 프로세스를 실행하는 사용자별 구성 파일.
  • 사이트: Python 가상 환경을 사용하는 환경별 구성 파일.

각 시스템에서 이러한 구성 파일은 다음 위치에서 찾거나 생성할 수 있습니다:

Linux/macOS

리눅스 기반 시스템에서 pip 구성 파일은 pip.conf라는 이름으로 다음 위치에서 찾을 수 있습니다:

  • 전역:
    • Debian 기반 시스템: `/etc` 디렉터리에서 pip.conf를 편집하거나 생성합니다.
    • macOS 기반 시스템: /Library/Application Support/pip/pip.conf 파일을 편집하거나 생성합니다.
  • 사용자:
    • Debian 기반 시스템: ~/pip/pip.conf 파일을 편집하거나 생성하십시오.
    • macOS 기반 시스템: ~/.config/pip/pip.conf 구성 파일을 편집하거나 생성하십시오.
  • 사이트: Python 가상 환경에서 로드될 때, 위치는 $VIRTUAL_ENV/pip.conf입니다.

Windows

Windows 시스템에서는 pip.ini 파일로, 다음 위치에서 찾을 수 있습니다:

  • 전역: C:ProgramDatapippip.ini 파일을 편집하거나 생성하세요. 이 파일은 Windows 시스템에서 기본적으로 숨겨져 있지만 쓰기 가능합니다.
  • 사용자: %APPDATA%pip pip.ini 파일을 편집하거나 생성합니다.
  • 사이트: Python 가상 환경에서 로드될 때 %VIRTUAL_ENV%pip.ini의 구성 파일을 편집하거나 생성합니다.

참고: 알려진 위치 목록을 확인하는 대신 pip에 유효한 위치 목록을 요청할 수 있습니다:

pip config -v list

구성 파일 내용

이 예시에서는 Python 가상 환경의 pip 구성 파일을 사용합니다. 활성화된 가상 환경에서 Debian 기반 시스템에서는 $VIRTUAL_ENV/pip.conf를, Windows에서는 %VIRTUAL_ENV%pip.ini를 편집하십시오.

구성 파일에서 원하는 HTTP 또는 HTTPS 프록시로 proxy 키를 업데이트해야 합니다:

[global]
proxy = http://45.185.162.203:999

파일을 저장하면 모든 pip 명령에서 자동으로 프록시가 적용되어 앞서 언급한 프록시 플래그 사용이 불필요해집니다:

(venv) $ pip install boto3

pip 구성 파일에서 사용할 수 있는 구성 옵션에 대한 자세한 내용은 프로젝트 문서에서 확인할 수 있습니다.

환경 변수를 사용한 pip 프록시 설정

시스템 환경 변수를 설정하면 pip 및 시스템의 모든 HTTP 요청에 프록시가 사용됩니다. 이는 HTTP_PROXYHTTPS_PROXY 환경 변수를 활용하여 수행되며, pip와 같은 소프트웨어는 HTTP 요청 시 사용할 시스템 프록시로 이 변수들을 참조합니다.

Linux/macOS

Linux 운영 체제를 사용하는 경우 /etc/environment 파일을 업데이트하고, macOS 사용자의 경우 홈 디렉터리에 있는 .zshrc 파일을 업데이트하십시오. 그런 다음 프록시 서버에 대한 새 항목으로 업데이트하십시오:

HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port

터미널 세션을 재시작하거나 시스템을 재시작하면 환경 변수가 적용됩니다.

Windows

Windows 시스템에서는 명령 프롬프트 터미널에서 다음 명령을 사용하여 환경 변수를 설정할 수 있습니다:

$env:HTTP_PROXY "https://proxyserver:port" /M
$env:HTTPS_PROXY "https://proxyserver:port" /M

변경 사항을 적용하려면 명령 프롬프트를 다시 시작하십시오.

구성 테스트

pip 구성 파일이나 환경 변수를 통해 시스템 수준 구성을 활성화한 후에는 프록시를 통해 성공적으로 연결하고 데이터를 수신할 수 있는지 테스트해야 합니다.

Linux/macOS

Linux/macOS에서는 다음 명령을 사용하세요:

$ python -m venv venv
$ source venve/scripts/activate

# pip 구성 파일 또는 환경 변수 사용 시
(venv) $ pip install requests

특정 프록시로 이 설정을 재정의하려면 CLI 플래그를 사용할 수 있습니다:

# pip CLI 플래그
(venv) $ pip install requests --proxy https://proxyserver:port

이 명령어에서 https://proxyserver:port을 자신의 프록시로 반드시 업데이트하세요.

Windows

Windows에서는 다음 명령을 사용하세요:

> python -m venv venv
> .venvScriptsActivate.bat
(venv) > pip install requests

이러한 설정은 항상 pip CLI 플래그를 사용하여 재정의할 수 있습니다:

# pip cli 플래그
(venv) $ pip install requests --proxy https://proxyserver:port

pip 프록시 문제 해결

pip으로 HTTP 또는 HTTPS 프록시에 연결할 때, 특히 향상된 기능으로 인해 개인 프록시나 HTTPS 프록시 사용을 고려하는 경우 다음과 같은 일반적인 문제를 겪을 수 있습니다.

인증 문제

인증 문제는 pip으로 프록시에 연결할 때 일반적으로 407 프록시 인증 필요 오류로 나타납니다. 이는 프록시 연결에 사용자 이름과 비밀번호가 필요하거나 잘못된 인증 정보를 제공했음을 의미합니다.

인증서 문제

HTTPS 프록시에 연결할 때 pip에서 Certificate verify failed 오류를 받을 수 있습니다. 이는 프록시 서버가 제공한 인증서에 문제가 있음을 나타냅니다.

개인 프록시 서버가 자체 서명 인증서를 사용하는 경우 이 오류가 발생할 수 있으며, 인증 기관을 통해 인증서를 확인할 수 없습니다. 특정 도메인에 연결할 때 --trusted-host CLI 옵션을 사용하여 자체 서명 인증서 오류를 무시할 수 있습니다.

회전 프록시와 함께 pip 사용하기

회전 프록시는 요청마다 IP 주소를 자동으로 변경하여 IP 차단 회피에 도움이 됩니다. 이는 다중 사용자 시뮬레이션을 통해 제한을 우회합니다.

목록에서 프록시를 무작위로 선택하여 구현할 수 있습니다. 다음은 공개 프록시를 순환하며 pip 패키지를 설치하는 간단한 bash 스크립트입니다.

다음과 같은 rotate-proxies.sh라는 bash 스크립트를 생성하세요:

proxy_list=(
  'http://45.185.162.203:999'
  'http://177.23.176.58:8080'
  'http://83.143.24.66:80'
)

pip_packages=(
  'requests'
  'numpy'
  'pandas')

chmod +x rotate-proxies.sh
# 패키지를 순회하며 설치
for package in "${pip_packages[@]}"
do
  # 목록에서 무작위로 프록시 선택
  proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
  echo -e  "nInstalling $package with proxy $proxy"
  pip install --proxy $proxy $package
done

생성 후 이 파일을 실행하면 pip 패키지를 다운로드하고 각 pip 명령마다 무작위 프록시를 순환합니다. 스크립트 출력 요약은 다음과 같습니다:

$ ./rotate-proxies.sh 

프로xy http://177.23.176.58:8080로 requests 설치 중
requests 수집 중
  requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) 다운로드 중

….

urllib3-2.3.0-py3-none-any.whl 다운로드 중 (128 kB)
수집된 패키지 설치: urllib3, idna, charset-normalizer, certifi, requests
certifi-2026.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0 설치 완료

proxy를 사용하여 six 설치 중 http://45.185.162.203:999
numpy 수집 중
numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB) 다운로드 중

…

수집된 패키지 설치 중: numpy
numpy-2.2.2 설치 완료

프록시 http://83.143.24.66:80를 사용하여 pandas 설치 중
pandas 수집 중
  pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB) 다운로드 중

….

수집된 패키지 설치: pytz, tzdata, six, python-dateutil, pandas
pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2026.1 six-1.17.0 tzdata-2026.1 설치 완료

pip와 함께 프록시를 사용하는 이점

프록시는 개발자가 네트워크 제한을 우회하고 차단된 리소스에 접근하며 패키지 다운로드 속도를 향상시키는 데 도움이 됩니다. 프라이빗 프록시는 캐싱, 더 빠른 연결, 신원 가림을 통한 보안 강화를 제공합니다.

VPN과 비교할 때 프록시는 pip 요청에 대한 가벼운 대안입니다. VPN은 광범위한 프라이버시를 위해 모든 인터넷 트래픽을 암호화하지만, 증가된 지연 시간으로 인해 패키지 설치 속도를 늦출 수 있습니다. 프록시는 종속성 관리를 위한 더 빠르고 효율적인 솔루션을 제공합니다.

일반적인 실수와 모범 사례

pip와 프록시를 함께 사용할 때는 보안 취약점으로 이어질 수 있는 일반적인 실수를 주의해야 합니다. 잘못된 프록시 URL이나 HTTP/HTTPS 프로토콜 누락/오류와 같은 URL 형식 설정 오류는 패키지 저장소 연결을 방해할 수 있습니다.

자주 발생하는 보안 문제는 소스 코드, 스크립트 또는 지속적 통합/지속적 배포(CI/CD) 파이프라인 정의에 프록시 인증 정보(예: 사용자 이름 및 비밀번호)를 하드코딩하는 것입니다. 이 코드가 재배포될 경우 프록시에 대한 무단 접근이 발생할 수 있습니다. 인증 정보가 유출되면 프록시가 오용되어 비용 증가를 초래하거나 심지어 사이버 공격에 악용될 수 있습니다.

이러한 실수를 방지하려면 프록시 자격 증명을 코드에 직접 저장하지 말고 환경 변수나 암호화된 구성 파일에 보관하여 안전하게 관리하는 것이 좋습니다. 또한 pip 사용 전 프록시 연결성을 테스트하여 설정이 올바른지 확인하고 런타임 오류를 방지해야 합니다. curl이나 ping 같은 도구를 사용하면 서비스에 적용하기 전에 프록시 성능을 검증할 수 있습니다. 이를 통해 더 원활한 패키지 관리 환경을 구축할 수 있습니다.

Bright Data 프록시 사용하기

고품질의 다양한 기능을 갖춘 프록시 공급자를 찾고 있다면 Bright Data를 확인해 보세요. 주거용, 데이터 센터, 모바일 기기 등 다양한 IP 주소를 제공하는 프록시 솔루션입니다. 또한 회전 프록시와 Web Unlocker API를 포함한 데이터 수집 및 웹 스크래핑을 위한 전문 도구도 제공합니다.

Bright Data를 사용하면 프로젝트 요구사항에 맞는 프록시를 쉽게 생성할 수 있습니다. 그 간편함을 보여드리기 위해, 다른 IP 주소로 패키지에 접근할 수 있도록 pip와 함께 사용할 수 있는 개인 주거용 프록시를 만들어 보겠습니다.

먼저 무료 Bright Data 계정에 가입하세요. 그런 다음 사용자 대시보드로 이동합니다.

사이드 메뉴에서 ‘프록시 및 스크래핑‘을 클릭하세요:

Bright Data proxies

양식이 로드되면 새 주거용 프록시를 구성하세요. 기본 설정을 사용하면 여러 Bright Data 사용자가 공유하는 IP 주소를 가진 프록시를 얻을 수 있습니다:

Creating a residential proxy

특정 지역을 대상으로 하는 경우 IP 주소가 위치한 국가를 지정할 수도 있습니다.

생성 후 새로 생성된 프록시의 엔드포인트 및 인증 정보가 포함된 대시보드로 이동합니다. 사용자 이름, 비밀번호, 서버 주소를 모두 기록하세요:

Proxy dashboard

이 엔드포인트 값을 사용하여 --proxy 플래그로 가용성을 테스트하세요:

$ pip install pandas 
    --trusted-host pypi.org 
    --trusted-host files.pythonhosted.org 
    --proxy https://username:[email protected]:33335

Bright Data 프록시는 자체 서명 인증서를 사용하므로, trusted-host 플래그를 사용하여 pypi.orgfiles.pythonhosted.org를 신뢰할 수 있는 도메인으로 화이트리스트에 추가할 수 있습니다.

결론

pip에 프록시를 사용하면 익명성과 제어력을 강화하여 IP 제한 및 지역 차단을 우회할 수 있습니다. 필요에 따라 공용 프록시와 사설 프록시 중 선택할 수 있습니다.

프라이빗 프록시는 IP 회전, 향상된 캐싱, 더 빠른 속도, 더 큰 안정성 등의 장점을 제공하지만, 비용은 IP 가용성과 지리적 위치에 따라 달라집니다.

pip용 프록시 설정은 CLI 플래그, pip 구성 파일, 환경 변수 등 다양한 방법으로 간단하게 가능합니다. 그러나 공개 프록시는 한계가 있으며, 앞서 논의한 바와 같이 대규모 작업이나 생산 환경에는 적합하지 않습니다. 보다 안정적인 솔루션을 원한다면 Bright Data의 주거용 및 데이터센터 IP를 활용하세요. 웹 스크래핑 및 데이터 수집을 위한 고속·안정적 연결과 고급 도구를 제공합니다. 지금 무료로 가입하여 시작하세요.