Proxyman Map Local 도구로 HTTP 응답을 조작하는 방법
이 짧은 기술 블로그에서는 Map Local 도구가 무엇인지, 그리고 응답을 빠르게 조작하는 데 어떻게 도움이 되는지 보여 드리겠습니다.
Proxyman이 여러분의 디버깅 생산성을 높이는 데 도움이 되기를 바랍니다 👏.

1. Map Local 도구
Map Local 도구를 사용하면 규칙과 일치하는 요청의 응답으로 로컬 파일의 내용을 사용할 수 있습니다.
Map Local 도구는 개발 속도를 크게 높여 주며, 서버의 데이터를 직접 수정하지 않고도 여러 엣지 케이스를 빠르게 테스트할 수 있게 해 줍니다. 또한 다양한 응답에 따른 앱의 동작을 테스트하려는 QA 담당자나 개발자에게 꼭 필요한 도구입니다.
2. HTTP 응답을 조작하는 이점
디버깅을 하다 보면 기기나 앱에서 레이아웃이나 콘텐츠를 테스트하기 위해 여러 종류의 응답을 시도해야 하는 상황이 많습니다:
- 응답에 새로운 파라미터를 빠르게 시도하기
- 응답의 파라미터에 따라 앱이 어떻게 동작하는지 테스트하기
- 특이한 콘텐츠로 UI 레이아웃 테스트하기
- 현지화(Localization) 테스트하기
- 응답의 특정 파라미터로 버그를 빠르게 재현하기

3. 작동 방식
-
들어오는 요청의 URL이 미리 정의한 일치 규칙과 일치하고 로컬 파일이 유효하면 => 일치하는 요청의 응답 본문이 로컬 파일의 내용으로 자동으로 바뀝니다.
-
어떤 규칙과도 일치하지 않는 요청은 응답 전체가 서버에서 받은 그대로 유지됩니다.

4. 일치 규칙
Wildcards와 Include subdirectories 옵션을 조합하면 규칙을 간단하게 정의할 수 있습니다.

-
Top-Down Matching: 들어오는 요청은 위에서 아래로 우선순위에 따라 평가됩니다. 목록 맨 위에 있는 규칙이 가장 먼저 평가됩니다.
-
별표 ( * ): 0회 이상 임의의 문자와 일치합니다. 예를 들어 "api.proxyman.com/v1/*"는 "api.proxyman.com/v1/"로 시작하는 모든 URL과 일치합니다. 예: "api.proxyman.com/v1/login", "api.proxyman.com/v1/data", "api.proxyman.com/v1/", ...
-
물음표 ( ? ): 한 개의 문자와 한 번 일치합니다. 예를 들어 "api.proxyman.com/v?/login"은 api.proxyman.com/v1/login과 api.proxyman.com/v2/login에 일치합니다.
-
Include subdirectories: 모든 하위 디렉터리가 자동으로 일치합니다. 도메인의 모든 경로를 일치시키려는 경우 아주 편리합니다. 예를 들어 "Include subdirectories"를 ON으로 설정한 "api.proxyman.com"은 도메인이 "api.proxyman.com"인 모든 URL과 일치합니다. 예: "api.proxyman.com", "api.proxyman.com/v1/data", "api.proxyman.com/login", "api.proxyman.com/user?name=nghia", ...
-
HTTP / HTTPS 포함: 기본적으로 "api.proxyman.com"은 스킴이 HTTP 또는 HTTPS인 모든 요청과 일치합니다. 반면 "http://api.proxyman.com"은 HTTP만, "https://api.proxyman.com"은 HTTPS만 일치합니다.
6. 추가 기능
Map Local 도구에는 규칙 목록을 빠르게 편집하는 다양한 방법이 있으며, 단축키도 지원합니다.
- ⌘ + ⌥ + L : Map Local 창을 빠르게 엽니다.
- ⌘ + N : 새 항목 추가
- ⌘ + E : 항목 편집
- ⌘ + D : 항목 복제
- ⌘ + ⌫ : 항목 삭제
- 여러 항목을 다중 선택하는 기능 지원
- Finder 또는 자주 사용하는 편집기에서 로컬 파일을 빠르게 열 수 있습니다.
- 모든 변경 사항은 즉시 적용되므로 따로 저장할 필요가 없습니다.
- 일치하는 응답의 "Content-Type"은 로컬 파일 형식에 맞게 자동으로 바뀝니다. 예: application/json, image/png, image/jpg, .... 따라서 앱이 응답을 적절하게 처리합니다.

7. 사용 방법
Map Local 도구를 여는 방법은 여러 가지가 있습니다. Domains나 flow에서 Map Local 도구를 열면 일치하는 규칙이 자동으로 채워집니다.

유용한 팁
더 구체적인 규칙을 넓은 규칙보다 위에 두면 먼저 검사됩니다. 일치하는 경로가 많은 API라면 파일을 하나씩 지정하는 대신 Map Local에서 로컬 디렉터리를 사용할 수도 있습니다. 모킹 파일은 해당 콘텐츠 유형에 맞는 유효한 상태로 유지하고, 마무리하기 전에 정상 응답, 빈 응답, 오류 응답을 모두 테스트하세요.
Proxyman은 iOS 기기, iOS 시뮬레이터, Android 기기에서 앱과 도메인의 HTTP/HTTPS 요청을 캡처하고 검사할 수 있게 해 주는 고성능 macOS 앱입니다.
https://proxyman.com에서 받아보실 수 있습니다.
