.NET용 AWS SDK 버전 3으로 코드 마이그레이션하기

 

이 항목에서는 .NET용 AWS SDK 버전 3의 변경 사항과 이 버전의 SDK로 코드를 마이그레이션하는 방법에 대해 설명한다.

 

 

.NET 버전용 AWS SDK 정보


2009년 11월에 처음 출시된 .NET용 AWS SDK는 .NET Framework 2.0용으로 설계되었다. 이 릴리스 이후 .NET은 .NET Framework 4.0 및 .NET Framework 4.5로 개선되었으며 새로운 대상 플랫폼인 WinRT 및 Windows Phone이 추가되었다.

 

.NET 버전 2의 AWS SDK는 .NET 플랫폼의 새로운 기능을 활용하고 WinRT 및 Windows Phone을 대상으로 업데이트되었다.

 

.NET 버전 3용 AWS SDK가 어셈블리가 모듈화되도록 업데이트되었다.

 


SDK를 위한 아키텍처 재설계


.NET용 AWS SDK의 전체 버전 3은 모듈형으로 재설계되었다. 각 서비스는 이제 하나의 전역 어셈블리가 아닌 자체 어셈블리로 구현된다. 더 이상 .NET 용 AWS SDK 전체를 응용 프로그램에 추가할 필요없다. 이제 응용 프로그램에서 사용하는 AWS 서비스에 대해서만 어셈블리를 추가 할 수 있다.

 

 

변경 사항 요약


다음 섹션에서는 .NET용 AWS SDK 버전 3의 변경 사항에 대해 설명한다.


AWSClientFactory 제거

 

Amazon.AWSClientFactory 클래스가 제거되었다. 이제 서비스 클라이언트를 만들려면 서비스 클라이언트의 생성자를 사용해야 한다. 예를 들어, AmazonEC2Client를 작성하려면 다음의 작업을 수행해야 한다.

 

var ec2Client = new Amazon.EC2.AmazonEC2Client();

 

Amazon.Runtime.AssumeRoleAWSCredentials 제거

 

Amazon.Runtime.AssumeRoleAWSCredentials 클래스는 코어 네임 스페이스에 있었지만 AWS Security Token Service에 대한 종속성이 있고 SDK에서 사용되지 않으므로 제거되었다. 이 클래스를 대신해서 Amazon.SecurityToken.AssumeRoleAWSCredentials 클래스를 사용해야 한다.

 

SetACL 메서드가 S3Link에서 제거

 

S3Link 클래스는 Amazon.DynamoDBv2 패키지의 일부이며 Amazon S3에서 DynamoDB 항목의 참조인 객체를 저장하는 데 사용된다. 이것은 유용한 기능이지만 DynamoDB용 Amazon.S3 패키지에 대한 컴파일 종속성을 생성하고 싶지 않았기 때문에 S3Link 클래스에서 노출된 Amazon.S3 메서드를 단순화하여 SetACL 메서드를 MakeS3ObjectPublic 메서드로 대체했다. 객체에 대한 액세스 제어 목록(Access Control List, ACL)을 보다 효과적으로 제어하려면 Amazon.S3 패키지를 직접 사용해야 한다.

 

사용되지 않는 결과 클래스 제거(Removal of Obsolete Result Classes)

 

.NET 용 AWS SDK의 대부분의 서비스에서 작업은 요청 ID 및 결과 객체와 같은 작업에 대한 메타 데이터가 포함된 응답 객체를 반환한다. 별도의 응답 및 결과 클래스를 갖는 것이 중복되어 개발자를 위한 추가 타이핑(extra typing)을 만들었다. .NET 용 AWS SDK 버전 2에서는 결과 클래스의 모든 정보를 응답 클래스에 넣었고 결과 클래스를 사용하지 못하도록 폐기했다. .NET 용 AWS SDK 버전 3에서는 SDK의 크기를 줄이기 위해 이러한 쓸모없는 결과 클래스를 제거했다.


AWS 구성 섹션 변경(AWS Config Section Changes)

 

App.config 또는 Web.config 파일을 통해 .NET 용 AWS SDK의 고급 구성을 수행할 수 있다. SDK 어셈블리 이름을 참조하는 다음과 같은 <aws> config 섹션을 통해 이 작업을 수행할 수 있다.

 

<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK"/>
  </configSections>
  <aws region="us-west-2">
    <logging logTo="Log4Net"/>
  </aws>
</configuration>

 

.NET 용 AWS SDK 버전 3에서는 AWSSDK 어셈블리가 더 이상 존재하지 않고 공통 코드를 AWSSDK.Core 어셈블리에 넣었다. 따라서 다음과 같이 App.config 또는 Web.config 파일에서 AWSSDK 어셈블리에 대한 참조를 AWSSDK.Core 어셈블리로 변경해야 한다.

 

<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws region="us-west-2">
    <logging logTo="Log4Net"/>
  </aws>
</configuration>

 

Amazon.AWSConfigs 클래스를 사용하여 구성 설정을 조작할 수도 있다. .NET용 AWS SDK 버전 3에서는 DynamoDB의 구성 설정을 Amazon.AWSConfigs 클래스에서 Amazon.AWSConfigsDynamoDB 클래스로 이동했다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts