[DataBase] 트랜잭션 이란?
·
CS/DataBase
1. 트랜잭션이란 무엇인가요?트랜잭션(Transaction)이란 데이터베이스의 상태를 변환시키는 하나의 논리적인 작업 단위를 의미합니다. 여러 개의 SQL 명령어(쿼리)가 하나의 묶음처럼 처리되어, 이 묶음 속의 작업들이 모두 성공하거나 (Commit), 모두 실패하여 원래 상태로 되돌아가야 (Rollback) 하는 특성을 가집니다.가장 대표적인 예는 은행 계좌 이체입니다. A 계좌에서 돈을 인출하는 작업과 B 계좌로 돈을 입금하는 작업은 단 하나의 논리적 작업(이체)이며, 둘 중 하나라도 실패하면 데이터의 불일치(돈이 사라지거나 생성됨)가 발생하므로 전체 작업을 취소해야 합니다. 트랜잭션은 이러한 데이터의 일관성을 보장하는 핵심 메커니즘입니다.2. 트랜잭션의 핵심: ACID 속성모든 트랜잭션은 데이터의..
[Spring Boot] JPA의 ddl-auto 옵션들
·
Backend
1. ddl-auto란? ddl-auto는 Data Definition Language(DDL)의 자동 처리를 의미합니다. 이는 Spring Boot에서 JPA(Java Persistence API) 구현체인 Hibernate를 사용할 때 데이터베이스 스키마(테이블, 컬럼, 제약 조건 등)를 애플리케이션 시작 시점에 자동으로 관리하도록 지시하는 설정 옵션입니다.간단히 말해, 우리가 정의한 JPA 엔티티(Java 클래스)와 실제 데이터베이스의 스키마를 동기화하는 방식을 결정하는 핵심 설정입니다.이 옵션을 통해 개발자는 매번 수동으로 SQL DDL 문을 작성할 필요 없이 편리하게 스키마를 관리할 수 있지만, 운영 환경에서는 매우 신중하게 사용해야 합니다.(가능한 none 또는 validate 추천)2. 설정..
[DataBase] RDBMS vs NoSQL
·
CS
Intro회사에서 배선임님이 주도하는 오전 스터디에서 RDBMS와 NoSQL의 특징, 그리고 일반적으로 왜 RDBMS를 사용하는 이유에 대해 이야기가 나왔다. 이전에 정처기를 취득할 때 공부했던 기억으로는 RDBMS는 ACID 원칙에 따르며 테이블 형태로 데이터를 관리하여 일관성이 중요하게 여겨지는 경우에 사용되고, NoSQL은 유동적으로 스키마를 추가할 수 있고 비정형 데이터를 처리하는 등 확장성을 중요하게 여겨지는 경우라고 답변을 하였지만, 아직 원하는 키워드가 나오지 않았다고 하여 RDBMS와 NoSQL에 대해 더 찾아볼려고 한다. 1. RDBMS1 - 1. 특징테이블 기반 구조 : 데이터를 행(Row)과 열(Column)로 구성된 테이블 형태로 저장스키마 : 데이터 구조를 사전에 정의해야 함. 스..