# 첫 번째 요청 (/ko/docs/get-started/first-request)

이 페이지는 빈 Echolot에서 시작하여 요청을 보내고 응답을 읽기까지 안내합니다. 별도 설정 없이 응답하는 가상의 아웃도어 용품점 `https://demo.echolot.dev`의
[데모 API](/docs/tutorials/demo-api)를 사용합니다.

## 1. 작업 공간 만들기 [#1-create-a-workspace]

작업 공간은 요청을 파일 하나에 하나씩 담는 폴더입니다. 먼저 하나 만듭니다.

<Steps>
<Step>

환영 윈도우에서 **새로운 작업 공간…**(또는 **파일 › 새로운 작업 공간…**, <kbd>⌥</kbd><kbd>⌘</kbd><kbd>N</kbd>)을 선택합니다.

</Step>
<Step>

`Alpenglow.echolot` 같은 이름을 붙이고 보관할 위치를 고른 다음 **생성**을 선택합니다.

</Step>
</Steps>

작업 공간이 별도의 윈도우에서 열립니다. 비어 있으므로 페이지에 **이 작업 공간은 비어 있음**이라고 표시됩니다.

## 2. 요청 만들기 [#2-make-a-request]

<Steps>
<Step>

페이지에서 **새로운 요청**을 선택하거나 <kbd>⌘</kbd><kbd>N</kbd>을 누릅니다. **새로운 요청**이라는 이름의 요청이 이름이 선택된 상태로 사이드바에 나타납니다.
`List products`를 입력하고 <kbd>Return</kbd>을 누릅니다.

</Step>
<Step>

페이지 맨 위의 주소 필드(**URL 입력, \{\{variables\}\} 사용 가능**이라고 표시됨)를 클릭하고 다음을 입력합니다.

```txt
https://demo.echolot.dev/v1/products?category=tents&per_page=5
```

메서드는 **GET**이며 지금 필요한 것입니다. 이제 **매개변수** 탭에 `category`와 `per_page`가 나열되며, 거기서나 주소에서 편집할 수 있습니다.

</Step>
</Steps>

저장할 필요는 없습니다. Echolot은 입력을 멈춘 직후 요청을 작업 공간 폴더의 `.req.toml` 파일에 기록하며, 사이드바 아래쪽의 작업 공간 이름에 **모두 저장됨**이라고
표시됩니다.

<Callout title="이미 cURL 명령이 있나요?">
  주소 필드에 붙여넣으십시오. Echolot이 거기서 메서드, 주소, 헤더, 본문, 인증을 채우고, 사용하지 못한 항목은 주소 막대 아래에 나열합니다.
</Callout>

## 3. 보내기 [#3-send-it]

<kbd>⌘</kbd><kbd>R</kbd>을 누르거나 **보내기**를 선택합니다. <kbd>⌘</kbd><kbd>↩</kbd>도 보냅니다. 실행되는 동안 **보내기**는 **취소**(<kbd>⌘</kbd><kbd>.</kbd>)로
바뀝니다.

<Shot id="get-started-first-response" alt="전송된 List products 요청. 응답 위에 상태 200이 표시되고 응답 패널에 JSON 본문이 있음" />

## 4. 응답 읽기 [#4-read-the-response]

응답 패널은 요청 옆에(위아래 레이아웃을 고르면 아래에) 있습니다.

- **응답 위의 줄**에는 상태(`200 OK`), 시간, 크기가 표시됩니다. 포인터를 올리면 세부 정보를 볼 수 있습니다. 크기, 단계별 소요 시간(DNS, 연결, TLS, 대기, 전송),
  TLS 연결, 리디렉션입니다.
- **본문**은 본문을 보여 줍니다. 위의 **보기** 선택 항목으로 읽는 방식을 전환할 수 있습니다. **텍스트**, **JSON**(서식 적용), **JSON 트리**, 그리고 다른
  콘텐츠에는 **XML**, **양식**, **MessagePack**, **미리보기**가 있습니다. Echolot이 콘텐츠 유형에서 첫 번째 방식을 고릅니다. <kbd>⌘</kbd><kbd>F</kbd>는 본문에서
  텍스트를 찾습니다.
- **헤더**는 응답 헤더를 나열합니다. 데모 API는 합계를 `X-Total-Count`에, 다음 페이지를 `Link`에 넣습니다.
- **쿠키**는 응답이 설정한 쿠키를 나열합니다.
- **원본**과 **16진수**는 받은 그대로의 바이트를 보여 줍니다. **통신**은 네트워크를 오간 전체 교환을 보낸 것과 받은 것으로 나누어 보여 줍니다.
- **테스트**는 요청의 검사 결과를 보여 주며, 검사가 있어야 표시됩니다.

모든 응답은 요청의 [기록](/docs/workspaces/history)(<kbd>⌘</kbd><kbd>Y</kbd>)에도 보관되므로, 나중에 돌아와서 다음 응답과 비교할 수 있습니다.

## 5. 검사 추가하기 [#5-add-a-check]

검사는 보낼 때마다 실행되며, API가 더 이상 기대대로 응답하지 않을 때 알려 줍니다.

1. 요청의 **테스트** 탭을 엽니다.
2. <strong>응답에서 생성…</strong>을 선택합니다. Echolot이 방금 받은 응답에서 검사를 제안합니다. 상태, 콘텐츠 유형, JSON의 값입니다.
3. 원하는 항목을 선택하고 **테스트 N개 추가**를 선택합니다(버튼에 선택한 검사의 수가 표시됩니다).
4. 다시 보냅니다. 응답의 **테스트** 탭에 각 검사의 통과 또는 실패가 표시됩니다.

모든 종류의 검사는 [스크립트와 테스트](/docs/requests/scripts-and-tests)에서 설명합니다.

## 다음 단계 [#next-steps]

- 본문 보내기: 다른 요청을 만들어 메서드를 **POST**로, 주소를 `https://demo.echolot.dev/echo/anything`으로 설정하고 **본문** 탭에 JSON을 입력합니다. 데모가 받은
  내용을 돌려줍니다.
- **요청 › cURL로 복사**(<kbd>⌥</kbd><kbd>⌘</kbd><kbd>C</kbd>)로 요청을 cURL 명령으로 복사하거나, **요청 › 코드 생성…**(<kbd>⌥</kbd><kbd>⌘</kbd><kbd>G</kbd>)으로
  코드를 생성합니다.
- 서버 주소를 변수에 넣고 환경을 추가합니다: [환경](/docs/workspaces/environments).
- 구성을 익힙니다: [윈도우](/docs/get-started/the-window).
- 더 긴 과정을 따라 해 봅니다: [첫 번째 작업 공간](/docs/tutorials/first-workspace).

<Callout type="warn" title="데모 API는 공유됩니다">
  주소마다 분당 120개의 요청을 받습니다(크거나 느리거나 스트리밍하는 엔드포인트는 분당 10개). 제한을 넘으면 `Retry-After` 헤더와 함께 `429 Too Many Requests`로
  응답합니다. 그 초만큼 기다린 뒤 다시 보내십시오.
</Callout>
