개발자 프록시 시작

개발자 프록시는 복원력 있는 앱을 빌드하는 데 도움이 되는 클라우드 API의 동작 및 오류를 시뮬레이션하는 데 도움이 되는 명령줄 도구입니다.

이 자습서에서는 개발자 프록시를 설치, 실행 및 구성하는 방법을 알아봅니다.

당신이 어떤 어려움에 실행하는 경우, 새로운 문제를 제기하여 우리에게 연락하는 것을 주저하지 말고 우리는 당신을 도와 기쁘게 생각합니다.

개발 프록시 설치

개발 프록시를 설치하는 가장 쉬운 방법은 winget을 사용하는 것입니다. 또는 개발자 프록시를 수동으로 설치할 수 있습니다.

winget을 사용하여 개발 프록시를 설치하려면 다음 명령을 실행합니다.

winget install Microsoft.DevProxy --silent

Important

개발자 프록시 설치 관리자는 PATH에 새 항목을 추가합니다. 설치 후 개발 프록시를 사용하려면 명령 프롬프트를 다시 시작하여 PATH 환경 변수가 새로 고쳐지도록 해야 합니다.

참고 항목

최신 미리 보기 기능을 사용하려면 개발 프록시의 베타 버전을 설치합니다.

winget을 사용하여 개발 프록시를 설치하려면 다음 명령을 실행합니다.

winget install Microsoft.DevProxy.Beta --silent

개발 프록시의 베타 버전을 실행하려면 devproxy-beta

개발자 프록시를 설치하는 가장 쉬운 방법은 Homebrew를 사용하는 것입니다. 또는 개발자 프록시를 수동으로 설치할 수 있습니다.

Homebrew를 사용하여 개발 프록시를 설치하려면 다음 명령을 실행합니다.

brew tap microsoft/dev-proxy
brew install dev-proxy

참고 항목

최신 미리 보기 기능을 사용하려면 개발 프록시의 베타 버전을 설치합니다.

Homebrew를 사용하여 개발 프록시를 설치하려면 다음 명령을 실행합니다.

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

개발 프록시의 베타 버전을 실행하려면 devproxy-beta

개발자 프록시를 설치하는 가장 쉬운 방법은 설치 스크립트를 사용하는 것입니다. 또는 개발자 프록시를 수동으로 설치할 수 있습니다.

설치 스크립트를 사용하여 개발자 프록시를 설치하려면 다음 명령을 실행합니다.

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

PowerShell을 사용하는 경우 다음 명령을 실행합니다.

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

참고 항목

최신 미리 보기 기능을 사용하려면 개발 프록시의 베타 버전을 설치합니다.

설치 스크립트를 사용하여 개발자 프록시를 설치하려면 다음 명령을 실행합니다.

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

PowerShell을 사용하는 경우 다음 명령을 실행합니다.

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

개발 프록시의 베타 버전을 실행하려면 devproxy-beta

처음으로 개발 프록시 시작

컴퓨터에서 개발자 프록시를 처음 시작할 때는 개발자 프록시가 컴퓨터의 요청을 가로채고 성공적으로 응답할 수 있도록 몇 가지 단계를 수행해야 합니다. 첫 번째 실행 후에는 이러한 단계를 반복할 필요가 없습니다.

  1. 개발 프록시를 시작합니다. 명령 프롬프트 세션을 엽니다. devproxy를 입력하고 Enter 키를 누릅니다.
  2. 인증서를 신뢰합니다. 개발자 프록시는 라는 Dev Proxy CA인증서를 설치합니다. 경고가 표시됩니다. 인증서를 설치할지 확인하려면 선택합니다 Yes . 개발자 프록시는 이 인증서를 사용하여 컴퓨터에서 보낸 HTTPS 트래픽의 암호를 해독합니다.
  3. 방화벽 액세스를 허용합니다. Windows 방화벽은 프록시를 차단합니다. 경고가 표시됩니다. 방화벽을 통한 트래픽을 허용하려면 단추를 선택합니다 Allow access .
  1. 개발 프록시를 시작합니다. 명령 프롬프트 세션을 엽니다. devproxy를 입력하고 Enter 키를 누릅니다.
  2. 인증서를 신뢰합니다. 개발자 프록시는 컴퓨터에서 보낸 HTTPS 트래픽의 암호를 해독하는 데 사용하는 인증서를 Dev Proxy CA설치합니다. 경고가 표시됩니다. y 키를 눌러 인증서를 신뢰할 수 있는지 확인합니다.
  3. 들어오는 연결을 허용합니다. 경고가 표시됩니다. 확인하려면 선택합니다 Allow .
  1. 개발 프록시를 시작합니다. 명령 프롬프트 세션을 엽니다. devproxy를 입력하고 Enter 키를 누릅니다.

  2. 인증서를 신뢰합니다. 개발자 프록시는 사용자 지정 SSL 인증서를 사용하여 컴퓨터에서 보낸 HTTPS 트래픽의 암호를 해독합니다.

    Important

    Ubuntu에 대한 지침은 다음과 같습니다. 다른 Linux 배포판의 경우 단계가 다를 수 있습니다.

    인증서를 설치하고 신뢰하려면 새 명령 프롬프트에서 다음 명령을 실행합니다.

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

