다이나모 DB
- 몽고 DB 보다 더 단순하지만, 확장성과 안정성이 뛰어나다.
- 서브 DB로 쓰기 좋다.
- 급작스럽게 대량으로 발생하는 데이터를 저장하는 1차 저장소, 혹은 대량 데이터 저장소로 쓸 수 있다.
- 데이터 유실 가능성이 0에 가깝다.
의존성 추가
- 기본 의존성은 Spring Devtools, Spring Web, Lombok을 추가했다. (Devtools는 호환성 문제로 제거됨. 다음 포스팅 참고)
dependencies {
...
implementation 'software.amazon.awssdk:dynamodb:2.20.98'
implementation 'software.amazon.awssdk:dynamodb-enhanced:2.20.98'
}
application-secret.yml
aws:
accessKeyId: {accessKeyId}
secretKey: {secretKey}
region: ap-northeast-2
Post 엔티티 도입
- 다이나모 DB 사용을 위한 준비로써 구현했다.
Post
@DynamoDbBean
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Post {
private String id;
private String createDate;
private String subject;
@DynamoDbPartitionKey
public String getId() {
return id;
}
}
PostRepository
@Repository
public class PostRepository {
public Post save(Post post) {
post.setId(UUID.randomUUID().toString());
post.setCreateDate(LocalDateTime.now().toString());
return post;
}
}
PostService
@Service
@RequiredArgsConstructor
public class PostService {
private final PostRepository postRepository;
public Post write(String subject) {
return postRepository.save(Post.builder()
.subject(subject)
.build());
}
}
PostController
@Controller
@RequiredArgsConstructor
@RequestMapping("/posts")
public class PostController {
private final PostService postService;
@GetMapping("/create")
@ResponseBody
public Post create() {
return postService.write("제목");
}
}
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
97일차 - 테라폼으로 AWS 다이나모 DB 생성하기 (0) | 2023.07.11 |
---|---|
96일차 - 다이나모DB 저장과 조회 (0) | 2023.07.10 |
94일차 - Hashicorp Vault (0) | 2023.07.07 |
93일차 - 테라폼과 AWS Route 53, DB 리플리케이션 (0) | 2023.07.05 |
92일차 - 테라폼과 AWS 엔드 포인트, RDS 생성 (0) | 2023.07.04 |