아이디어스 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 기간마다 특정 응답이나 오류 상황을 만들어달라는 요청이 반복된다면, 서버를 건드리지 않고 클라이언트 쪽에서 응답을 조작해 확인하는 방법을 익힐 수 있다.