Transaction
사전적 의미로는 거래, 매매, 처리 라는 뜻이 있는데 아마... 여기서는 처리로 사용되겠죠?
트랜젝션이란 데이터베이스에서 여러 명령이 묶인 작업의 한 단위를 의미합니다.
트랜젝션으로 명령들을 묶고 그 명령들이 한번에 데이터베이스에 적용되게끔 하는 기능이죠.
동료에게서 transaction이 사용되는 재미난 예시를 들었는데요.
은행에서 송금을 보내는 과정을 예시로 들어줬습니다.
송금을 할 때 갑자기 서버가 터지게 되면 돈이 공중분해 될 수도 있지 않겠습니까? 그렇게 되면 돈을 잃어버리게 되는 것이지요. 그래서 이 트랜젝션 기능을 이용하여 서버가 터지게 되면 기존에 저장되어있는 save 포인트로 roll back 하게 되는 사례가 있다고 합니다.
이제 본격 mysql로 들어가보면
mysql에서는 디폴트로 auto commit이 설정되어있다고 합니다.
명령어를 한 번 실행하면 DB에서 자동으로 commit 해주는 시스템입니다.
show variables like '%commit%'; 명령어를 작성하게 되면
1번 autocommit 이 ON 되어있는 것이 보일 겁니다.
autocommit 을 해제해도 되지만,
start transation 을 이용한 트랜젝션을 시작할 수 있다고 합니다.
예시코드는... 다른 분의 블로그를 가져오게 되었습니다. 그냥 말 그대로 '완벽'에 가까운 예시라 볼 수 밖에 없네요.
https://audgnssweet.tistory.com/45
이제 이 내용을 이해했으니 typeorm을 사용한 transaction 을 사용해 봐야겠죠?
typrORM을 이용하여 mysql 속의 명령문을 함수로 활용할 수 있는 기능이 있더라고요.
처음 초기 세팅은 함수 속에서 시작이 되는데요.
뭐 예를 들어
저 사이의 함수들은 자신이 구현해야하는 api 에 맞게 구현하신다면 모든 함수가 commit 이 될 때까지 기다리다가 진행하게 될 예정입니다.
아직 저도 사용해보지 못했지만 사용해보고 리뷰를 남기겠습니다.
'코딩 개발' 카테고리의 다른 글
[AWS] Security Groups & Ports (0) | 2022.11.24 |
---|---|
[AWS] EC2 (0) | 2022.11.23 |
TypeORM 개념... 다시 잡기 (0) | 2022.11.21 |
Path parameter & Query parameter (0) | 2022.11.17 |
RESTful API (0) | 2022.11.17 |