로컬 환경에 빠른 테스트 루프를 만드는 것은 높은 생산성과 직결된다.
Chales 같은 리버스 프록시는 사용하면, 초기 디버깅에 필요한 정보는 물론, 프로덕션 서비스를 테스트 인터페이스로 사용 할 수 있다.
활용 사례:
- AOS, iOS 앱의 네트워크 트래픽 확인
- 장애 디버깅 시 빠르게 요청 API 확인 가능
- 스마트폰에 로컬 컴퓨터 VPN 적용
- 스마트폰에 VPN 설정하지 않아도 됨
- AOS, iOS 앱의 요청 HOST 변경
- 서버에 변경 범위가 큰 PR을 적용하기 전 로컬에서 빠른 확인
(저는 python2 -> python3 버전업을 진행할 때 유용하게 사용했습니다.) - WEBVIEW 개발 시 프로덕션 앱에서 로컬 주소를 바라보도록 변경
- 서버에 변경 범위가 큰 PR을 적용하기 전 로컬에서 빠른 확인
문서: https://www.charlesproxy.com/documentation/
다운로드: https://www.charlesproxy.com/download/
Mac Charles 설정

Charles를 다운로드하고 실행하면 로컬 컴퓨터의 HTTP 요청을 모니터링할 수 있다.
HTTPS는 SSL Proxying 설정을 해야한다.
Mac <- HTTPS -> Charles <- HTTPS or HTTP -> Original Dest
Charles가 Mac의 HTTPS 통신 주체가 되기 떄문에 Charles의 인증서를 신뢰해야한다.
Help > SSL Proxying > Install Charles Root Certificate 에서 인증서를 설치한다.

인증서 허용

iOS Charles 설정
컴퓨터와 iOS 기기가 같은 네트워크에 있어야 한다. Charles에서 Help > Local Ip Address를 클릭해 private 주소를 확인하고 입력한다.

이제 iOS에서 만들어지는 네트워크 요청은 Charles를 향한다.
하지만 동일하게 IOS에서도 Charles 인증서를 신뢰해야한다.
핸드폰에 Charles가 연결된 상태에서 https://chls.pro/ssl 해당 주소로 접속하면 인증서가 설치
아이폰 “설정 > 일반 > 정보 > 인정서 신뢰 설정”에서 설치한 인증서를 신뢰

요청 변경하기
Charles에서 Toos > Rewrite에서 설정을 통해 요청을 변경 할 수 있다.