명령 프롬프트는 다음 출력을 표시합니다.

 info    8 error responses loaded from devproxy-errors.json
 info    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에 대한 요청을 가로채게 됩니다. 요청이 감지되면 Dev Proxy가 요청을 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% 확률로 오류 응답을 시뮬레이션합니다. 요청이 오류를 반환하지 않으면 개발자 프록시가 오류를 전달합니다.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • 오류 응답이 반환될 때까지 명령줄에서 JSON 자리 표시자 API로 요청을 반복합니다.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 403 Forbidden

개발자 프록시가 오류 응답을 반환하면 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 업데이트

기본적으로 개발자 프록시는 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에서 느낌표와 별표를 혼합하고 일치시킬 수 있습니다.

  • 명령줄에서 Enter 키를 눌러 devproxy 개발 프록시를 시작합니다.
  • 명령줄에서 요청을 https://jsonplaceholder.typicode.com/posts/2 보내고 출력을 봅니다.

무시된 URL이 요청과 일치하면 개발자 프록시가 요청을 처리하지 않으므로 출력이 표시되지 않습니다.

배열에 URL이 나열되는 urlsToWatch 순서가 중요합니다. 개발자 프록시는 이러한 URL을 순서대로 처리합니다. URL이 일치하면 다시 처리되지 않습니다. 따라서 URL을 먼저 배치하면 다음 URL이 처리되기 전에 요청이 무시됩니다.

실패율 변경

기본적으로 개발자 프록시는 감시 중인 URL에 대한 50% 확률로 요청을 실패하도록 구성됩니다. 요청이 오류 응답을 반환할 가능성을 늘리거나 줄일 수 있습니다.

JSON 자리 표시자 API에 대한 모든 요청이 오류 응답을 반환하도록 실패율을 업데이트해 보겠습니다.

  • 개발자 프록시 설치 폴더의 텍스트 편집기에서 엽니다 devproxyrc.json .
  • rate 속성을 찾고 값을 50에서 100로 업데이트합니다.

파일에는 devproxyrc.json 개발자 프록시를 시작할 때 사용되는 구성 설정이 포함되어 있습니다. 구성 설정을 변경할 때 변경 내용을 유지하려면 항상 개발자 프록시를 중지하고 시작해야 합니다.

  • 명령줄에서 Enter 키를 눌러 devproxy 개발 프록시를 시작합니다.
  • 명령줄에서 JSON 자리 표시자 API에 요청을 보내고 출력을 봅니다.

또는 개발자 프록시를 시작할 때 옵션을 사용하여 런타임에 구성 설정을 재정의 --failure-rate 할 수 있습니다.

devproxy --failure-rate 100
  • Ctrl + C를 눌러 개발 프록시를 안전하게 중지합니다.

제한 시뮬레이션

기본적으로 개발자 프록시는 제네릭 400 및 500 오류 응답 범위를 반환합니다. 이러한 오류 응답을 사용자 고유의 요구에 맞게 사용자 지정할 수 있습니다.

개발자 프록시는 플러그 인을 사용하여 다른 API 동작을 사용하도록 설정합니다. 기본적으로 두 개의 플러그 인을 사용하도록 설정합니다.

  • GenericRandomErrorPlugin 플러그 인은 개발자 프록시가 오류 응답으로 응답하는 기능을 제공합니다.
  • RetryAfterPlugin 플러그 인은 개발자 프록시가 오류 응답에서 Retry-After 헤더에 동적 값을 삽입하는 기능을 제공합니다.

개발자 프록시가 항상 오류 응답을 반환 429 Too Many requests 하여 제한을 시뮬레이션하도록 구성을 변경해 보겠습니다.

먼저 오류 정의가 포함된 파일의 위치를 찾습니다.

  • 개발자 프록시 설치 폴더의 텍스트 편집기에서 엽니다 devproxyrc.json .
  • 배열에서 plugins GenericRandomErrorPlugin 플러그 인에 대한 항목을 찾습니다. 속성의 값을 확인합니다 configSection .
  • 파일 아래로 개체를 찾습니다 genericRandomErrorPlugin . 속성의 값을 확인합니다 errorsFile .

개발자 프록시를 시작할 때 오류 파일의 위치도 출력에 표시됩니다.

  • 개발자 프록시 설치 폴더의 텍스트 편집기에서 엽니다 devproxy-errors.json .
  • 응답을 제외한 배열의 responses 모든 응답 항목을 제거합니다 429 .
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://jsonplaceholder.typicode.com/*"
      },
      "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"
          }
        }
      ]
    }
  ]
}
  • 명령줄에서 Enter 키를 눌러 devproxy 개발 프록시를 시작합니다.
  • 명령줄에서 JSON 자리 표시자 API에 요청을 보내고 출력을 봅니다.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Ctrl + C를 눌러 개발 프록시를 안전하게 중지합니다.

다음 단계

개발자 프록시를 사용하여 사용자 고유의 애플리케이션에 대한 임의 오류를 시뮬레이션하는 방법을 알아봅니다.