Proxyman: 개요, 설정 및 트래픽 디버깅 기능

저자: IT Sectr 게시일: 2026-05-08 읽는 시간: 8 분

Proxyman은 애플리케이션 개발 중 HTTP/HTTPS 트래픽을 가로채고, 보고, 수정하도록 설계된 macOS 및 iOS용 네이티브 프록시 클라이언트입니다. Proxyman 공식 웹사이트(2025)에 따르면, 이 도구는 10,000개 이상의 기업에서 사용되며 iOS 및 macOS의 모든 최신 버전을 지원합니다. 이 프록시 클라이언트는 무료 기본 버전을 제공하며, 더 현대적인 인터페이스, 실시간 데이터 수정을 위한 JavaScript 스크립트 지원, iOS 시뮬레이터와의 내장 호환성에서 Charles Proxy와 차별화됩니다.

주요 포인트

  • Proxyman은 현대적인 UI와 광범위한 트래픽 디버깅 기능을 갖춘 macOS 및 iOS용 네이티브 프록시 클라이언트입니다
  • HTTPS 프록시는 iOS 시뮬레이터용 자동 인증서 설치로 구현되어 Charles보다 설정이 간편합니다
  • Scripting은 Breakpoints 없이 JavaScript 스크립트로 요청과 응답을 수정할 수 있는 Proxyman의 고유 기능입니다
  • iOS 통합은 시뮬레이터(자동)와 WiFi Proxy를 통한 물리적 기기 모두를 지원합니다
  • 무료 버전에는 시간 제한 없는 기본 트래픽 가로채기 기능이 포함되어 있습니다

Proxyman이란?

Proxyman은 Apple 생태계를 위해 특별히 만들어진 HTTP/HTTPS 프록시 클라이언트입니다. 크로스 플랫폼 솔루션과 달리 Proxyman은 네이티브 macOS 프레임워크(Swift, AppKit)를 사용하여 높은 성능과 시스템 프록시 메커니즘과의 원활한 통합을 보장합니다. 이 도구는 macOS 11+ 및 iOS 14+를 지원합니다.

시장 포지셔닝

Proxyman은 Apple 생태계 개발자를 위한 Charles Proxy의 현대적인 대안으로 자리매김하고 있습니다. 주요 장점: 완전한 기본 기능을 갖춘 무료 버전, macOS 디자인 시스템에 맞는 네이티브 인터페이스, 추가 단계 없이 iOS 시뮬레이터 자동 구성. Proxyman은 2018년부터 활발히 개발되어 왔으며 개발자 커뮤니티와 개방형 피드백 시스템을 갖추고 있습니다.

지원 플랫폼

Proxyman은 macOS(네이티브 애플리케이션, Electron 아님)에서 실행되며 iOS용 컴패니언 애플리케이션을 제공합니다. 물리적 기기(iPhone, iPad)는 Charles와 유사하게 WiFi Proxy를 통해 구성됩니다. iOS 컴패니언 앱(Proxyman iOS companion)을 사용하면 컴퓨터 없이 기기에서 직접 트래픽을 볼 수 있습니다. 이 기능은 Proxyman 고유의 기능입니다.

Proxyman 작동 방식

Proxyman은 표준 MITM 원리로 작동합니다. 애플리케이션이 시스템 프록시로 구성되어 모든 HTTP/HTTPS 트래픽이 통과합니다. 이 도구는 iOS 시뮬레이터에 대한 수동 프록시 구성 없이 트래픽을 가로채기 위해 네이티브 macOS Network Extension 메커니즘을 사용합니다.

macOS에서의 가로채기 메커니즘

macOS에서 Proxyman은 투명한 트래픽 가로채기를 위해 Apple Network Framework를 사용합니다. 프록시가 활성화되면 Proxyman은 가상 네트워크 인터페이스를 생성하여 모든 애플리케이션의 트래픽이 통과합니다. iOS 시뮬레이터의 경우 시작 시 자동으로 구성됩니다. Proxyman은 Xcode를 통해 실행 중인 시뮬레이터를 감지하고 설정에서 수동 프록시 설정 없이 트래픽을 리디렉션합니다.

