

# 스캔
<a name="API_Scan_v20111205"></a>

**중요**  
***이 단원에서 언급되는 API 버전 2011-12-05는 사용 중단되었으며 새 애플리케이션에 사용해서는 안 됩니다.***  
 **현재 하위 수준 API에 대한 설명서는 [Amazon DynamoDB API 참조](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/) 섹션을 참조하세요.**

## 설명
<a name="API_Scan_Description"></a>

`Scan` 작업은 테이블에 대한 전체 스캔을 수행하여 하나 이상의 항목 및 해당 속성을 반환합니다. `ScanFilter`를 제공하여 더 많은 특정 결과를 가져옵니다.

**참고**  
스캔한 총 항목의 수가 1MB 제한을 초과하면 스캔이 중지되고 `LastEvaluatedKey`과 함께 사용자에게 결과가 반환되며 후속 작업에서 스캔을 계속합니다. 또한 결과에는 제한을 초과하는 항목 수가 포함되어 있습니다. 스캔에는 필터 조건을 충족하는 테이블 데이터가 없을 수 있습니다.  
결과 세트는 최종적으로 일관적입니다.

## 요청
<a name="API_Scan_RequestParameters"></a>

### 구문
<a name="API_Scan_RequestParameters.syntax"></a>

```
// This header is abbreviated.
// For a sample of a complete header, see DynamoDB 하위 수준 API.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.Scan  
content-type: application/x-amz-json-1.0

{"TableName":"Table1",
    "Limit": 2,
    "ScanFilter":{
        "AttributeName1":{"AttributeValueList":[{"S":"AttributeValue"}],"ComparisonOperator":"EQ"}
    },
    "ExclusiveStartKey":{
        "HashKeyElement":{"S":"AttributeName1"},
        "RangeKeyElement":{"N":"AttributeName2"}
    },
    "AttributesToGet":["AttributeName1", "AttributeName2", "AttributeName3"]},
}
```


****  

