본문 바로가기
개발

[Kotlin] Spring 3.0에서 AWS SQS와 연동하기

by 얼굴값하는사람 2023. 12. 27.
반응형

Spring 3.0에서 AWS SQS와 연동하는 코드를 Kotlin으로 작성해보겠습니다. Spring 3.0에서는 AWS SDK를 직접 사용하여 SQS를 조작할 수 있습니다.

 

먼저, AWS SDK를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml에 다음 종속성을 추가하세요

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>sqs</artifactId>
    <version>2.17.63</version> <!-- 최신 버전 확인 필요 -->
</dependency>

 

Gradle을 사용한다면 build.gradle 파일에 다음과 같이 추가하세요

implementation 'software.amazon.awssdk:sqs:2.17.63' // 최신 버전 확인 필요

 

이제 Kotlin 코드로 SQS를 사용하는 클래스를 생성해보겠습니다. 아래 코드는 SQS 큐에 메시지를 보내는 코드입니다

 
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.sqs.SqsClient
import software.amazon.awssdk.services.sqs.model.SendMessageRequest

class SQSService {

    private val sqsClient = SqsClient.builder()
        .region(Region.AP_NORTHEAST_2) // AWS 리전에 맞게 변경해주세요
        .credentialsProvider(DefaultCredentialsProvider.create())
        .build()

    fun sendMessageToQueue(queueUrl: String, messageBody: String) {
        val request = SendMessageRequest.builder()
            .queueUrl(queueUrl)
            .messageBody(messageBody)
            .build()

        sqsClient.sendMessage(request)
    }
}

 

위 코드에서 sendMessageToQueue 함수는 SQS 큐에 메시지를 보내는 데 사용됩니다.

 

사용하려는 AWS 리전에 맞게 .region()을 변경해주세요. 또한, AWS 자격 증명 제공자를 설정하기 위해 .credentialsProvider() 부분도 필요한 경우 수정하세요.

 

 

사용 예시는 다음과 같습니다

fun main() {
    val queueUrl = "YOUR_QUEUE_URL_HERE" // 사용할 SQS 큐의 URL로 변경해주세요
    val sqsService = SQSService()
    sqsService.sendMessageToQueue(queueUrl, "Hello, SQS!") // 메시지 내용을 변경하여 전송할 수 있습니다.
   
}

 

 

위 코드는 간단한 SQS 메시지 전송을 보여줍니다.

 

실제 사용하고자 하는 경우 AWS 자격 증명과 SQS 큐의 URL을 적절히 설정해주시기 바랍니다.

반응형