NestJS + Prisma 를 사용하면서 가장 많이 드는 고민은 트랜잭션 처리였습니다. NestJS와 Prisma로 서비스를 만들면서 여러 Repository를 한 트랜잭션으로 묶어야 하는 상황이 계속 생겼거든요. 예를 들어 유저 매칭이 성사되면 티켓을 차감하고, 구매 상태와 매칭 상태를 업데이트해야 하는데, 이게 하나라도 실패하면 전부 롤백되어야 합니다. Prisma에서는 $transaction으로 트랜잭션을 관리하는데, 문제는 이걸 어디에 둬야 하냐는 거였습니다. Service 레이어에 올리면 Service가 ORM에 종속되고, Repository 안에서 처리하면 비즈니스 로직이 Repository에 섞이면서 코드 재사용이 어려워집니다.Spring을 쓸 때는 @Transactional 하나만 붙이면..