← 소프트웨어 자료실

mitmproxy

mitmproxy는 HTTP·HTTPS 통신을 가로채 요청과 응답을 살펴보고, 수정·저장·재생하는 무료 오픈소스 프록시입니다. macOS뿐 아니라 Windows와 Linux도 지원합니다. 터미널 인터페이스인 mitmproxy, 브라우저 GUI인 mitmweb, 자동화에 쓰는 mitmdump를 제공하며, 앱과 서버 사이의 API 오류를 분석하거나 테스트 응답을 만드는 개발자·QA 담당자에게 적합합니다.

어떤 작업에 쓰는 도구인가

브라우저나 앱이 실제로 보낸 URL, 헤더, 본문과 서버의 응답을 함께 확인하는 도구입니다. API 연동 오류, 인증 헤더 누락, 예상과 다른 JSON 응답 등을 조사할 때 사용할 수 있습니다.

터미널에서 대화형으로 분석하려면 mitmproxy, 화면을 보며 작업하려면 mitmweb, 반복 작업과 스크립트 실행에는 mitmdump를 선택합니다. HTTPS 내용을 보려면 대상 클라이언트가 mitmproxy 인증기관을 신뢰해야 합니다.

지원 OS와 배포 상태

제공된 제품 데이터에는 macOS만 있지만 공식 설치 문서는 macOS·Linux·Windows를 모두 안내합니다. macOS에서는 Homebrew 설치를 권장하며 독립 실행 바이너리도 제공합니다. Windows에는 설치 프로그램과 독립 바이너리가 있고 WSL 사용도 안내합니다.

2026년 10월 9일 확인한 공식 GitHub 릴리스 페이지는 12.2.3을 Latest로 표시합니다. 지원 종료 제품으로 볼 근거는 확인되지 않았습니다. 다만 OS별 최소 버전은 별도로 확인해야 합니다.

macOS 설치와 첫 통신 확인

공식 권장 절차는 터미널에서 brew install --cask mitmproxy를 실행하는 것입니다. 설치 후 mitmweb을 시작하고 테스트할 브라우저의 HTTP 프록시를 같은 Mac의 127.0.0.1:8080으로 설정합니다.

그 브라우저에서 http://mitm.it을 열어 macOS용 CA 인증서 설치 안내를 따르고 신뢰 설정을 완료합니다. 이어 https://mitmproxy.org에 접속해 새 통신 항목이 나타나는지 확인한 뒤 요청과 응답을 펼쳐 봅니다. 다른 기기를 연결할 때는 localhost 대신 프록시가 실행되는 Mac의 주소를 사용합니다.

실무 예시: 서버 변경 없이 응답 시험하기

개발 중인 상품 목록 화면이 빈 데이터를 받았을 때 어떻게 표시되는지 확인한다고 가정합니다. 테스트 API의 목록 URL을 Map Local에 연결해 빈 목록을 담은 로컬 JSON 파일을 반환하면, 서버 코드를 바꾸지 않고 화면 처리를 시험할 수 있습니다. 파일을 수정한 내용은 다음 요청에 바로 반영됩니다.

기록한 정상 응답을 서버 측 재생에 활용하면 같은 데이터를 반복 제공할 수도 있습니다. 이는 기능 확인용 예시이며 실제 설치·실행으로 검증한 결과는 아닙니다.

무료 여부와 기능상 제약

공식 홈페이지는 무료 오픈소스 제품으로 소개하며 코드의 MIT 라이선스를 명시합니다. 확인한 자료에서는 별도 유료판이나 무료판의 기능 잠금 조건을 찾지 못했습니다.

기술적 제약은 있습니다. 클라이언트 요청 재생은 요청을 하나씩 순서대로 보내므로 원래의 동시 요청 상황과 달라질 수 있습니다. 큰 본문을 스트리밍하면 버퍼링 부담을 줄일 수 있지만 본문 열람과 일반 본문 치환이 제한됩니다. macOS Local Capture는 나가는 연결만 수집하며 들어오는 연결에는 Reverse 모드를 권장합니다.

통신이 보이지 않거나 HTTPS가 실패할 때

먼저 이벤트 로그의 client connect 여부를 확인합니다. 연결 기록이 없다면 프록시 주소와 포트, 다른 기기와의 네트워크 연결, 무선망의 클라이언트 격리 설정을 점검합니다. HTTP는 보이지만 HTTPS만 실패한다면 해당 브라우저나 앱이 CA를 신뢰하는지 확인합니다.

