개발 프록시 시작
개발 프록시는 복원력 있는 앱을 빌드하는 데 도움이 되는 클라우드 API의 동작 및 오류를 시뮬레이션하는 데 도움이 되는 명령줄 도구입니다.
이 자습서에서는 개발 프록시를 설치, 실행 및 구성하는 방법을 알아봅니다.
문제가 발생하면 새 문제를 제기하여 주저하지 말고 연락해 주시면 기꺼이 도와드리겠습니다.
개발 프록시 설치
개발 프록시를 설치하는 가장 쉬운 방법은 winget을 사용하는 것입니다. 또는 개발자 프록시를 수동으로 설치할 수 있습니다.
winget을 사용하여 개발 프록시를 설치하려면 다음 명령을 실행합니다.
winget install Microsoft.DevProxy --silent
중요
개발 프록시 설치 관리자는 PATH에 새 항목을 추가합니다. 설치 후 개발 프록시를 사용하려면 명령 프롬프트를 다시 시작하여 PATH 환경 변수가 새로 고쳐지도록 해야 합니다.
개발자 프록시를 설치하는 가장 쉬운 방법은 Homebrew 사용하는 것입니다. 또는 개발자 프록시를 수동으로 설치할 수 있습니다.
처음으로 개발 프록시 시작
컴퓨터에서 개발자 프록시를 처음 시작할 때 개발자 프록시가 컴퓨터의 요청을 가로채 성공적으로 응답할 수 있도록 몇 가지 단계를 수행해야 합니다. 첫 번째 실행 후에는 이러한 단계를 반복할 필요가 없습니다.
- 개발 프록시를 시작합니다. 명령 프롬프트 세션을 엽니다.
devproxy
을 입력하고 Enter 키를 누릅니다. - 인증서를 신뢰합니다. 개발자 프록시는 라는
Dev Proxy CA
인증서를 설치합니다. 경고가 표시됩니다. 인증서를 설치할 것인지 확인하려면 선택합니다Yes
. 개발자 프록시는 이 인증서를 사용하여 컴퓨터에서 보낸 HTTPS 트래픽의 암호를 해독합니다. - 방화벽 액세스를 허용합니다. Windows 방화벽은 프록시를 차단합니다. 경고가 표시됩니다. 단추를 선택하여
Allow access
방화벽을 통한 트래픽을 허용합니다.
- 개발 프록시를 시작합니다. 명령 프롬프트 세션을 엽니다.
devproxy
을 입력하고 Enter 키를 누릅니다. - 인증서를 신뢰합니다. 개발자 프록시는 라는 인증서를 설치합니다. 이 인증서
Dev Proxy CA
는 컴퓨터에서 보낸 HTTPS 트래픽의 암호를 해독하는 데 사용합니다. 경고가 표시됩니다. y 키를 눌러 인증서를 신뢰할 수 있는지 확인합니다. - 들어오는 연결을 허용합니다. 경고가 표시됩니다. 를 선택하여
Allow
확인합니다.
명령 프롬프트에 다음 출력이 표시됩니다.
8 error responses loaded from devproxy-errors.json
Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
기본적으로 개발자 프록시는 다음으로 구성됩니다.
- JSON 자리 표시자 API 엔드포인트에 대한 가로채기 요청
- 실패율이 50%인 API 오류 응답 및 API 제한을 시뮬레이션합니다.
인터셉트 요청
개발자 프록시는 컴퓨터의 모든 애플리케이션에서 알려진 URL에 대한 요청을 가로채게 됩니다. 요청이 감지되면 개발자 프록시가 요청을 통해 API에 전달하거나(아무 작업도 수행하지 않음) 응답을 반환합니다.
- 명령줄에서 JSON 자리 표시자 API에 요청을 보내고 프록시 프로세스로 다시 전환하여 출력을 봅니다.
PowerShell에서 cmdlet을 Invoke-WebRequest
사용하여 JSON 자리 표시자 API에 GET 요청을 보냅니다.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
를 사용하는 curl
경우 다음 명령을 사용하여 JSON 자리 표시자 API에 GET 요청을 보냅니다.
curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts
Postman과 같은 API 클라이언트를 사용하여 GET 요청을 https://jsonplaceholder.typicode.com/posts
에 보낼 수도 있습니다.
들어오는 요청 및 개발자 프록시가 수행한 작업에 대한 몇 가지 기본 정보가 포함된 항목이 표시됩니다. 개발 프록시는 50% 확률로 오류 응답을 시뮬레이션합니다. 요청이 오류를 반환하지 않으면 개발자 프록시가 오류를 전달합니다.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
- 오류 응답이 반환될 때까지 명령줄에서 JSON 자리 표시자 API로 요청을 반복합니다.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 403 Forbidden
╰ GET https://jsonplaceholder.typicode.com/posts
개발자 프록시가 오류 응답을 반환하면 chaos
항목에 레이블이 표시됩니다.
- JSON 자리 표시자 API에서 사용할 수 있는 다른 엔드포인트로 요청을 보내 보세요.
https://jsonplaceholder.typicode.com/posts
https://jsonplaceholder.typicode.com/posts/1
https://jsonplaceholder.typicode.com/posts/1/comments
https://jsonplaceholder.typicode.com/comments?postId=1
안전하게 개발 프록시 중지
더 이상 개발 프록시를 실행할 필요가 없는 경우 항상 안전하게 중지해야 합니다.
- Ctrl + C를 눌러 개발 프록시를 안전하게 중지합니다.
명령 프롬프트 세션을 종료하는 경우 개발자 프록시가 시스템 프록시로 올바르게 등록을 취소하지 않으며 몇 가지 일반적인 문제가 발생할 수 있습니다.
URL을 watch 업데이트
기본적으로 개발자 프록시는 JSON 자리 표시자 API에 대한 모든 요청을 가로채도록 구성됩니다. HTTP API에 대한 요청을 가로채도록 개발 프록시를 구성할 수 있습니다.
- 명령 프롬프트에서 를 실행
brew list dev-proxy
하여 설치 폴더를 찾습니다. - Finder에서 개발 프록시 설치 폴더를 엽니다.
- 개발자 프록시 설치 폴더의 텍스트 편집기에서 을 엽니다
devproxyrc.json
. - 배열을 찾습니다
urlsToWatch
.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
배열은 urlsToWatch
알려진 URL을 나타냅니다. 개발자 프록시는 현재 항목에서 모든 엔드포인트로의 요청을 감시합니다. 항목은 URL 뒤의 별표를 와일드카드로 사용합니다. 이 배열에 항목을 더 추가하면 개발자 프록시가 감시하는 URL이 확장됩니다.
개발자 프록시가 특정 엔드포인트에 대한 요청을 가로채지 않도록 하겠습니다.
- 배열에 새 항목을 추가합니다
urlsToWatch
.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
URL의 시작 부분에 있는 느낌표는 해당 URL과 일치하는 모든 요청을 무시하도록 개발자 프록시에 지시합니다. URL에서 느낌표와 별표를 혼합하고 일치시킬 수 있습니다.
- 명령줄에서 를 입력
devproxy
하고 Enter 키를 눌러 개발 프록시를 시작합니다. - 명령줄에서 에
https://jsonplaceholder.typicode.com/posts/2
요청을 보내고 출력을 봅니다.
요청이 무시되고 API로 전달되었는지 확인하는 항목이 표시됩니다.
request GET https://jsonplaceholder.typicode.com/posts/2
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts/2
배열에 URL이 나열되는 urlsToWatch
순서가 중요합니다. Dev Proxy는 이러한 URL을 순서대로 처리합니다. URL이 일치하면 다시 처리되지 않습니다. 따라서 URL을 먼저 배치하면 다음 URL이 처리되기 전에 요청이 무시됩니다.
실패율 변경
기본적으로 개발자 프록시는 감시 중인 URL에 대한 50% 확률로 요청을 실패하도록 구성됩니다. 요청이 오류 응답을 반환할 가능성을 늘리거나 줄일 수 있습니다.
JSON 자리 표시자 API에 대한 모든 요청이 오류 응답을 반환하도록 실패율을 업데이트해 보겠습니다.
- 개발자 프록시 설치 폴더의 텍스트 편집기에서 을 엽니다
devproxyrc.json
. rate
속성을 찾고 값을50
에서100
로 업데이트합니다.
파일에는 devproxyrc.json
개발자 프록시를 시작할 때 사용되는 구성 설정이 포함되어 있습니다. 구성 설정을 변경할 때 변경 내용을 유지하려면 항상 개발자 프록시를 중지하고 시작해야 합니다.
- 명령줄에서 를 입력
devproxy
하고 Enter 키를 눌러 개발 프록시를 시작합니다. - 명령줄에서 JSON 자리 표시자 API에 요청을 보내고 출력을 봅니다.
또는 개발자 프록시를 시작할 때 옵션을 사용하여 런타임에 구성 설정을 재정의 --failure-rate
할 수 있습니다.
devproxy --failure-rate 100
- Ctrl + C를 눌러 개발 프록시를 안전하게 중지합니다.
제한 시뮬레이션
기본적으로 개발자 프록시는 제네릭 400 및 500 오류 응답 범위를 반환합니다. 이러한 오류 응답을 사용자 고유의 요구에 맞게 사용자 지정할 수 있습니다.
개발자 프록시는 플러그 인 을 사용하여 다른 API 동작을 사용하도록 설정합니다. 기본적으로 두 개의 플러그 인을 사용하도록 설정합니다.
- GenericRandomErrorPlugin 플러그 인은 개발자 프록시가 오류 응답으로 응답하는 기능을 제공합니다.
- RetryAfterPlugin 플러그 인은 Dev Proxy가 오류 응답의 Retry-After 헤더에 동적 값을 삽입하는 기능을 제공합니다.
Dev Proxy가 항상 오류 응답을 반환 429 Too Many requests
하여 제한을 시뮬레이션하도록 구성을 변경해 보겠습니다.
먼저 오류 정의가 포함된 파일의 위치를 찾아 보겠습니다.
- 개발자 프록시 설치 폴더의 텍스트 편집기에서 을 엽니다
devproxyrc.json
. - 배열에서
plugins
GenericRandomErrorPlugin 플러그 인에 대한 항목을 찾습니다. 속성 값을 적어 둡니다configSection
. - 파일 아래로 개체를 찾습니다
genericRandomErrorPlugin
. 속성 값을 적어 둡니다errorsFile
.
팁
개발자 프록시를 시작할 때 오류 파일의 위치도 출력에 표시됩니다.
- 개발자 프록시 설치 폴더의 텍스트 편집기에서 을 엽니다
devproxy-errors.json
. - 응답을 제외한
429
배열의responses
모든 응답 항목을 제거합니다.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/genericrandomerrorplugin.schema.json",
"responses": [
{
"statusCode": 429,
"body": {
"message": "Too Many Requests",
"details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
},
"headers": {
"Retry-After": "@dynamic"
}
}
]
}
- 명령줄에서 를 입력
devproxy
하고 Enter 키를 눌러 개발 프록시를 시작합니다. - 명령줄에서 JSON 자리 표시자 API에 요청을 보내고 출력을 봅니다.
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 429 TooManyRequests
╰ GET https://jsonplaceholder.typicode.com/posts
- Ctrl + C를 눌러 개발 프록시를 안전하게 중지합니다.
다음 단계
개발자 프록시를 사용하여 사용자 고유의 애플리케이션에 대한 임의 오류를 시뮬레이션하는 방법을 알아봅니다.
Dev Proxy
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기