# iOS용 Proxyman Breakpoint 튜토리얼

> Proxyman for iOS Breakpoint로 iPhone의 트래픽을 일시 중지하고 URL, 메서드, 헤더, 본문, 상태 코드를 편집하는 단계별 튜토리얼입니다.

## Proxyman Breakpoint로 iPhone에서 HTTP(s) 요청과 응답 수정하기 {#modify-https-request--response-on-your-iphone-with-proxyman-breakpoint}

Proxyman for iOS 2.0.0 버전부터는 앱의 로직을 변경하지 않고도 요청과 응답 데이터를 실시간으로 바꿀 수 있습니다.

이 짧은 튜토리얼에서는 Proxyman Breakpoint 도구로 iOS 기기에서 HTTP(s) 요청과 응답을 수정하는 방법을 설명합니다. 예를 들면 다음과 같습니다.

* 요청 URL(스킴, 호스트, 경로, 포트 포함)과 HTTP 메서드 수정
* 요청 또는 응답의 HTTP 헤더 수정
* 요청의 쿼리 수정
* 요청 또는 응답의 HTTP 본문 수정
* 응답의 HTTP 상태 코드 수정

## 사전 준비 사항 {#prerequisites}

* App Store에서 최신 버전의 Proxyman을 다운로드합니다: [https://apps.apple.com/us/app/proxyman/id1551292695](https://apps.apple.com/us/app/proxyman/id1551292695)
* iOS 기기에 Proxyman 인증서를 설치하고 신뢰하세요. Proxyman을 처음 사용한다면 [iPhone에서 HTTPS 트래픽 캡처 및 검사하기](https://proxyman.com/posts/2021-10-17-Getting-Started-With-Proxyman-For-iOS)를 따라 iPhone에서 HTTP 트래픽 캡처를 시작하세요.

## Breakpoint 규칙 만들기 {#create-breakpoint-rules}

Breakpoint 규칙을 만드는 방법은 세 가지가 있습니다.

1. **More** 탭에서

* **More** 탭 → **Breakpoint** → **+** 버튼을 탭합니다.
* 규칙의 필드(Title, Method, Matching URL, 하위 경로 포함 여부)를 입력합니다.
* 규칙을 요청, 응답 또는 둘 다에 적용할지 선택합니다.

2. "Waiting Breakpoints" 화면에서

* Waiting Breakpoint 아이콘을 탭한 다음 **Create Breakpoint Rule**을 선택합니다.
* 그다음 규칙을 입력합니다(앞의 방법과 같습니다).

3. 컨텍스트 메뉴에서

* 요청을 길게 누른 다음 **Add to Breakpoint List**를 선택합니다.
* Proxyman이 선택한 요청으로 규칙의 모든 필드를 자동으로 채웁니다.

![httpbin.org로 채워진 규칙을 여는 Add to Breakpoint List가 있는 Proxyman for iOS 컨텍스트 메뉴](https://proxyman.com/docs/assets/image%20(4).png)

_요청으로 Breakpoint 규칙 만들기_

이 예제에서는 Breakpoint 규칙이 요청과 응답 모두에 적용됩니다. 요청을 보내서 동작을 확인해 보겠습니다.

## HTTP(s) 요청 수정하기 {#modify-https-requests}

URL과 일치하는 요청을 보내면 Proxyman이 요청을 일시 중지하고 대기 중인 Breakpoint가 있다는 것을 표시합니다. 홈 화면에서 작은 아이콘을 탭하면 대기 중인 Breakpoint 목록을 볼 수 있습니다. 그다음 Breakpoint를 선택해 요청 편집을 시작합니다.

### URL + Method 수정하기 {#modify-url--method}

HTTP 메서드, URL, 쿼리를 변경할 수 있습니다. 쿼리를 변경하면 URL이 업데이트되고, 반대로 URL을 변경하면 쿼리도 업데이트됩니다.

![수정된 URL 쿼리와 HTTP 메서드 메뉴가 열려 있는 Proxyman for iOS Breakpoint 요청 편집기](https://proxyman.com/docs/assets/image%20(18).png)

_URL과 HTTP 메서드 수정하기_

### 본문 수정하기 {#modify-body}

본문을 다른 데이터 타입으로 바꾸면 Proxyman이 Content-Type을 감지하고 헤더를 자동으로 업데이트합니다.

## Breakpoint 실행, 중단, 계속하기 {#execute-abort-continue-breakpoint}

변경 내용이 만족스러우면 오른쪽 상단 메뉴에서 요청 또는 응답을 실행합니다. 원래 요청을 유지하려면 **Continue**를, 요청을 취소하려면 **Abort**를 사용합니다.

Breakpoint 규칙이 요청과 응답 모두에 적용되므로, **Execute**를 탭하면 응답이 대기 중인 Breakpoint 목록에 추가됩니다.

이제 응답의 HTTP 상태 코드를 변경하거나, 헤더를 업데이트하거나, 본문을 교체할 수 있습니다(요청을 수정할 때와 같은 방법입니다).

잘하셨습니다! 플로우 목록에서 작은 파란색 아이콘은 해당 플로우가 수정되었음을 나타냅니다.

요청과 응답이 모두 예상대로 업데이트되었습니다.

![Breakpoint로 실행된 Proxyman for iOS 요청 상세 정보와 새 응답 본문](https://proxyman.com/docs/assets/image%20(9).png)

_Breakpoint로 요청과 응답이 수정됨_

**참고**:

* 새 규칙을 만들면 Breakpoint 도구와 규칙이 모두 기본적으로 활성화됩니다. 필요에 따라 켜거나 끌 수 있습니다.
* Breakpoint가 작동하려면 VPN, Breakpoint 도구, Breakpoint 규칙이 모두 활성화되어 있는지 확인하세요.
* 첫 번째 규칙이 요청이나 응답과 일치하면 다른 규칙은 적용되지 않습니다.
* 요청을 편집하는 동안에는 Response 탭이 비활성화됩니다. 응답을 편집하는 동안에는 Request 탭이 읽기 전용입니다.

## 다음 단계 {#whats-next}

Breakpoint 도구로 요청과 응답을 실시간으로 수정할 수 있지만, 수작업이 많이 필요합니다. 이를 자동화하려면 [iOS용 Proxyman Map Local 튜토리얼](https://proxyman.com/docs/ko/proxyman-ios/tutorial-for-ios/map-local-for-ios-tutorial)을 확인해 로컬 파일을 응답으로 자동 매핑해 보세요.