운영체제의 프록시 설정을 무시하는 앱에는 Local Capture나 WireGuard 같은 다른 모드를 검토합니다. 인증서 고정이 적용된 앱은 CA를 설치해도 연결을 거부할 수 있습니다. 분석할 필요가 없는 도메인은 ignore_hosts로 가로채기 대상에서 제외할 수 있습니다.

다른 도구와 선택 기준

Chrome에서 열린 페이지의 요청, 응답, 로딩 시간을 확인하는 목적이라면 DevTools의 Network 패널부터 사용하는 편이 간단합니다. 다른 앱이나 기기의 통신을 대상으로 요청을 가로채 수정하거나, Python으로 처리 규칙을 반복 적용해야 한다면 mitmproxy를 검토할 만합니다.

선택할 때는 대상 앱이 프록시 설정과 CA 신뢰를 허용하는지, 수동 분석과 자동화 중 어느 쪽이 필요한지부터 확인합니다. 웹 화면을 선호한다면 mitmweb으로 시작할 수 있습니다.

공식 안내

주요 기능

  • HTTP/1·HTTP/2·HTTP/3와 WebSocket 등 웹 통신을 검사하고, 선택한 메시지를 목적지에 도달하기 전에 수정할 수 있습니다.
  • 저장한 HTTP 통신에서 클라이언트 요청을 서버로 다시 보내거나, 기록된 서버 응답을 클라이언트에 재생할 수 있습니다.
  • Map Local로 특정 URL의 응답을 로컬 파일로 대체하고, Map Remote로 요청 URL을 다른 서버 주소로 바꿀 수 있습니다.
  • 필터와 정규식을 이용해 요청·응답 본문을 치환하거나 헤더를 추가·변경·삭제할 수 있습니다.
  • Python 애드온과 mitmdump로 메시지 변경, 트래픽 리디렉션, 사용자 정의 명령을 자동화할 수 있습니다.
  • Local Capture로 같은 컴퓨터의 특정 프로세스를 대상으로 통신을 수집하거나, Reverse 모드로 서버 앞에 프록시를 배치할 수 있습니다.
광고

관련 프로그램

Proxyman

proxyman.com

Proxyman은 앱과 서버 사이의 HTTP·HTTPS 요청과 응답을 수집하고, 내용을 검사하거나 시험용 응답으로 바꾸는 네트워크 디버깅 프록시다. macOS에서 웹·모바일 앱의 API 오류를 추적하는 개발자와 QA 담당자에게 적합하다.

기타macOS

Burp Suite Community Edition

portswigger.net

Burp Suite Community Edition은 PortSwigger의 무료 웹 보안 수동 테스트 도구 모음이다. 브라우저와 서버 사이의 HTTP·HTTPS 및 WebSocket 통신을 확인하고, 요청을 수정·재전송해 응답을 분석한다. macOS용 Intel·Apple Silicon 설치 파일을 제공하며, 웹 개발자와 보안 학습자의 요청 분석 및 취약점 재현에 활용할 수 있다.

기타macOS

OpenVPN Connect client

openvpn.net

OpenVPN Connect는 Mac에서 OpenVPN 방식의 VPN 서버에 접속하는 공식 클라이언트다. Access Server와 CloudConnexa뿐 아니라 OpenVPN Community Edition 기반 서버에도 사용할 수 있다. 회사·기관이 제공한 연결 프로필로 내부 업무망에 접속하는 용도이며, 앱 설치만으로 VPN 서버나 이용 계정이 제공되지는 않는다.

기타macOS

Kiro CLI

kiro.dev

Kiro CLI는 터미널에서 자연어로 코드 분석·수정·테스트와 개발 작업 자동화를 요청하는 AI 코딩 에이전트입니다.

기타macOS

miniforge

github.com

Miniforge는 conda-forge를 기본 패키지 저장소로 설정한 최소 설치 배포판이다. conda와 mamba를 제공하며, 필요한 라이브러리를 추가하고 프로젝트마다 독립된 실행 환경을 만들 수 있다. macOS에서 Python 데이터 분석이나 개발 환경을 직접 구성하려는 사용자에게 적합하다.

기타macOS

AWS Corretto JDK

corretto.aws

AWS Corretto JDK의 공식 명칭은 Amazon Corretto이며, Amazon이 배포하는 무료 OpenJDK 개발·실행 환경이다. Java SE 호환성 검증을 거쳤으며 macOS, Linux, Windows에서 Java 프로그램을 개발하고 실행할 수 있다. 이 설명은 제공된 버전에 해당하는 Corretto 21 LTS와 macOS 사용을 중심으로 다룬다.

기타macOS