

# 삭제 마커를 통한 작업
<a name="DeleteMarker"></a>

Amazon S3의 **삭제 마커는 단순 `DELETE` 요청에 지정된 버전이 지정된 객체에 대한 자리 표시자(또는 마커)입니다. 단순 `DELETE` 요청은 버전 ID를 지정하지 않는 요청입니다. 객체가 버전 관리를 사용하는 버킷에 있기 때문에 이 객체는 삭제되지 않습니다. 그러나 삭제 마커를 사용하면 Amazon S3가 객체가 삭제된 것처럼 작동합니다. 삭제 마커에 Amazon S3 API `DELETE` 호출을 사용할 수 있습니다. 이렇게 하려면 적절한 권한이 있는 AWS Identity and Access Management (IAM) 사용자 또는 역할을 활용하여 `DELETE` 요청을 수행해야 합니다.

삭제 마커에는 다른 객체들과 마찬가지로 **키 이름(또는 **키)과 버전 ID가 있습니다. 그러나 삭제 마커는 다음과 같은 부분에서 다른 객체와는 다릅니다.
+ 삭제 마커에 연결된 데이터가 없습니다.
+ 삭제 마커는 액세스 제어 목록(ACL) 값과 연결되어 있지 않습니다.
+ 삭제 마커에 대한 `GET` 요청을 실행하면 삭제 마커에 데이터가 없기 때문에 `GET` 요청에서 아무 것도 검색하지 않습니다. 특히 `GET` 요청에 `versionId`가 지정되지 않은 경우 404(찾을 수 없음) 오류가 발생합니다.

삭제 마커는 Amazon S3의 스토리지에 대해 최소 요금을 발생시킵니다. 삭제 마커의 스토리지 크기는 삭제 마커의 키 이름 크기와 같습니다. 키 이름은 유니코드 문자열입니다. 키 이름에 대한 UTF-8 인코딩은 1\$14바이트의 스토리지에서 이름의 각 문자별 버킷으로 추가됩니다. 삭제 마커는 S3 Standard 스토리지 클래스에 저장됩니다.

보유하고 있는 삭제 마커의 수와 마커가 어떤 스토리지 클래스에 저장되어 있는지 확인하려면 Amazon S3 Storage Lens를 사용하면 됩니다. 자세한 내용은 [Amazon S3 Storage Lens를 사용하여 스토리지 활동 및 사용량 모니터링](storage_lens.md) 및 [Amazon S3 스토리지 렌즈 지표 용어집](storage_lens_metrics_glossary.md)(을)를 참조하세요.

키 이름에 대한 자세한 내용은 [Amazon S3 객체 이름 지정](object-keys.md) 섹션을 참조하세요. 삭제 마커에 대한 자세한 내용은 [삭제 마커 관리](ManagingDelMarkers.md) 섹션을 참조하세요.

Amazon S3에서만 삭제 마커를 생성할 수 있으며, 버전 관리가 사용 설정되었거나 일시 중지된 버킷의 객체에 대해 사용자가 `DeleteObject` 요청을 전송할 경우에만 삭제 마커를 생성합니다. `DELETE` 요청에 지정된 객체는 실제로 삭제되지 않습니다. 그 대신, 삭제 마커가 객체의 현재 버전이 됩니다. 객체의 키 이름(또는 키)은 삭제 마커의 키가 됩니다.

요청에 `versionId`를 지정하지 않고 객체를 가져올 때, 현재 버전이 삭제 마커인 경우 Amazon S3는 다음과 같이 응답합니다:
+ 404 (찾을 수 없음) 오류
+ 응답 헤더, `x-amz-delete-marker: true` 

요청에 `versionId`를 지정하여 객체를 가져올 때, 지정된 버전이 삭제 마커인 경우 Amazon S3는 다음과 같이 응답합니다.
+ 405(메서드 허용 안 됨) 오류
+ 응답 헤더, `x-amz-delete-marker: true` 
+ 응답 헤더, `Last-Modified: timestamp`([HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) 또는 [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) API 작업을 사용하는 경우에만)

`x-amz-delete-marker: true` 응답 헤더는 액세스한 객체가 삭제 마커였음을 보고합니다. 값이 `false`이면 객체의 현재 버전 또는 지정된 버전이 삭제 마커가 아니므로 이 응답 헤더는 `false`를 반환하지 않습니다.

`Last-Modified` 응답 헤더는 삭제 마커의 생성 시간을 제공합니다.

다음 그림은 현재 버전이 삭제 마커인 객체에 대한 `GetObject` API 호출이 404(찾을 수 없음) 오류로 응답하고 응답 헤더에 `x-amz-delete-marker: true`가 포함된 경우를 보여 줍니다.

![\[404(찾을 수 없음) 오류를 반환하는 삭제 마커에 대한 GetObject 호출을 보여주는 그림.\]](http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound.png)


요청에 `versionId`를 지정하여 객체에 대한 `GetObject` 호출을 수행하고 지정된 버전이 삭제 마커인 경우 Amazon S3는 405(메서드 허용 안 됨) 오류로 응답하고 응답 헤더에 `x-amz-delete-marker: true` 및 `Last-Modified: timestamp`를 포함합니다.

![\[405(메서드 허용 안 됨) 오류를 반환하는 삭제 마커에 대한 GetObject 직접 호출을 보여 주는 그림.\]](http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound_405.png)


덮어쓰더라도 삭제 마커는 객체 버전에 남아 있습니다. 삭제 마커 목록(객체의 다른 버전 포함)을 표시하는 유일한 방법은 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) 요청을 사용하는 것입니다. 범용 버킷에 객체를 나열하고 **버전 표시를** 선택하여 AWS Management Console에서 이 요청을 할 수 있습니다. 자세한 내용은 [버전 관리를 사용하는 버킷의 객체 목록](list-obj-version-enabled-bucket.md) 섹션을 참조하세요.

다음 그림은 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 또는 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) 요청이 현재 버전이 삭제 마커인 객체를 반환하지 않음을 보여줍니다.

![\[ListObjectsV2 또는 ListObjects 직접 호출이 삭제 마커를 반환하지 않는 것을 보여 주는 그림.\]](http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/images/versioning_GETBucketwithDeleteMarkers.png)
