프록시(Proxy)
중간자역할
- 클라이언트(앱/브라우저)와 서버 사이에서 오가는 네트워크 트래픽을 중계
- 데이터가 지나가는 길목에서 관찰/조작하는 도구
주요기능
- 요청/응답을 전달하거나 가로채서 수정
- 보안, 캐싱, 로깅 등 네트워크 관리
예시
- mitmproxy
- Charles Proxy
- Fiddler
테스트 시나리오 예시
앱 로그인 시 API 호출 및 응답 검증
1. 앱에서 로그인 버튼 클릭
2. mitmproxy or Charles Proxy를 켠 후, 앱과 서버 간 네트워크 트래픽 관찰
3. 로그인 버튼 클릭 시 API가 호출되는지 확인
4. 요청 헤더와 바디에 암호화된 비밀번호, 토큰, User-Agent 등의 값이 정상적으로 들어가는지 확인
5. 응답 값이 앱에 제대로 반영되는지 확인
6. 필요시, 응답을 수정(성공 → 실패) 해서 앱이 에러 처리를 잘하는지 테스트
번외)
mitmproxy란?
- Proxy의 한 종류로, HTTP(S) 트래픽을 가로채고, 분석하고, 수정할 수 있도록 만든 오픈소스 툴
- 프록시라는 큰 개념 안에서 QA/보안/디버깅 목적에 특화된 도구
API
서버가 제공하는 기능(인터페이스)
- 애플리케이션이 서로 소통하기 위해 정해둔 규칙
- 일종의 서버가 제공하는 사용설명서
주요기능
- 서버가 제공하는 서비스를 클라이언트가 호출할 수 있도록 제공
- HTTP/HTTPS 기반 REST API, GraphQL, gRPC 등의 방식으로 구현
예시
테스트 시나리오 예시
로그인 API 정상 동작 확인:
1. Postman으로 POST /login API 호출
2. 올바른 아이디/비밀번호를 입력했을 때 → 200 OK
3. 잘못된 비밀번호 입력했을 때 → 401과 같은 에러노출
4. 응답 Body, Status Code, 응답 시간 등을 검증