일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- TypeScript
- Express
- AWS
- Python
- Nest.js
- nestjs
- OCR
- 자료구조
- MySQL
- cookie
- game
- JavaScript
- 게임
- mongoose
- 공룡게임
- typeORM
- nodejs
- dfs
- flask
- class
- Sequelize
- GIT
- jest
- Dinosaur
- Bull
- react
- Queue
- 정렬
- MongoDB
- Today
- Total
목록Transaction (2)
포시코딩
Sequelize Transaction 다루기 팀스터디 중에 트랜잭션 관련해서 추가로 나한테 주어진 과제가 있었다. repository에서 구현한 transaction 로직을 각각의 repo method를 구분지어 service에서 구현할 수 없을까 Error message의 성격별로 status code를 구분지어 리턴하는 방법 트랜잭션 level? 전파?에 대해 알아보고 적용하는 방법 repo가 아닌 service에서 transaction 구현 일단 기존에 repo에서 성공적으로 transactiond을 구현했기 때문에 바로 떠오르는 아이디어가 있었다. repo에서 했던대로 service에서 transaction 객체를 호출한 뒤 repo method를 호출할 때 파라미터로 넘겨 transaction..
개요 A의 포인트를 차감하고 B의 포인트를 올려주는 로직이 있을 때 A의 포인트를 차감했는데 어떤 이유로 인해 B의 포인트를 올려주지 못하는 에러가 발생했을 때 수습하기 힘든 문제가 발생할 것이다. 하지만 만약 두 행동에 대해 트랜잭션으로 묶여 있었다면 A의 데이터가 변화한 뒤에 문제가 생겨도 트랜잭션의 롤백 처리로 인해 트랜잭션으로 묶인 모든 행동들을 없던 일로 만들 수 있다. 때문에 위와 같은 결제 처리 관련 로직에서 많이 사용하며 한번에 연속적으로 DB에서 수행되야 하는 일들에도 트랜잭션을 사용한다. 나는 프로젝트에서 order를 등록할 때 포인트가 차감되야 하는 상황을 트랜잭션으로 묶어볼 것이다. 사용 방법 기존의 코드를 보면 다음과 같다. 변경 전 service // ...생략 await thi..