Amazon Web Services 한국 블로그
AWS SDK for C++ 출시
오늘 오픈 소스 기반의 AWS C++ SDK를 발표합니다. 이를 통해 Amazon Web Services와 연계하여 네이티브 응용 프로그램 개발에 큰 도움이 될 것입니다. AWS SDK for C++는 현대적인 C++ 인터페이스에서 낮은 의존성 및 저수준 및 고수준 인터페이스에서 완벽하게 작동하도록 설계했습니다. 하지만, 가능한 한 외부 의존성은 낮추어 플랫폼이 독립적으로 동작합니다. 동시에 Windows, OS X, Linux 모바일 플랫폼을 지원합니다.
본 SDK는 게임 개발자를 위해 좀 더 집중적으로 설계하였습니다. 또한, 시스템 엔지니어링 및 기타 네이티브 코드의 효율성을 필요로하는 프로젝트 등에도 사용할 수 있도록 인터페이스 제공합니다.
주요 기능
- 표준 템플릿 라이브러리 (STL) 사용
- 사용자 정의 메모리 관리 지원
- C++ 11 기능을 사용 및 지원
- CMake 이용 네이티브 컴파일러 사용
- 낮은 외부 의존도
- 안전한 예외 설계
- 세부 설정 가능한 로깅
- 기본 자격 증명 공급자
- Amazon Cognito Identity를 통한 ID 관리
- TransferClient을 통한 Amazon S3에 대한 높은 수준 인터페이스
- 암호화 및 HTTP의 지원에 기본 OS의 API 이용
코드 샘플
아래 코드는 Amazon DynamoDB 테이블에 데이터를 저장하는 샘플 코드입니다.
Aws::DynamoDB::DynamoDBClient dynamoDbClient;
PutItemRequest putItemRequest;
putItemRequest.WithTableName("TestTableName");
AttributeValue hashKeyAttribute;
hashKeyAttribute.SetS("SampleHashKeyValue");
putItemRequest.AddItem("HashKey", hashKeyAttribute);
AttributeValue valueAttribute;
valueAttribute.SetS("SampleValue");
putItemRequest.AddItem("Value", valueAttribute);
auto putItemOutcome = dynamoDbClient.PutItem(putItemRequest);
if(putItemOutcome.IsSuccess())
{
std::cout << "PutItem Success Using IOPS " << putItemOutcome.GetResult().GetConsumedCapacity();
}
else
{
std::cout << "PutItem failed with error " << putItemOutcome.GetError().GetMessage();
}
Amazon Simple Storage Service (S3)에서 파일을 다운로드하는 샘플코드입니다.
Aws::S3::S3Client s3Client;
GetObjectRequest getObjectRequest;
getObjectRequest.SetBucket("sample_bucket");
getObjectRequest.SetKey("sample_key");
getObjectRequest.SetResponseStreamFactory(
[](){
return Aws::New(ALLOCATION_TAG, DOWNLOADED_FILENAME, std::ios_base::out | std::ios_base::in | std::ios_base::trunc);
});
auto getObjectOutcome = s3Client.GetObject(getObjectRequest);
if(getObjectOutcome.IsSuccess())
{
std::cout << "File downloaded from S3 to location " << DOWNLOADED_FILENAME;
}
else
{
std::cout << "File download failed from s3 with error " << getObjectOutcome.GetError().GetMessage();
}
간단하지요? GitHub 오늘 다운로드하여 AWS를 통해 C++용 프로그램을 더 확장해 보세요.
현재 상태
AWS SDK for C++는 현재 실험적으로 제공합니다. 사용자 분들과 오픈 소스 커뮤니티에서 의견을 모아 API를 더 견고하게 만들고 있습니다. 또한 개별 서비스 지원을 추가하고 클라이언트가 제대로 프로토콜을 지원할 수 있도록 노력하고 있습니다. 의견과 아이디어를 GitHub의 Issue로 보내주세요.
— Jonathan Henson, Software Development Engineer (SDE)
이 글은 Introducing the AWS SDK for C++의 한국어 번역입니다.