ApiCatcher Android 버전 출시

ApiCatcher Android 버전 출시

ApiCatcher for Android가 Google Play에 출시되었습니다. 이제 ApiCatcher는 iOS, Android, macOS, Windows 네 플랫폼을 모두 지원합니다.

ApiCatcher for Android | HTTP Capture

동작 원리

iOS 버전은 Network Extension으로 시스템 네트워크 계층에서 트래픽을 가로챕니다. 앱에서 한 번의 탭으로 캡처를 시작할 수 있으며, 프록시 설정이 필요 없습니다. Android 버전도 같은 설계 철학을 따르지만, 내부 구현은 Android의 VpnService API를 사용합니다.

캡처가 시작되면 ApiCatcher는 VpnService를 생성하고 TUN 가상 네트워크 인터페이스를 통해 기기의 모든 IP 패킷을 수집합니다. Rust로 작성된 tun2proxy 라이브러리가 TCP 패킷을 파싱하여 HTTP/HTTPS 연결을 로컬 127.0.0.1:8888로 투명하게 전달합니다. Netty 기반 MITM 프록시는 HTTP 트래픽을 직접 기록하고, HTTPS는 CONNECT 터널과 동적으로 발급하는 인증서로 복호화합니다. 앱은 프록시 존재를 인지하지 못하며, Wi-Fi나 모바일 데이터 프록시 설정을 변경할 필요도 없습니다.

핵심 기능

Android 버전은 iOS 버전과 핵심 기능이 동일합니다. 단순한 패킷 캡처 도구가 아닙니다.

HTTPS와 WebSocket(WS/WSS) 캡처는 기본 기능입니다. WebSocket 프레임은 채팅 메시지 목록 형태로 표시되어 각 프레임의 송수신 내용을 쉽게 확인할 수 있습니다. Host 허용/차단 목록으로 관심 없는 요청을 필터링하여 다른 앱의 트래픽이 섞이는 것을 방지할 수 있습니다.

API 디버깅 측면에서 재작성 규칙은 Mock 응답, 요청/응답 수정, 정규식 치환, 리다이렉트, 요청/응답 드롭, 지연 응답 등을 지원합니다. 규칙으로 표현하기 어려운 복잡한 로직은 스크립트로 처리할 수 있습니다. 단일 요청을 즉시 재생하거나, 여러 요청을 의존 관계에 따라 순서대로 실행하는 조합 재생 규칙을 편집할 수 있으며, 의존 파라미터 주입도 지원합니다.

ApiCatcher는 캡처 과정에서 HTTP 요청을 기반으로 API 문서를 자동 생성하며, 동일 API를 여러 번 캡처하면 응답 필드를 자동으로 병합합니다. Postman이나 Apifox로 내보낼 때 캡처 기록이 테스트 케이스로 함께 포함됩니다. HAR 요청 기록 내보내기, 이미지/동영상/오디오 미디어 파일 추출도 지원합니다.

DNS 매핑, API 스캔, Protobuf 디코딩, 예약 재생 기능도 제공합니다.

UI는 iOS 버전과 동일한 디자인으로 익숙한 사용 경험을 제공합니다. JSON, XML 코드 하이라이트를 지원하며 여러 하이라이트 테마 중 선택할 수 있고, 코드 에디터도 동일한 테마를 사용합니다. JSON 검색, 경로 접기, JSON 비교 기능을 제공합니다. 바이너리 콘텐츠는 16진수 뷰로 확인할 수 있으며, 이미지(SVG 포함) 렌더링, 동영상/오디오 재생도 앱 내에서 가능합니다.

시작하기

Android에서 HTTPS를 캡처하려면 CA 인증서를 설치하고 신뢰해야 합니다. iOS와 달리 Android 7 이상에서는 CA 인증서를 사용자 인증서 저장소에만 설치할 수 있으며 시스템 인증서 저장소에는 설치할 수 없습니다. 따라서 Android에서 ApiCatcher로 앱의 HTTPS 트래픽을 캡처하려면 앱 프로젝트 코드에서 사용자 인증서를 신뢰하도록 설정해야 합니다.

CA 인증서 설치, HTTPS 캡처 제한 사항, 개발자를 위한 앱 캡처 설정 방법은 ApiCatcher for Android 페이지를 참고하세요.

ApiCatcher for Android는 Android 11(API 30) 이상을 지원합니다.