HTTPS 트래픽 처리

HTTPS 복호화를 위해 Proxyman은 macOS 시스템 키체인에 로컬 루트 인증서를 설치합니다. 첫 실행 시 프로그램에서 인증서 설치 및 신뢰를 요청합니다. 특정 도메인에 대한 모든 인증서는 즉시 생성되어 Proxyman 루트 인증서로 서명됩니다. iOS 시뮬레이터의 경우 프록시 시작 시 인증서가 자동으로 설치됩니다.

js
// 응답 수정을 위한 Proxyman 스크립트 예제
// Scripting: 오류 테스트를 위해 응답 상태를 500으로 변경
function onResponse(request, response) {
    if (request.url.includes("/api/users")) {
        response.statusCode = 500;
        response.body = JSON.stringify({
            error: "Internal Server Error",
            code: "SERVER_TIMEOUT"
        });
    }
    return response;
}

Proxyman의 주요 기능

Proxyman은 다른 프록시 도구와 차별화되는 고유한 기능 세트를 제공합니다. 스크립트 기반 트래픽 수정과 네이티브 성능에 특히 중점을 둡니다.

Scripting — JavaScript를 통한 수정

Proxyman의 주요 특징은 요청과 응답을 수정하기 위한 JavaScript 스크립트 지원입니다. Breakpoints를 통해 각 요청을 수동으로 편집하는(Charles처럼) 대신 개발자가 특정 URL에 자동으로 적용되는 스크립트를 작성할 수 있습니다. 스크립트는 헤더, 요청 및 응답 본문, 상태 코드, 메타데이터에 대한 완전한 액세스를 지원합니다. 이를 통해 토큰 교체, 헤더 수정, 테스트용 오류 시뮬레이션 등의 일상적인 작업을 자동화할 수 있습니다.

트래픽 필터링 및 구성

Proxyman은 유연한 규칙 기반 필터 시스템을 제공합니다. 도메인, 콘텐츠 유형 또는 상태 코드별로 트래픽을 자동으로 그룹화하는 프로필을 만들 수 있습니다. 예를 들어, 애플리케이션 API에 대한 모든 요청은 자동으로 한 그룹에, 정적 자산(CSS, JS, 이미지)은 다른 그룹에 들어갑니다. 이는 특정 엔드포인트에만 집중해야 하는 디버깅 시 특히 유용합니다.

기능ProxymanCharles Proxy비고
ScriptingJavaScript없음Breakpoints 없는 자동 수정
iOS 시뮬레이터자동수동 설정Proxyman이 Xcode를 통해 시뮬레이터 감지
무료 버전있음30일 체험판Proxyman — 시간 제한 없음
플랫폼macOS, iOSWindows, macOS, LinuxCharles는 크로스 플랫폼, Proxyman은 Apple 전용
HAR 내보내기있음있음둘 다 표준 형식 지원

타임라인 시각화

Proxyman은 각 요청이 기간, 상태 및 크기를 나타내는 색상 막대로 표시되는 요청 타임라인을 간트 차트 스타일로 표시합니다. 타임라인은 대화형이며 시간 범위를 선택하여 해당 기간의 요청만 볼 수 있습니다. 각 요청에 대해 DNS, Connect, TLS Handshake, Request, Response 단계별 분석을 사용할 수 있습니다.

Proxyman iOS Companion

Proxyman의 고유한 기능은 iPhone 또는 iPad에 설치할 수 있는 독립형 iOS 애플리케이션입니다. 컴퓨터에 연결하지 않고도 기기에서 직접 네트워크 트래픽을 볼 수 있습니다. 트래픽은 필터링 및 검색 기능과 함께 실시간으로 표시됩니다. 이 앱은 컴퓨터를 사용할 수 없는 현장 테스트에 특히 유용합니다.

