

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# GraphQL 쿼리를 사용하여 AWS AppSync 콘솔의 DynamoDB 테이블에서 데이터 검색
<a name="retrieve-data-with-graphql-query"></a>

이제 데이터베이스에 레코드가 있으므로 쿼리를 실행하면 결과를 얻게 됩니다. 쿼리는 GraphQL의 다른 필수 작업 중 하나입니다. 데이터 원본에서 정보를 파싱하고 검색하는 데 사용됩니다. REST API의 경우 `GET` 작업과 유사합니다. GraphQL 쿼리의 주요 장점은 적시에 관련 데이터를 가져올 수 있도록 애플리케이션의 정확한 데이터 요구 사항을 지정할 수 있다는 것입니다.

**데이터 원본 쿼리**

1. 아직 로그인하지 않은 경우에 로그인 AWS Management Console 하고 [AppSync 콘솔](https://console.aws.amazon.com/appsync/)을 엽니다.

1. 테이블에서 API를 선택합니다.

1. 왼쪽 탭에서 **쿼리**를 선택합니다.

1. 테이블 왼쪽의 **탐색기** 탭에서 `query` `listTodos` 아래의 `getTodo` 작업을 확장합니다.  
![\[Expanded getTodo operation showing fields id, description, name, when, and where.\]](http://docs.aws.amazon.com/ko_kr/appsync/latest/devguide/images/explorer-example-4.png)

1. 코드 편집기에 작업 코드가 표시됩니다.

   ```
   query listTodos {
     getTodo(id: "") {
       description
       id
       name
       when
       where
     }
   ```

   `(id:"")`에서 변형 작업에서 결과에 저장한 값을 입력합니다. 이 예에서는 다음과 같습니다.

   ```
   query listTodos {
     getTodo(id: "abcdefgh-1234-1234-1234-abcdefghijkl") {
       description
       id
       name
       when
       where
     }
   ```

1. **실행**을 선택하고 **listTodos**를 선택합니다. 편집기의 오른쪽에 결과가 표시됩니다. 이 예에서는 다음과 같습니다.

   ```
   {
     "data": {
       "getTodo": {
         "description": "I need to buy eggs",
         "id": "abcdefgh-1234-1234-1234-abcdefghijkl",
         "name": "Shopping List",
         "when": "Friday",
         "where": "Home"
       }
     }
   }
   ```
**참고**  
쿼리는 사용자가 지정한 필드만 반환합니다. 필요하지 않은 필드는 반환 필드에서 삭제하여 선택 취소할 수 있습니다.  

   ```
   {
       description
       id
       name
       when
       where
     }
   ```
삭제하려는 필드 옆의 **탐색기** 탭에서 확인란을 선택 해제할 수도 있습니다.

1. 데이터 원본에 항목을 만드는 단계를 반복한 다음 `listTodos` 작업과 함께 쿼리 단계를 반복하여 `listTodos` 작업을 시도할 수도 있습니다. 다음은 두 번째 작업을 추가한 예입니다.

   ```
   {
     "createtodoinput": {
       "name": "Second Task",
       "when": "Monday",
       "where": "Home",
       "description": "I need to mow the lawn"
     }
   }
   ```

   `listTodos` 작업을 직접적으로 호출하면 이전 항목과 새 항목이 모두 반환됩니다.

   ```
   {
     "data": {
       "listTodos": {
         "items": [
           {
             "id": "abcdefgh-1234-1234-1234-abcdefghijkl",
             "name": "Shopping List",
             "when": "Friday",
             "where": "Home",
             "description": "I need to buy eggs"
           },
           {
             "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
             "name": "Second Task",
             "when": "Monday",
             "where": "Home",
             "description": "I need to mow the lawn"
           }
         ]
       }
     }
   }
   ```