트랜잭션3 Spring 동시성 제어를 위한 트랜잭션 관리 금융 애플리케이션에서는 데이터 정합성을 보장하는 것이 가장 중요한 요소 중 하나이다. 수백만건의 트랜잭션이 실시간으로 처리되는 환경에서 동시성 문제를 해결하지 못하면 데이터 손실이나 중복, 정합성 훼손 같은 심각한 문제가 발생할 수 있다. 1. 트랜잭션트랜잭션은 데이터베이스의 상태를 변화시키는 작업 단위를 의미하며, 반드시 ACID 속성을 만족해야 한다.Atomicity : 트랜잭션은 모두 실행되거나 모두 실행되지 않아야 한다.Consistence : 트랜잭션 전후로 데이터베이스의 상태는 항상 일관성을 유지해야 한다.Isolation: 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭할 수 없어야 한다.Durability : 트랜잭션이 완료된 이후의 변경 사항은 영구적으로 반영되어야 한다. 2. Sp.. 2024. 11. 26. MyBatis 로 대규모 데이터 처리 수백만 건 이상의 대규모 데이터를 다룰 때 성능 저하를 방지하고 효율성을 극대화 할 수 있는 방법들을 알아보자. 1. 대규모 데이터 처리시 주요 문제메모리 초과: 한번에 너무 많은 데이터를 조회하거나 처리하면 메모리가 부족해 질 수 있다.쿼리 실행 속도: 비효율적인 쿼리는 데이터가 많을 수록 성능에 큰 영향을 준다.트랜잭션 관리: 많은 데이터가 포함된 작업은 트랜잭션 범위 내에서 실패 시 롤백에 부하를 줄 수 있다. 2. 효율적인 데이터 조회페이징 처리 : 한 번에 모든 데이터를 가져오는 대신, 페이지 단위로 나누어 처리한다. SELECT * FROM users LIMIT #{pageSize} OFFSET #{offset} ResultHandler 를 이용한 스트리밍 처리MyBatis 는 Resul.. 2024. 11. 18. MySQL 프로시저(Procedure) 정리 프로시저(Procedure)는 데이터베이스 내에서 자주 사용하는 복잡한 SQL 작업을 미리 정의해놓고, 필요할 때마다 호출하여 사용할 수 있는 저장된 프로그램이다. 프로시저는 반복적인 작업을 자동화하고, 코드의 재사용성을 높이며, 데이터베이스와 관련된 비즈니스 로직을 중앙 집중화하는 데 유용하다.1. 프로시저 생성CREATE PROCEDURE GetEmployeeById(IN emp_id INT)BEGIN SELECT * FROM employees WHERE id = emp_id;END; 2. 프로시저 호출CALL GetEmployeeById(101); 3. 사용시 주의사항권한: 프로시저를 생성, 삭제, 수정하려면 충분한 권한이 있어야한다.오류 처리: 프로시저 내에서 할생할 수 있는 오류를 처리하기.. 2024. 9. 4. 이전 1 다음 728x90 반응형 LIST