모바일 기기용 Proxyman 설정

Proxyman은 iOS 및 Android용 다양한 설정 방법을 제공합니다. 네이티브 Xcode 통합 덕분에 iOS 시뮬레이터 구성은 거의 자동입니다. 물리적 기기 및 Android의 경우 수동 구성이 필요합니다.

iOS 시뮬레이터 설정

가장 간단한 시나리오: Proxyman을 실행하고 iOS Simulator 탭을 열고 Start를 클릭합니다. Proxyman이 Xcode를 통해 실행 중인 시뮬레이터를 자동으로 감지하고 프록시를 구성합니다. HTTPS 인증서도 자동으로 설치됩니다. 추가 작업이 필요하지 않으며 시뮬레이터 트래픽이 즉시 Proxyman 창에 나타납니다. 이는 시뮬레이터 설정에 수동 프록시 구성이 필요한 Charles에 비해 상당한 이점입니다.

물리적 iOS 기기 설정

iPhone 또는 iPad의 경우: 기기를 컴퓨터와 동일한 WiFi 네트워크에 연결합니다. 기기의 WiFi 설정에서 HTTP 프록시로 컴퓨터의 IP 주소와 포트 9090(Proxyman 기본 포트)을 지정합니다. 그런 다음 Safari를 열고 http://proxy.man/ssl로 이동하여 인증서를 설치합니다. iOS 10.3+에서는 Settings → General → About → Certificate Trust Settings에서 인증서 신뢰를 활성화해야 합니다.

Android 설정

Android 기기는 iOS와 유사하게 구성됩니다: 컴퓨터의 IP 주소와 포트 9090을 사용한 WiFi 프록시입니다. HTTPS의 경우 http://proxy.man/ssl에서 브라우저를 통해 인증서를 설치해야 합니다. Android 7+의 디버그 빌드에서는 사용자 인증서를 신뢰하는 network_security_config.xml 파일이 필요합니다. Android 에뮬레이터의 경우 컴퓨터 IP 대신 호스트 IP 주소(일반적으로 10.0.2.2)를 사용합니다.

xml
<!-- Proxyman과 함께 Android용 network_security_config.xml -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
            <certificates src="system" />
        </trust-anchors>
    </debug-overrides>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

Proxyman vs Charles Proxy: 비교

Proxyman과 Charles Proxy 중 선택은 팀의 특정 요구사항과 개발 플랫폼에 따라 달라집니다. 개발자가 정보에 기반한 결정을 내릴 수 있도록 주요 차이점을 살펴보겠습니다.

성능 및 네이티브 통합

Proxyman은 Swift와 AppKit으로 작성되어 네이티브 macOS 성능과 최소한의 메모리 소비를 제공합니다. Charles는 Java(Eclipse RCP)로 작성되어 크로스 플랫폼 호환성을 제공하지만 macOS에서 메모리 사용량이 약간 더 높고 네이티브가 아닌 인터페이스를 가질 수 있습니다. Apple 생태계 개발자의 경우 Proxyman이 일반적으로 더 반응성이 뛰어납니다.

기능적 차이

Charles는 더 성숙하고 광범위한 도구 세트를 제공합니다: 시각적 편집기가 있는 Rewrite Rules, 요청 반복을 위한 Repeat, Map Local/Remote, 세션 자동 저장. Proxyman은 더 현대적인 기능으로 대응합니다: JavaScript Scripting, 자동 시뮬레이터 구성, 기기에서 트래픽을 보기 위한 iOS 컴패니언. Charles는 복잡한 자동화 시나리오(Rewrite, Repeat)에서 우위를 가지며, Proxyman은 스크립트를 통한 빠르고 유연한 수정에서 탁월합니다.

가격 및 라이선스

