pile·
백엔드·아이디어스아이디어스·

도와줘요, 찰스(Charles)! 업무 효율 높이는 웹 디버깅 프록시 툴 사용법

아이디어스 API셀이 웹 디버깅 프록시 도구 Charles를 실무에 쓰는 방법을 정리한 글이다. 온보딩 문서에서 이름만 보고 넘겼던 도구를 QA 기간의 반복되는 API 작업 요청을 계기로 다시 붙잡게 된 경위로 시작한다. 설정 방법은 생략하고 상태 코드 변경 같은 활용 팁 중심으로 간다.

핵심 포인트
  • Charles는 네트워크 흐름을 모니터링하고 프록시로서 특정 요청과 응답을 조작할 수 있는 도구다.
  • 30일 무료 사용 후에는 라이선스를 사야 한다.
  • 프록시 설정은 SSL Proxying과 Recording 두 곳에 같은 호스트를 등록하고 둘 다 시작해야 동작한다.
  • 서브도메인에 와일드카드를 쓰면 그 도메인으로 들어오는 통신을 한 번에 잡을 수 있다.
  • 경로가 비어 있고 데이터가 알아볼 수 없게 보이면 SSL Proxying이 꺼져 있는 상태다.
  • Rewrite 기능으로 요청 헤더나 응답 본문, HTTP 상태 코드를 원하는 값으로 바꿔 테스트할 수 있다.
상세 정리
  • 도입 경위: 온보딩 위키에 계정 신청과 VPN, 개발 환경 설정이 정리돼 있었고 익숙한 도구들 사이에 이 도구만 낯설었다.
  • 첫 시도의 실패: 계정을 발급받아 켜봤지만 용도를 몰라 금방 껐고, 도구를 익히는 것보다 본 업무 적응이 급했다.
  • 다시 꺼낸 계기: 여러 스프린트를 돌던 중 QA 기간마다 반복되는 API 작업 요청을 어떻게 대응할지 고민이 생겼다.
  • 조언의 경로: 프로젝트 리더가 프록시 아이디어를 주었고 셀 리더가 조직에서 쓰는 도구로 이것을 알려줬다.
  • 조직 구조 설명: 프로젝트마다 각 파트 개발자가 모이고 그중 개발 방향을 이끄는 프로젝트 리더가 정해지며, 셀 리더는 소속 셀의 테크 리더다.
  • 도구의 정의: 디버깅을 위해 원하는 네트워크 흐름을 모니터링하고, 프록시 서버 역할로 특정 요청과 응답을 다룰 수 있다.
  • 전제: 이 글은 도구와 휴대폰 연동이 끝난 상태를 가정한다.
  • 설정 1: SSL Proxying 설정 메뉴에서 기능을 켜고 호스트명과 포트를 등록한다. 버전에 따라 메뉴 순서가 다를 수 있다.
  • 와일드카드 활용: 서브도메인 자리를 별표로 두면 해당 도메인으로 오는 모든 통신을 허용할 수 있다.
  • 설정 2: Recording 설정 메뉴의 포함 목록에 같은 호스트 정보를 등록한다. 화면에서 모니터링할 대상을 정하는 부분이다.
  • 설정 3: 두 기능을 모두 시작한다. 중지 상태면 메뉴가 시작 문구로 표시되고 아이콘이 흑백이라 아무 동작도 하지 않는 상태임을 알 수 있다.
  • 모니터링의 효용: 앱을 연동해 실행하면 어떤 API를 어떤 값으로 호출하는지 보이고 응답 확인, 특히 오류 상황 파악이 쉬워진다.
  • 흔한 실수: 경로가 비고 데이터가 판독 불가로 보이면 SSL Proxying이 비활성 상태이므로 Recording과 함께 켜야 한다.
  • Rewrite의 범위: 요청과 응답 데이터를 원하는 대로 다룰 수 있어 요청 헤더 수정이나 응답 본문 일부 변경이 가능하다.
  • 상태 코드 변경 절차: Rewrite 메뉴에서 기능을 켜고 규칙을 추가한 뒤 대상 API의 호스트와 경로를 입력한다.
  • 경로 패턴: 일정한 형식의 엔드포인트를 한 번에 다루려면 변하는 부분에 와일드카드를 넣는다.
  • 규칙 지정: 유형을 응답 상태로 고르고, 대상이 될 상태 코드와 바꿀 값을 각각 입력한다. 정규식을 지원해 특정 대역 전체를 치환할 수도 있다.
왜 읽나QA 기간마다 특정 응답이나 오류 상황을 만들어달라는 요청이 반복된다면, 서버를 건드리지 않고 클라이언트 쪽에서 응답을 조작해 확인하는 방법을 익힐 수 있다.
아이디어스
아이디어스 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2