Transaction 2

Sequelize로 MySQL 트랜잭션 적용하기

managed와 Unmanaged 트랜잭션 sequelize에서 Transaction는 어떻게 사용할 수 있는지 알아보자 sequelize에서 트랜잭션을 적용하는 방법은 크기 Managed 방식과 Unmanaged 방식으로 나뉜다. // Managed const { sequelize, User } = require('../models'); // 트랜잭션의 콜백으로 유저 생성 로직을 처리합니다 const result = await sequelize.transaction(async (t) => { const user = await User.create( { nickname: 'apple', age: 18, }, { transaction: t } // 해당 로직이 트랜잭션으로 묶여있음을 명시함 ); retur..

트랜잭션의 기본 이해

Transaction 트랜잭션(Transaction)은 하나의 쿼리(작업) 단위를 하나의 묶음으로서 처리하는 기능을 의미한다. 가령 통장 입출금 시스템의 경우 A가 B에게 1000원을 송금하는 작업을 1. A가 B에게 송금한다. 2. B의 잔액이 1000원 증가한다. 와 같은 작업이 이뤄져야 하는데 해당 작업이 알 수 없는 오류로 인해 중단된다면 A가 보낸 1000원이 증발할 수도 있다. 바로 이러한 현상을 방지하기 위해서 트랜잭션이 존재한다. Transaction의 특징 ACID Atomicity(원자성) - 여러 쿼리 명령들을 하나의 작업 단위로 취급하여, 내부 쿼리 명령들이 전부 성공하거나, 아니면 모두 실패해야한다는 특징이다. Consistency(일관성) - 트랜잭션 처리 과정에서 데이터의 일관..