네트워크2024. 3. 30. 06:15

찰스 프록시(Charles Proxy)는 웹 개발 및 디버깅을 위한 HTTP 및 HTTPS 트래픽을 모니터링하고 조작하는 데 사용되는 디버깅 프록시 서버 소프트웨어입니다. 이 도구를 사용하면 웹 응용 프로그램이 서버와 어떻게 통신하는지를 실시간으로 확인하고, 요청 및 응답 데이터를 조작할 수 있습니다.

주요 기능은 다음과 같습니다:

1. **트래픽 모니터링**: Charles를 사용하면 클라이언트와 서버 간의 모든 HTTP 및 HTTPS 트래픽을 실시간으로 모니터링할 수 있습니다. 이를 통해 요청 및 응답 데이터의 내용, 헤더, 쿠키 등을 살펴볼 수 있습니다.

2. **요청 및 응답 수정**: Charles를 사용하여 요청 및 응답 데이터를 수정하고 조작할 수 있습니다. 이를 통해 개발자는 응용 프로그램이 예기치 않은 데이터에 어떻게 반응하는지 테스트하고 디버깅할 수 있습니다.

3. **성능 분석**: Charles는 웹 응용 프로그램의 성능을 분석하는 데 사용될 수 있습니다. 네트워크 지연, 리소스 로드 시간 등을 측정하여 성능 문제를 해결하는 데 도움을 줍니다.

4. **SSL 프록싱**: HTTPS 트래픽을 복호화하여 보안 연결에 대한 내용을 확인할 수 있습니다. 이를 통해 HTTPS 트래픽도 모니터링하고 수정할 수 있습니다.

Charles Proxy는 웹 개발자 및 QA 엔지니어들 사이에서 매우 인기 있는 도구 중 하나이며, 웹 애플리케이션의 디버깅 및 테스트 프로세스를 단순화하고 개선하는 데 사용됩니다.

찰스 프록시 툴을 사용하여 비밀번호 변경 API의 유효성 검사나 이미지 파일 또는 숫자 데이터의 유효성 검사를 하는 것은 가능합니다. 이를 수행하기 위해서는 "Breakpoints"나 "Rewrite" 기능을 사용하여 요청을 가로채고 수정할 수 있습니다. Compose 기능은 요청을 수정하거나 조작하는 데 도움이 될 수 있습니다.

찰스 프록시(Charles Proxy) 툴의 Compose 기능은 주로 HTTP 요청을 수동으로 생성하고 수정할 때 사용됩니다. 비밀번호 변경과 같은 API 테스트 시, Compose 기능을 사용하여 요청 본문(body)에 비밀번호를 포함시키고, 해당 요청을 서버로 전송하여 응답을 확인함으로써 유효성 검사를 할 수 있습니다. 예를 들어, 비밀번호 변경 API에 대한 요청을 Compose로 생성하고, 서버가 요구하는 비밀번호 조건(예: 길이, 특수 문자 포함 등)을 충족하는지 확인할 수 있습니다.

 

Charles Proxy에서의 Breakpoints(중단점)은 클라이언트와 서버 간의 통신을 가로채어 특정 요청이나 응답을 중지하거나 수정하는 데 사용됩니다. 일반적으로는 특정 조건이 충족될 때만 트래픽을 중지시키는 데 활용됩니다.

Charles Proxy에서 Breakpoints를 설정하면 다음과 같은 일이 발생합니다:

1. **요청 중단**: 설정한 조건이 충족되면 해당 요청이 서버로 전송되기 전에 중단됩니다.

2. **요청 및 응답 수정**: Breakpoints에서 중단된 요청 또는 응답을 확인하고 수정할 수 있습니다. 예를 들어, 요청의 본문을 수정하거나 헤더를 변경하여 서버로 전송되는 데이터를 조작할 수 있습니다.

3. **조건부 중단**: 특정 조건이 충족될 때만 Breakpoints가 활성화되도록 설정할 수 있습니다. 예를 들어, 특정 URL이나 특정 헤더를 가진 요청에만 중단점을 설정할 수 있습니다.

4. **트래픽 모니터링**: Breakpoints를 통해 중단된 요청 및 응답의 내용을 확인하고 분석할 수 있습니다. 이를 통해 네트워크 트래픽을 모니터링하고 디버깅할 수 있습니다.

Charles Proxy의 Breakpoints는 웹 응용 프로그램을 디버깅하거나 테스트할 때 매우 유용한 기능입니다. 이를 통해 요청과 응답을 중단하고 조작하여 원하는 동작을 확인하고 문제를 해결할 수 있습니다.

 

