Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 공동인증서
- 보안
- 로그인
- Flux
- 본인확인
- webflux
- spring security
- ktlin
- exception
- Kotlin
- postgis
- 허깅 페이스
- 컨퍼런스
- 딥시크
- db
- 코틀린
- netty
- docker
- NGINX
- API
- AWS
- Spring
- Mono
- IntelliJ
- 인증
- AOP
- deepseek vs chatgpt
- Spring Boot
- PostgreSQL
- 본인인증
Archives
- Today
- Total
[수미수의 개발 브로구]
[WebFlux] AWS DynamoDB 설정 본문
반응형
들어가기 전
WebFlux 기반의 프로젝트에서, DynamoDB 를 적용하게 되었고, WebFlux 환경에서 어떻게 DynamoDB 를 설정하고, 구현했는지에 대해서 이야기 하고자 한다. 먼저, WebFlux 프로젝트에서 AWS DynamoDB 설정 하는 방법에 대해서 알아보자.
따라하기
build.kt 설정
아래와 같이 build.kt 파일에 dynamodb 관련 설정 파일을 정의 한다.
implementation ("software.amazon.awssdk:dynamodb-enhanced")
dependencyManagement {
imports {
mavenBom("software.amazon.awssdk:bom:2.16.47")
}
}
ConfigFile 생성
build.kt 파일에 dynamodb 정보를 정의 한 뒤, DynamoDB 정보를 Bean 을 주입하기 위한 Config 파일을 생성 한다.
@Configuration
class DynamoDbConfig {
@Bean
fun getDynamoDbAsyncClient(
@Value("\${cloud.aws.ddb.region.static}") region: String?
): DynamoDbAsyncClient {
return DynamoDbAsyncClient.builder()
.region(Region.of(region))
.credentialsProvider(DefaultCredentialsProvider.builder().build())
.build()
}
}
- DynamoDbAsyncClient
- WebFlux 프로젝트에서, 비동기 논블럭킹으로 처리하기 위해 DynamoDbAsyncClient 객체를 사용하였고, 해당 객체를 통해서 DynamoDB 에 Put 을 하게 되면, 새로운 Worker 쓰레드에서 Job 을 처리 한 뒤 다음 프로세스를 처리 할 수 있다.
- DefaultCredentialsProvider
로컬에서 테스트 하기
DynamoDB를 로컬에서 테스트 하기 위해서, VM options 에 아래와 같이 acccessKey 와 secretKey를 입력 한다. WebFlux 에서는 기존 MVC 와 다르게 Key 값의 이름이 아래와 같다.
- aws.accessKeyId : Access Key 정보
- aws.secretAccessKey : Secret Key 정보
DynamoDbAsyncClient를 생성할때, DefaultCredentialsProvider 를 사용하였기 때문에, local 에서 VM Options 로 DynamoDB 와 통신 할 수 있게 된다.
반응형
'Language & Framework > WebFlux' 카테고리의 다른 글
[WebFlux] Spring WebFlux 프로젝트 생성 하기 (0) | 2023.08.14 |
---|---|
[WebFlux] Spring WebFlux 원리 (0) | 2023.08.13 |
[WebFlux] Spring WebFlux란? #1 (0) | 2023.08.13 |
[WebFlux] WebFlux 적용기 (1) | 2023.08.09 |
[WebFlux] Spring Security 적용 (0) | 2023.08.08 |