보통 어떤 공개되지 않은 웹 서비스를 디버깅해야 한다면, 우선 노출된 소스를 벗겨보거나 Web Inspector 혹은 Firebug와 같은 웹 브라우저에 내장된 디버거를 통해 일부나마 수집된 자료를 일일이 확인하고 자료의 시작점을 추적하는 작업을 거쳐야 하는데, 이는 무척이나 번거롭고 시간도 많이 잡아먹기 마련이다.
그런데 이런 일에 특화된 애플리케이션으로 웹 디버깅용 Proxy 애플리케이션인 Charles를 구독 중인 블로그 글에서 우연하게 발견하였다. Charles는 HTTP proxy를 구성해서 웹 클라이언트와 서버 사이를 오가는 통신을 가로채서 둘 사이의 모든 요청과 응답 그리고 HTTP headers를 적나라하게 보여주는 아주 막강한 웹 디버깅 애플리케이션이다.
비슷한 무료 애플리케이션으로 Wireshark라는 놈이 있는데 Mac에선 X11을 통해 실행되고 여러 가지 추가 설정이 필요해서 사용이 번거롭지만, 이에 반해 Charles를 실행하면 proxy 설정도 자동으로 해주고 덤으로 HTTPS 통신도 지원하는 이점이 있다.
Shareware($50)로 trial은 실행할 때마다 15분의 사용시간 제약이 있다.
이렇게 기능이 훌륭해서 좋은 의도를 가지고 쓰면 아주 생산적인 도구가 되겠지만, 반면 혹시 있을지 모를 보안상 취약점도 들출 수 있으므로 웹 서비스는 항상 보안에도 신경을 써야 함을 일깨워주기도 한다.
색다른 단지 모양의 로고가 이채로운데, 주로 웹 form에 POST 되는 정확한 요청 값을 알아내거나 JSON/XML 행태의 서버 응답 내용을 확인할 때도 아주 유용할 듯.