Charles Proxy의 Rewrite(재작성) 기능은 클라이언트와 서버 간의 트래픽을 수정하고 변경하는 데 사용됩니다. 이 기능을 사용하여 요청 및 응답의 일부 또는 전체를 수정하거나 대체할 수 있습니다. 주요 기능은 다음과 같습니다:

1. **요청 및 응답 수정**: Rewrite 기능을 사용하여 요청이나 응답의 내용을 수정할 수 있습니다. 예를 들어, URL, 헤더, 본문 등을 변경하거나 추가할 수 있습니다.

2. **패턴 일치**: Rewrite는 정규 표현식을 사용하여 특정 패턴에 일치하는 요청 및 응답을 수정할 수 있습니다. 이를 통해 특정 URL이나 특정 데이터를 가진 요청을 캡처하고 수정할 수 있습니다.

3. **조건부 수정**: Rewrite 규칙을 설정하여 특정 조건이 충족될 때에만 요청 및 응답을 수정할 수 있습니다. 예를 들어, 특정 URL 패턴이나 특정 헤더를 가진 요청에만 Rewrite를 적용할 수 있습니다.

4. **HTTP → HTTPS 변환**: Rewrite를 사용하여 HTTP 요청을 HTTPS로 변경하거나 반대로 HTTPS 요청을 HTTP로 변경할 수 있습니다.

5. **리버스 프록시 기능**: Rewrite를 사용하여 클라이언트가 요청하는 URL을 다른 서버로 리디렉션할 수 있습니다. 이는 로컬 서버를 운영 중인 동일한 호스트 또는 외부 서버로 요청을 전송할 때 유용합니다.

Rewrite 기능을 사용하면 Charles Proxy를 통해 웹 응용 프로그램의 동작을 수정하고 제어할 수 있습니다. 이를 통해 웹 개발자 및 QA 엔지니어는 특정 상황에서의 응용 프로그램의 동작을 시뮬레이션하고 테스트할 수 있습니다.

 


비밀번호 변경 API의 경우, 유효성 검사를 추가하려면 다음과 같은 절차를 따를 수 있습니다:

1. **Breakpoint 설정**: 비밀번호 변경 요청이 전송되는 지점에 Breakpoint를 설정합니다.
2. **요청 수정**: Breakpoint에서 요청을 중단하고, 요청 본문을 살펴봅니다.
3. **유효성 검사 추가**: 요청 본문에서 새 비밀번호의 형식을 확인하고, 필요한 경우 유효성 검사를 추가합니다. 이를 위해 Compose 기능을 사용하여 요청을 수정할 수 있습니다.
4. **요청 재전송**: 수정된 요청을 다시 전송하여 서버로 보냅니다.

이와 유사하게 이미지 파일이나 숫자 데이터에 대한 유효성 검사를 수행할 수 있습니다. 예를 들어, 사업자 등록 번호의 유효성을 확인하려면 다음 단계를 따를 수 있습니다:

1. **Breakpoint 설정**: 사업자 등록 번호를 입력하는 요청이 전송되는 지점에 Breakpoint를 설정합니다.
2. **요청 수정**: Breakpoint에서 요청을 중단하고, 요청 본문을 확인합니다.
3. **유효성 검사**: 사업자 등록 번호의 형식을 확인하고, 필요한 경우 유효성 검사를 추가합니다.
사업자등록증 이미지 파일이나 사업자등록번호의 유효성 검사는 찰스 프록시 툴로 직접적으로 수행하기 어렵습니다. 이미지 파일의 경우, 찰스 프록시는 이미지 내용을 분석하는 기능을 제공하지 않으며, 사업자등록번호의 경우에는 해당 번호의 형식적 유효성을 코드를 통해 검증할 수는 있지만, 실제로 유효한 사업자번호인지 여부는 공공데이터포털 API와 같은 외부 서비스를 통해 확인해야 합니다.

찰스 프록시 툴은 주로 웹 디버깅과 네트워크 트래픽 분석, 그리고 API 테스트에 유용하게 사용됩니다. 따라서, 사업자등록증 이미지의 유효성 검사나 사업자등록번호의 실제 유효성 검사는 찰스 프록시 툴의 기능 범위를 벗어납니다. 이러한 검증 작업은 보통 OCR(Optical Character Recognition) 기술을 사용하는 이미지 처리 툴이나, 공공데이터포털과 같은 API를 활용하여 수행됩니다.

4. **요청 재전송**: 수정된 요청을 다시 전송하여 서버로 보냅니다.

이러한 작업을 수행할 때 Compose 기능을 사용하여 요청을 수정하고 재전송할 수 있습니다. Compose 기능은 요청의 본문을 수정하고 조작하는 데 유용합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터