Proxyman으로 OpenAI Server-Sent Events 디버깅하기
이 튜토리얼에서 다루는 내용은 다음과 같습니다:
- macOS용 Proxyman 다운로드 및 설정
- iOS Chat GPT 샘플 앱을 실행하고 GPT-4o와 몇 차례 대화해 보기
- 클릭 한 번으로 iOS 시뮬레이터를 Proxyman과 연결해 HTTPS를 캡처할 준비하기
- Proxyman으로 OpenAI의 Server-Sent Events를 캡처하고 디버깅하기
이 튜토리얼을 마치면 Proxyman으로 OpenAI의 Server-Sent Events를 확인할 수 있습니다.

SSE 및 OpenAI 커스텀 탭을 사용하면 OpenAI의 Server-Sent Events도 쉽게 디버깅할 수 있습니다

1. Proxyman 시작하기
시작하기 전에 Mac에 Proxyman이 설치되어 있는지 확인하겠습니다.
- Proxyman 웹사이트에 접속해 macOS 버전을 다운로드합니다.
- 설치 프로그램을 실행해 Mac에 Proxyman을 설치합니다.
- Proxyman을 실행하고 Certificate 메뉴로 이동한 뒤 "Install Certificate for this Mac..."을 선택합니다.
- 화면의 안내에 따라 인증서 설치를 완료합니다.
- Proxyman 인증서에 초록색 체크 표시가 나타나 설치가 성공했는지 확인합니다.

위 단계를 따르면:
- Proxyman CA 인증서가 Mac에 설치되어, iOS 시뮬레이터의 HTTPS 트래픽을 캡처할 준비가 됩니다.
2. Proxyman으로 iOS 시뮬레이터 설정하기
iOS 시뮬레이터의 HTTPS 트래픽을 캡처하려면 Proxyman을 iOS 시뮬레이터와 연결해야 합니다.
- Xcode를 열고 이 샘플 앱 GPTClientApp-iOS를 다운로드한 뒤 iOS 18 시뮬레이터에서 실행합니다.
- Proxyman을 열고 Certificate 메뉴 -> Install Certificate for iOS -> Simulator로 이동합니다.
- "Prepare Simulators" 버튼을 클릭합니다.
- "Reboot" 버튼을 클릭한 뒤 Xcode에서 iOS 앱을 다시 실행합니다.
- 완료되었습니다! 이제 Proxyman으로 HTTPS 트래픽을 캡처할 수 있습니다.

Proxyman으로 iOS 시뮬레이터의 HTTPS 트래픽을 캡처하는 가장 간단하고 권장되는 방법입니다. Charles, Fiddler 등 다른 웹 프록시 도구처럼 HTTP 프록시를 수동으로 설정하고 자체 서명 인증서를 신뢰할 필요가 없습니다.
3. Proxyman으로 OpenAI의 Server-Sent Events 디버깅하기
- Xcode에서 iOS Chat GPT 샘플 앱을 실행하고 GPT-4o와 대화해 봅니다. 이 단계가 중요합니다. GPT 샘플 앱이 OpenAI API에 첫 요청을 보내야 Proxyman이 이를 캡처할 수 있기 때문입니다.
- Proxyman을 엽니다 -> Command + F를 눌러 "api.openai.com"을 검색합니다 -> OpenAI API로 보낸 첫 번째 요청이 나타납니다.

- Response 패널을 확인합니다 -> "Enable only this domain"을 클릭합니다.

이렇게 하면 Proxyman이 https://openai.com의 HTTPS 트래픽을 캡처하고 복호화합니다.
-
이제 iOS 앱을 다시 실행하고 GPT에 질문을 시작하세요.
-
이 시점에서 Proxyman의 Response Body에 OpenAI의 Server-Sent Events가 표시됩니다.

3.1 디버깅을 더 쉽게 하는 SSE 및 OpenAI 커스텀 탭 사용하기
Response Body를 보면 Server-Sent Events가 조각난 데이터를 여러 개 보내서 읽기 어렵다는 것을 알 수 있습니다.

읽기 쉽게 하려면 Response Body 상단의 "Prettify Body"를 클릭합니다. (찾을 수 없다면 Response Toolbar의 "+" 버튼을 클릭한 뒤 Response Column에서 "SSE"와 "OpenAI"를 선택하세요.)

짜잔! 이제 Proxyman에서 OpenAI의 Server-Sent Events를 훨씬 읽기 쉬운 형태로 볼 수 있습니다.
SSE 탭
- ✅ Proxyman은 SSE 데이터를 그대로 유지하면서 JSON 데이터를 보기 좋게 포맷합니다.

OpenAI 탭
- ✅ Proxyman은 OpenAI의 content 키 값을 모아 최종 결과를 보여 줍니다. ChatGPT 앱에서 보는 화면과 비슷합니다.

3.2 다음 단계
- Proxyman은 iOS 기기, iOS 시뮬레이터, Android 기기의 HTTPS 트래픽을 캡처할 수 있습니다.
스트림이 불완전해 보이면 마지막 이벤트, HTTP 상태, 이벤트 간 시간 간격을 확인하세요. 최근 OpenAI 프로젝트는 Responses API 또는 Chat Completions API로 스트리밍할 수 있으며, 두 경우 모두 Proxyman에서 원시 이벤트 순서를 확인할 수 있습니다. 스트림에는 개인적인 프롬프트와 출력이 포함될 수 있으므로, 로그를 공유하기 전에 authorization 값을 삭제하세요.
Proxyman은 고성능 macOS/Windows/Linux 앱으로, 개발자가 iOS 기기, iOS 시뮬레이터, Android 기기의 HTTPS 트래픽을 캡처할 수 있게 해 줍니다.
https://proxyman.com에서 다운로드하세요.
