[python] Django REST framework에서의 트랜잭션 처리 방법

Django REST framework은 트랜잭션 처리를 위한 강력한 기능을 제공합니다. 트랜잭션은 데이터베이스 작업을 안전하게 처리할 수 있도록 하며, 오류가 발생할 경우 롤백하여 이전 상태로 되돌립니다.

트랜잭션의 이점

트랜잭션을 사용하는 주요 이점은 다음과 같습니다:

트랜잭션 처리 방법

Django REST framework에서 트랜잭션을 처리하는 방법은 다음과 같습니다:

  1. @transaction.atomic 데코레이터를 사용하여 트랜잭션 범위를 정의합니다.
  2. API 뷰 함수에서 트랜잭션을 처리해야 하는 코드를 작성합니다.
  3. 트랜잭션 처리가 필요한 모델 메서드를 호출할 때 with transaction.atomic(): 구문을 사용합니다.

아래는 트랜잭션 처리 예제 코드입니다.

from django.db import transaction
from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['POST'])
def create_order(request):
    with transaction.atomic():
        # 트랜잭션 범위 정의
        
        # 트랜잭션 처리가 필요한 코드 작성
        # ...

        return Response({'message': '주문이 생성되었습니다.'})

위 예제에서 create_order 함수는 transaction.atomic() 블록 안에서 실행되며, 트랜잭션 안에서 실행되는 코드는 데이터베이스 작업을 안전하게 수행합니다. 트랜잭션이 성공하면 Response를 반환하고, 실패하면 자동으로 롤백됩니다.

참고 자료