|  명칭  |  설명  |  필수 | 
| --- | --- | --- | 
|  TableName  |  요청된 항목을 포함하는 테이블의 이름입니다. 유형: 문자열  |  예  | 
| AttributesToGet  | 속성 이름의 배열입니다. 속성 이름을 지정하지 않으면 모든 속성이 반환됩니다. 일부 속성을 찾을 수 없는 경우 결과에 표시되지 않습니다.유형: 배열 | 아니요 | 
| Limit  | 평가할 최대 항목 수입니다(반드시 일치하는 항목 수는 아님). DynamoDB가 결과를 처리하는 중에 한도까지 항목 수를 처리하면, 이를 중지하고 해당 지점까지 일치하는 값을 반환하며, 후속 작업에 `LastEvaluatedKey`를 적용하여 항목 가져오기를 계속합니다. 또한 DynamoDB가 1MB에 도달하기 전에 스캔한 데이터 설정 크기가 이 한도를 초과하면, 스캔을 중지하고 이 한도까지 일치하는 값을 반환하며, 후속 작업에 `LastEvaluatedKey`를 적용하여 스캔을 계속합니다.형식: 숫자 | 아니요 | 
| Count  | `true`로 설정한 경우, DynamoDB는 스캔 작업의 총 항목 수를 반환합니다. 작업에 할당된 필터에 대해 일치하는 항목이 없는 경우도 마찬가지입니다. 수 계산 전용 스캔에 Limit 파라미터를 적용할 수 있습니다. `AttributesToGet` 목록을 제공하는 동안 `Count`를 `true`로 설정하지 마세요. 그렇지 않으면 DynamoDB가 유효성 검사 오류를 반환합니다. 자세한 내용은 [결과 내 항목 수 계산](Scan.md#Scan.Count) 단원을 참조하십시오.타입: 부울 | 아니요 | 
| ScanFilter  | 스캔 결과를 평가하고 원하는 값만 반환합니다. 여러 조건이 "AND" 작업으로 처리됩니다. 모든 조건이 결과에 포함되어야 합니다. 형식: 비교 연산자가 포함된 값에 대한 속성 이름의 맵. | 아니요 | 
| ScanFilter:AttributeValueList | 필터의 스캔 결과를 평가하는 값과 조건입니다.형식: `AttributeValue`에 대한 `Condition`의 맵. | 아니요 | 
| ScanFilter:​ ComparisonOperator | 같다, 크다 등 제공한 속성을 평가하는 기준입니다. 다음은 스캔 작업에 대해 유효한 비교 연산자입니다. 크다, 같음 또는 작다 등의 문자열 값 비교는 ASCII 문자 코드 값을 기준으로 합니다. 예를 들어 `a`는 `A`보다 크고 `aa`는 `B`보다 큽니다. 코드 값 목록은 [http://en.wikipedia.org/wiki/ASCII\$1ASCII\$1printable\$1characters](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters)를 참조하세요. 이진수의 경우에는, 예를 들어 쿼리 표현식을 평가할 때처럼 DynamoDB가 이진수 값을 비교하면서 이진수 데이터의 각 바이트를 부호가 없는 것으로 처리합니다.  형식: 문자열 또는 이진수  | 아니요 | 
|   | `EQ` : 같음. `EQ`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 같지 않습니다. |   | 
|   | `NE` : 같지 않음. `NE`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 같지 않습니다. |   | 
|   | `LE` : 작거나 같음. `LE`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 비교할 수 없습니다. |   | 
|   | `LT` : 작음. `LT`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 비교할 수 없습니다. |   | 
|   | `GE` : 크거나 같음. `GE`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 비교할 수 없습니다. |   | 
|   | `GT` : 큼. `GT`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 같지 않습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 비교할 수 없습니다. |   | 
|   | `NOT_NULL` : 속성 있음.  |   | 
|   | `NULL` : 속성 없음.  |   | 
|   | `CONTAINS` : 세트의 하위 시퀀스 또는 값 확인. `CONTAINS`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 비교의 대상 속성이 문자열이면 작업은 하위 문자열 일치를 확인합니다. 비교의 대상 속성이 이진수이면 작업은 입력과 일치하는 대상의 하위 시퀀스를 찾습니다. 비교의 대상 속성이 세트("SS", "NS" 또는 "BS")이면 작업은 해당 세트의 구성 요소(하위 문자열 아님)를 확인합니다. |   | 
|   | `NOT_CONTAINS` : 세트의 하위 시퀀스 부재 또는 값의 부재 확인. `NOT_CONTAINS`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 하나의 `AttributeValue`만 포함할 수 있습니다(집합 아님). 비교의 대상 속성이 문자열이면 작업은 하위 문자열이 일치하지 않는지 확인합니다. 비교의 대상 속성이 이진수이면 입력과 일치하는 대상의 하위 시퀀스가 없는지 확인합니다. 비교의 대상 속성이 세트("SS", "NS" 또는 "BS")이면 작업은 해당 세트의 구성 요소(하위 문자열 아님)의 부재를 확인합니다. |   | 
|   | `BEGINS_WITH` : 접두사 여부 확인. `BEGINS_WITH`의 경우, `AttributeValueList`에 문자열 또는 이진수(숫자 또는 집합 제외) 중 한 가지 형식의 `AttributeValue`만 저장됩니다. 비교 대상의 속성은 문자열 또는 이진수가 되어야 합니다(숫자 또는 집합 제외). |   | 
|   | `IN` : 정확한 일치 확인. `IN`의 경우, `AttributeValueList`는 문자열, 숫자 또는 이진수 유형 중 두 개 이상의 `AttributeValue`를 포함할 수 있습니다(집합 아님). 비교 대상 속성이 일치하려면 형식이 동일하고 값도 정확해야 합니다. 문자열은 문자열 세트와 일치하지 않습니다. |   | 
|   | `BETWEEN` : 첫 번째 값보다 크거나 같음 및 두 번째 값보다 작거나 같음. `BETWEEN`의 경우, 문자열, 숫자 또는 이진수(집합 제외) 중에서 동일한 형식으로 2개의 `AttributeValueList` 요소가 `AttributeValue`에 저장되어야 합니다. 대상 값이 첫 번째 요소보다 크거나 같을 때, 그리고 두 번째 요소보다 작거나 같을 때 대상 속성이 일치합니다. 요청에서 지정한 형식과 다른 형식의 `AttributeValue` 값이 항목에 저장되면 값은 일치하지 않습니다. 예를 들어 `{"S":"6"}`은 `{"N":"6"}`과 비교할 수 없습니다. 또한 `{"N":"6"}`은 `{"NS":["6", "2", "1"]}`과 비교할 수 없습니다. |   | 
| ExclusiveStartKey | 이전 스캔을 계속할 항목의 기본 키입니다. 결과 세트 크기 또는 `Limit` 파라미터 중 하나로 인해 이전 스캔 작업이 전체 테이블을 스캔하기 전에 중단된 경우 해당 스캔은 이 값을 제공할 수 있습니다. `LastEvaluatedKey`는 새 스캔 요청으로 다시 전달되어 해당 지점에서 작업을 계속할 수 있습니다.형식: 복합 기본 키의 `HashKeyElement`, 또는 `HashKeyElement` 및 `RangeKeyElement`. | 아니요 | 

## 응답
<a name="API_Scan_ResponseElements"></a>

### 구문
<a name="API_Scan_ResponseElements.syntax"></a>

```
HTTP/1.1 200 
x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 
content-type: application/x-amz-json-1.0
content-length: 229 

{"Count":2,"Items":[{
    "AttributeName1":{"S":"AttributeValue1"},
    "AttributeName2":{"S":"AttributeValue2"},
    "AttributeName3":{"S":"AttributeValue3"}
    },{
    "AttributeName1":{"S":"AttributeValue4"},
    "AttributeName2":{"S":"AttributeValue5"},
    "AttributeName3":{"S":"AttributeValue6"},
    "AttributeName5":{"B":"dmFsdWU="}
    }],
    "LastEvaluatedKey":
        {"HashKeyElement":{"S":"AttributeName1"},
        "RangeKeyElement":{"N":"AttributeName2"},
    "ConsumedCapacityUnits":1,
    "ScannedCount":2}
}
```


****  

|  명칭  |  설명  | 
| --- | --- | 
| Items  | 작업 파라미터를 충족하는 속성의 컨테이너입니다.형식: 속성 이름 맵과 속성의 데이터 형식 및 값. | 
| Count  |  응답의 항목 수. 자세한 내용은 [결과 내 항목 수 계산](Scan.md#Scan.Count) 단원을 참조하십시오. 형식: 숫자  | 
| ScannedCount  | 필터를 적용하기 전 전체 스캔의 항목 수입니다. `ScannedCount` 값이 높지만 `Count` 결과가 거의 없거나 전혀 없는 경우 스캔 작업이 비효율적이라는 것을 나타냅니다. 자세한 내용은 [결과 내 항목 수 계산](Scan.md#Scan.Count) 단원을 참조하십시오.형식: 숫자 | 
| LastEvaluatedKey | 스캔 작업이 중지된 항목의 기본 키입니다. 후속 스캔 작업에 이 값을 제공하여 해당 지점부터 작업을 계속합니다.전체 스캔 결과 설정이 완료되면(예: 작업이 "마지막 페이지"를 처리)`LastEvaluatedKey`는 `null`입니다. | 
| ConsumedCapacityUnits | 작업에 사용된 읽기 용량 단위의 수. 이 값은 할당 처리량에 적용되는 수를 나타냅니다. 자세한 정보는 [DynamoDB 프로비저닝된 용량 모드](provisioned-capacity-mode.md) 섹션을 참조하세요. 형식: 숫자 | 

## 특수 오류
<a name="API_Scan_SpecialErrors"></a>


****  

|  Error  |  설명  | 
| --- | --- | 
| ResourceNotFoundException  | 지정된 테이블을 찾을 수 없습니다. | 

## 예시
<a name="API_Scan_Examples"></a>

AWS SDK를 사용하는 예는 [DynamoDB에서 테이블 스캔](Scan.md) 단원을 참조하세요.

### 샘플 요청
<a name="API_Scan_Examples_Request"></a>

```
// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.Scan 
content-type: application/x-amz-json-1.0

{"TableName":"1-hash-rangetable","ScanFilter":{}}
```

### 샘플 응답
<a name="API_Scan_Examples_Response"></a>

```
HTTP/1.1 200
x-amzn-RequestId: 4e8a5fa9-71e7-11e0-a498-71d736f27375 
content-type: application/x-amz-json-1.0 
content-length: 465 

{"Count":4,"Items":[{
	"date":{"S":"1980"},
	"fans":{"SS":["Dave","Aaron"]},
	"name":{"S":"Airplane"},
	"rating":{"S":"***"}
	},{
	"date":{"S":"1999"},
	"fans":{"SS":["Ziggy","Laura","Dean"]},
	"name":{"S":"Matrix"},
	"rating":{"S":"*****"}
	},{
	"date":{"S":"1976"},
	"fans":{"SS":["Riley"]},"
	name":{"S":"The Shaggy D.A."},
	"rating":{"S":"**"}
	},{
	"date":{"S":"1985"},
	"fans":{"SS":["Fox","Lloyd"]},
	"name":{"S":"Back To The Future"},
	"rating":{"S":"****"}
	}],
    "ConsumedCapacityUnits":0.5
	"ScannedCount":4}
```

### 샘플 요청
<a name="API_Scan_Examples_Request2"></a>

```
// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.Scan 
content-type: application/x-amz-json-1.0
content-length: 125 

{"TableName":"comp5",
	"ScanFilter":
		{"time":
			{"AttributeValueList":[{"N":"400"}],
			"ComparisonOperator":"GT"}
	}
}
```

### 샘플 응답
<a name="API_Scan_Examples_Response2"></a>

```
HTTP/1.1 200 OK
x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG
content-type: application/x-amz-json-1.0
content-length: 262
Date: Mon, 15 Aug 2011 16:52:02 GMT

{"Count":2,
	"Items":[
		{"friends":{"SS":["Dave","Ziggy","Barrie"]},
		"status":{"S":"chatting"},
		"time":{"N":"2000"},
		"user":{"S":"Casey"}},
		{"friends":{"SS":["Dave","Ziggy","Barrie"]},
		"status":{"S":"chatting"},
		"time":{"N":"2000"},
		"user":{"S":"Fredy"}
		}],
"ConsumedCapacityUnits":0.5
"ScannedCount":4
}
```

### 샘플 요청
<a name="API_Scan_Examples_Request3"></a>

```
// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API.
POST / HTTP/1.1 
x-amz-target: DynamoDB_20111205.Scan
content-type: application/x-amz-json-1.0

{"TableName":"comp5",
	"Limit":2,
	"ScanFilter":
		{"time":
			{"AttributeValueList":[{"N":"400"}],
			"ComparisonOperator":"GT"}
	},
	"ExclusiveStartKey":
		{"HashKeyElement":{"S":"Fredy"},"RangeKeyElement":{"N":"2000"}}
}
```

### 샘플 응답
<a name="API_Scan_Examples_Response3"></a>

```
HTTP/1.1 200 OK
x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG
content-type: application/x-amz-json-1.0
content-length: 232
Date: Mon, 15 Aug 2011 16:52:02 GMT

{"Count":1,
	"Items":[
		{"friends":{"SS":["Jane","James","John"]},
		"status":{"S":"exercising"},
		"time":{"N":"2200"},
		"user":{"S":"Roger"}}
	],
	"LastEvaluatedKey":{"HashKeyElement":{"S":"Riley"},"RangeKeyElement":{"N":"250"}},
"ConsumedCapacityUnits":0.5
"ScannedCount":2
}
```

## 관련 작업
<a name="API_Scan_Related_Actions"></a>
+  [Query](API_Query_v20111205.md) 
+  [BatchGetItem](API_BatchGetItem_v20111205.md) 