[kotlin] 코틀린으로 AWS SDK를 사용하여 데이터베이스 생성 및 관리

AWS SDK를 사용하면 Kotlin 언어로 AWS 서비스를 쉽게 관리할 수 있습니다. 이 포스트에서는 Kotlin으로 AWS SDK를 사용하여 Amazon DynamoDB 데이터베이스를 생성하고 관리하는 방법에 대해 알아보겠습니다.

목차

AWS SDK 설정

먼저 AWS SDK를 사용하기 위해 프로젝트에 aws-java-sdk-dynamodb 의존성을 추가해야 합니다. Maven이나 Gradle을 통해 해당 의존성을 추가한 후, AWS 인증 정보를 설정합니다.

val credentials = AWSStaticCredentialsProvider(BasicAWSCredentials("accessKey", "secretKey"))
val client = AmazonDynamoDBClientBuilder.standard()
                .withCredentials(credentials)
                .withRegion(Regions.AP_NORTHEAST_2)
                .build()

위 코드에서 accessKeysecretKey는 해당 AWS 계정의 액세스 키와 시크릿 키로 대체되어야 합니다. 또한 Regions.AP_NORTHEAST_2는 사용하려는 지역에 맞게 변경되어야 합니다.

DynamoDB 데이터베이스 생성

이제 DynamoDB 클라이언트를 사용하여 데이터베이스를 생성합니다.

val tableName = "MyTable"
val request = CreateTableRequest().withTableName(tableName)
                .withKeySchema(KeySchemaElement().withAttributeName("id").withKeyType(KeyType.HASH))
                .withAttributeDefinitions(AttributeDefinition().withAttributeName("id").withAttributeType(ScalarAttributeType.S))
                .withProvisionedThroughput(ProvisionedThroughput(10L, 10L))
client.createTable(request)

위 코드는 MyTable이라는 이름의 테이블을 생성하는 예시입니다. 필요에 따라 withAttributeDefinitionswithKeySchema 부분을 자신의 데이터베이스 구조에 맞게 수정해야 합니다.

데이터 추가 및 조회

데이터베이스에 데이터를 추가하고 조회하기 위해서는 DynamoDB 테이블에 대한 Put 및 Get 요청을 수행해야 합니다.

val itemValues = hashMapOf("id" to AttributeValue("123"), "name" to AttributeValue("John"))
val putItemRequest = PutItemRequest().withTableName(tableName).withItem(itemValues)
client.putItem(putItemRequest)

val getItemRequest = GetItemRequest().withTableName(tableName).withKey(hashMapOf("id" to AttributeValue("123")))
val result = client.getItem(getItemRequest)

위 코드는 MyTable에 데이터를 추가하고 조회하는 예시입니다.

데이터베이스 삭제

마지막으로, 데이터베이스를 삭제하는 방법을 알아봅시다.

val deleteRequest = DeleteTableRequest().withTableName(tableName)
client.deleteTable(deleteRequest)

위 코드는 MyTable 데이터베이스를 삭제하는 예시입니다.

결론

이제 코틀린으로 AWS SDK를 사용하여 DynamoDB 데이터베이스를 생성하고 관리하는 방법에 대해 알아보았습니다. AWS SDK를 사용하면 Kotlin으로 AWS 서비스를 손쉽게 관리할 수 있어서 개발 과정을 간편화할 수 있습니다.