본문 바로가기

transaction2

[Fastify] Prisma에서 Transaction 추상화 Prisma에서 트랜잭션을 처리하기 위해서는 Service 계층에 Prisma 관련 코드가 필요하게 됩니다. 하지만 Prisma 트랜잭션을 직접 다루면 Service 계층이 ORM에 의존하게 됩니다. 이를 해결하기 위한 방안으로 트랜잭션 관련 로직을 추상화하는 TransactionManager를 고민해보았습니다. Prisma Interactive TransactionPrisma에서 트랜잭션을 처리하는 방식으로, prismaClient.$transaction()을 활용한 Interactive Transaction 방식을 사용할 수 있습니다. 이를 통해 트랜잭션을 관리하며, 트랜잭션 내에서 여러 쿼리를 처리하는 것이 가능합니다. 예시 코드는 다음과 같습니다// prisma.client.tsexport con.. 2025. 3. 16.
[NestJS] Interceptor를 사용해서 Transaction 분리하기 Transaction 이란?데이터베이스의 여러 테이블의 값을 수정할 때 일관성을 유지하기 위해서 트랜잭션 단위로 처리 QueryRunnerTypeORM에서 트랜잭션 처리를 위해서는 QueryRunner를 사용합니다. QueryRunner는 데이터베이스 트랜잭션과 쿼리 실행을 관리하는 객체로, 여러 데이터베이스 쿼리를 하나의 트랜잭션 내에서 실행할 수 있도록 도와줍니다. 보통 복잡한 트랜잭션을 다룰 때 유용하게 사용되며, 여러 쿼리를 안전하게 묶어 실행할 수 있도록 돕습니다. import { getManager } from "typeorm";import { User } from "./entity/User";import { Post } from "./entity/Post";async function exam.. 2025. 3. 16.