본문 바로가기

Database3

[데이터베이스] 트랜잭션과 ACID 성질 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위, 하나의 트랜잭션은 Commit 또는 Rollback 된다. ACID 데이터의 무결성과 안정성을 보장하기 위해 트랜잭션이 지녀야 하는 성질! Atomicity 원자성 : All or Nothing 트랜잭션 결과가 데이터베이스에 모두 반영되거나 반영되지 않아야 하는 성질 Consistency 일관성 : 트랜잭션 수행 전후 데이터베이스는 일관된 상태를 가져야 하는 성질 Isolation 독립성 : 모든 트랜잭션은 다른 트랜잭션부터 독립되야 하는 성질 Durability 영속성 : 트랜잭션이 성공적으로 수행되었다면 그 결과는 영구적으로 기록되는 성질 永續性 영속성 : 영원히 지속되는 성질이나 능력 無缺性 무결성 : 데이터의 정보가 변경되거나 오염되지 .. 2023. 8. 19.
[Spring Reactive] 리액티브 데이터 Repository 정의하기 리포지토리를 생성하기 앞서 도메인은 다음과 같다. public class Item { private @Id String id; private String name; private double price; private Item(){} public Item(String name, double price) { this.name = name; this.price = price; } public String getId() { return id; } } 블로킹API인 JPA를 사용하지 않지만 JPA와 매우 유사한 인터페이스가 정의되어 있다. ReactiveCrudRepository 인터페이스를 상속하면 된다. 주석 내용은 기본적으로 제공하는 메서드이다. JPA와 거의 동일하게 제공한다는 것을 알 수 있다. pub.. 2023. 3. 12.
[Spring Reactive] 리액티브 데이터베이스 저장 요건 리액티브 프로그래밍의 핵심은 모든 과정이 리액티브여야 한다! 웹 컨트롤러와 서비스 계층도 리액티브 방식으로 동작하게 만들었는데, 블로킹 방식으로 연결되는 데이터베이스를 호출하면 리액티브는 무너진다. 블로킹 방식으로 데이터베이스를 호출한 스레드는 응답을 받을 때까지 다른 작업을 하지 못한 채 기다린다. 동기, 비동기와 블로킹, 논블로킹 개념이 헷갈린다면? 2023.03.09 - [Develop/CS] - 동기(Synchronous)와 비동기(Asynchronous), 블로킹(Blocking)과 논블로킹(Non-Blocking) 그렇다면 어떤 데이터베이스가 리액티브 패러다임을 지원하고 있을까? 몽고디비 레디스 아파치 카산드라 엘라스틱서치 네오포제이 카우치베이스 우리가 평소 사용하는 관계형 데이터베이스는 포함.. 2023. 3. 10.