Proxyman은 시간 제한 없는 기본 기능을 갖춘 무료 버전을 제공합니다. Pro 버전(구독 약 $12/년 또는 일회성 구매 약 $59)은 스크립팅, 필터, 내보내기 등의 고급 기능을 제공합니다. Charles는 30일 체험판과 함께 라이선스당 $50입니다. 인디 개발자에게 Proxyman이 더 저렴하며, 엔터프라이즈 환경에서는 차이가 미미합니다.

자주 묻는 질문

Proxyman은 무료인가요?

Proxyman에는 시간 제한 없는 기본 HTTP/HTTPS 트래픽 가로채기 기능을 갖춘 무료 버전이 있습니다. 유료 구독(Pro 및 Team)은 스크립팅, 고급 필터, HAR 내보내기 및 우선 지원을 추가합니다. 대부분의 디버깅 작업에는 무료 버전으로 충분합니다.

Proxyman은 Android를 지원하나요?

Proxyman은 네이티브 macOS 애플리케이션이지만 Charles와 유사하게 WiFi Proxy를 통해 Android 기기의 트래픽을 가로챌 수 있습니다. Android 기기는 컴퓨터의 IP 주소와 Proxyman 포트를 사용하여 HTTP 프록시로 구성됩니다. Android 에뮬레이터의 경우 IP 10.0.2.2를 사용합니다. HTTPS 인증서는 별도로 설치됩니다.

Proxyman에서 서버 응답을 어떻게 수정하나요?

두 가지 방법이 있습니다: Local Edit — 요청을 두 번 클릭하고 Response 탭을 선택한 후 수동으로 편집하고 Execute를 클릭하여 수정된 응답을 애플리케이션으로 보냅니다. Scripting — 각 요청마다 지정된 URL에 자동으로 변경 사항을 적용하는 JavaScript 스크립트를 작성합니다.

Proxyman에서 데이터를 내보낼 수 있나요?

네, Proxyman은 형식으로 내보내기를 지원합니다: HAR(HTTP Archive), Proxyman Session(.pxm), Curl Command(각 요청별), 일반 텍스트. 내보내기는 요청 또는 요청 그룹의 컨텍스트 메뉴를 통해 사용할 수 있습니다. HAR 형식은 Charles Proxy, Chrome DevTools 및 온라인 뷰어와 호환됩니다.

Proxyman은 iOS 시뮬레이터와 어떻게 작동하나요?

Proxyman은 Xcode를 통해 실행 중인 iOS 시뮬레이터를 자동으로 감지하고 수동 구성 없이 트래픽을 리디렉션합니다. 프록시가 시작되면 Proxyman은 macOS의 Network Extension을 통해 시스템 프록시를 주입하여 모든 시뮬레이터에 자동으로 적용됩니다. HTTPS 인증서도 자동으로 설치됩니다.

요약

  • Proxyman은 Apple 생태계를 위한 Charles Proxy의 대안으로 만들어진, 현대적인 Swift 인터페이스를 갖춘 macOS 및 iOS용 네이티브 프록시 클라이언트입니다
  • JavaScript Scripting은 Breakpoints 없이 요청과 응답을 자동으로 수정할 수 있는 고유한 기능으로 엣지 케이스 테스트를 가속화합니다
  • 수동 프록시 구성 없는 Xcode를 통한 iOS 시뮬레이터 자동 설정 — Charles에 대한 주요 이점
  • iOS Companion — 컴퓨터 연결 없이 iPhone 또는 iPad에서 직접 트래픽을 볼 수 있는 독립형 애플리케이션
  • 네이티브 Swift/AppKit 프레임워크를 통한 성능 — Java 기반 솔루션에 비해 낮은 메모리 소비
  • 시간 제한 없는 완전한 기본 기능을 갖춘 무료 버전, 대부분의 디버깅 작업에 적합
  • 크로스 플랫폼 개발(Windows + macOS + Linux)의 경우 Charles Proxy를 선택하고, 순수 Apple 생태계의 경우 Proxyman이 최상의 사용자 경험을 제공합니다

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기