spring이나 django를 쓰다보면 한 view에서 쿼리를 여러 번 날려야하고, 여러 개의 쿼리 중 어떤 부분이 잘못 되었을 때 모두 롤백을 해야하는 상황이 생긴다. spring에서 @transaction을 써서 처리할 수 있듯이 django에서도 transaction.atomic()과 같은 context를 쓰면 여러 개의 쿼리를 하나 즉, atomic이니까 더이상 나눌 수 없는 transaction으로 만들 수 있다.
django에서 model을 다룰 때 .save(commit=False)을 유용하게 쓰듯이 transaction.atomic()도 잘 사용하면 유용하게 쓸 수 있다.
아래 링크는 공식문서로 자세한 내용을 확인할 수 있다.(django 3.2)
https://docs.djangoproject.com/en/3.2/topics/db/transactions/
'Programming' 카테고리의 다른 글
soft delete를 해보면서 느낀 점 (0) | 2022.04.16 |
---|---|
[django] foreign key field를 integer로 넣어주기 (0) | 2022.03.23 |
spring mvc vs. django mvc(mvt?) 패턴 (0) | 2022.02.02 |
python decorator와 spring AOP (0) | 2022.02.01 |
CI/CD를 통해 AWS lambda 코드 관리/배포해보기(1) (0) | 2021.04.22 |