[DB]Lock 이란?
·
SQL
데이터베이스 Lock에 대해 알아보고 체계적으로 정리해본다.데이터베이스는 데이터를 영속적으로 저장하는 시스템으로, 여러 사용자가 동시에 같은 데이터에 접근할 때 데이터의 일관성과 무결성을 유지해야 한다.예를 들어, 잔고가 5000원이 있을때 5000원 주문을 2개 동시에 수행했을 때 하나의 주문만 완료 되어야 한다. 이를 보장하기 위해 DBMS는 Lock 이라는 메커니즘을 사용한다. ✅ Lock이란?Lock은 트랜잭션의 순차적 처리를 보장하는 방법이다.트랜잭션은 데이터베이스의 논리적 작업 단위로, 나누어질 수 없는 최소 단위다.💡 DBMS 마다 Lock의 구현 방식과 세부 메커니즘이 다르므로, 사용하는 DBMS의 Lock 동작 방식을 이해하는 것이 중요 ✅ Lock의 종류📌 공유(Shared) Lo..
[QueryDSL] QueryDSL 쓸려면 제대로 알고 쓰자
·
SQL
QueryDSL은 JPA 기반 프로젝트에서 쿼리를 타입-세이프하게 작성할 수 있는 강력한 도구다.금융 IT처럼 데이터 무결성이 중요한 환경에서는 오타나 런타임 오류를 줄이는 게 생명인데, QueryDSL은 이걸 깔끔하게 해결해준다.✅ QueryDSL이란?QueryDSL은 SQL 비슷한 문법을 자바 코드로 작성해서 데이터베이스 쿼리를 만드는 프레임워크다.JPA, MongoDB, SQL 등 다양한 백엔드를 지원하고, 타입-세이프 덕분에 컴파일 때 오류를 잡아준다.문자열 기반 JPQL이나 SQL 쓰다가 오타로 런타임에 터지는 일을 줄이고, IDE 자동완성으로 쿼리 짜는 속도도 빨라진다.💡 타입-세이프란?코드 작성할 때 타입을 엄격히 체크해서 런타임 오류를 미리 막아준다. 예를 들어, 엔티티 필드 이름 틀리면..
[DB] 트랜잭션
·
SQL
금융 IT에서 트랜잭션은 시스템의 신뢰성과 데이터 무결성을 지키는 핵심이다.은행 송금이나 결제 시스템 같은 비즈니스 로직에서 트랜잭션이 없으면 데이터 꼬임은 물론이고 사용자 신뢰도 무너진다. 이 글은 트랜잭션의 기본 개념, ACID 속성, 상태, 스프링에서의 처리 방식,그리고 실제 금융 시나리오를 다루며, 최대한 실무 개발자 입장에서 자연스럽게 풀어볼려고 한다.✅ 트랜잭션이란?데이터베이스에서 하나의 논리적 작업 단위다.예를 들어, 계좌 이체는 출금과 입금 두 작업으로 나뉘는데, 둘 다 성공하거나 둘 다 실패해야 한다. 하나만 성공하면 데이터가 엉망이 되니까.다른 예시로는 , 아래와 같다.💸 계좌 이체: 송금자의 계좌에서 돈이 빠지고, 수취인의 계좌에 돈이 들어가야 한다. 중간에 하나라도 실패하면 전체 ..
[DB] H2 란?
·
SQL
✅ H2 란?H2는 가볍고 빠른 내장형 데이터베이스로, 개발과 테스트 환경에서 자주 쓰이는 도구다.이 글에서는 H2 데이터베이스의 주요 특징과 Server Mode, In-memory Mode, Embedded Mode라는 세 가지 사용 방식을 살펴볼려고 한다.금융 IT 환경에서도 간단한 테스트나 프로토타입 개발에 H2는 유용할 것이라 생각한다. ✅ H2 데이터베이스의 특징과 장점H2는 자바 기반의 오픈소스 데이터베이스로, 설치와 사용이 간단하다.📚특징🚀 가볍고 빠름: 메모리 기반 실행으로 빠른 성능을 제공.💾 유연한 모드: 서버, 인메모리, 임베디드 모드를 지원.🛠 스프링 부트와 통합 용이: 최소 설정으로 바로 사용 가능.🧪 테스트에 최적화: 단위 테스트나 로컬 개발 환경에 적합.💡 금융 ..