Loading the catalog…
Loading the catalog…
주문 기능에서는 단순히 주문 데이터만 저장하는 것이 아니라 포인트 차감과 주문 생성이 하나의 흐름으로 함께 처리됩니다. 전체 흐름은 다음과 같습니다. 포인트 조회 ↓ 포인트 잔액 확인 ↓ 포인트 차감 ↓ Order 저장 ↓ OrderItem 저장 이 과정에서 중간 작업 하나가 실패하면 데이터 불일치가 발생할 수 있습니다. 예를 들어 포인트 차감은 성공했지만 주문 저장 과정에서 오류가 발생하는 경우입니다. 포인트 차감 성공 ↓ 주문 저장 실패 ↓ 주문은 없지만 포인트는 감소한 상태 이런 상황을 방지하기 위해 주문 처리 로직에 @Transactional 을 적용했습니다. @Transactional public CreateOrderResponse createOrder(...) { // 포인트 확인 // 포인트 차감 // 주문 저장 // 주문 상품 저장 } @Transactional 을 사용하면 해당 메서드 안에서 수행되는 작업들을 하나의 트랜잭션으로 묶어서 처리할 수 있습니다. 처리 중간에 예외가 발생하면 이전에 수행된 변경사항도 함께 Rollback됩니다. 포인트 차감 ↓ Order 저장 ↓ OrderItem 저장 중 오류 ↓ Rollback ↓ 포인트 차감도 취소 Order 저장도 취소 즉 주문과 관련된 데이터가 모두 성공 또는 모두 실패 하도록 처리할 수 있습니다. 적용 이유 포인트 차감과 주문 생성은 서로 독립적인 작업처럼 보이지만 실제로는 하나의 주문을 완성하기 위해 반드시 함께 성공해야 하는 작업입니다. 따라서 다음 작업들을 하나의 트랜잭션 범위 안에서 처리했습니다. Point 차감 Order 저장 OrderItem 저장 이를 통해 일부 데이터만 반영되는 상황을 방지하고 주문 데이터와 포인트 데이터의 일관성을 유지할 수 있도록 했습니다. 핵심 정리 서로 연관된 여러 DB 작업은 하나의 트랜잭션으로 묶을 수 있습니다. 처리 중 예외가 발생하면 이전 변경사항도 Rollback됩니다. 포인트 차감과 주문 저장처럼 같이 성공해야 하는 작업에 적합합니다. 트랜잭션을 통해 데이터가 일부만 반영되는 문제를 방지할 수 있습니다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
트랜잭션을 통한 주문과 포인트 데이터 일관성 보장. 주문 기능에서는 단순히 주문 데이터만 저장하는 것이 아니라 포인트 차감과 주문 생성이 하나의 흐름으로 함께 처리됩니다. 전체 흐름은 다음과 같습니다. 포인트 조회 ↓ 포인트 잔액 확인 ↓ 포인트 차감 ↓ Order 저장 ↓ OrderItem 저장 이 과정에서 중간 작업 하나가 실패하면 데이터 불일치가 발생할 수 있습니다. 예를 들어 포인트 차감은 성공했지만 주문 저장 과정에서 오류가 발생하는 경우입니다. 포인트 차감 성공 ↓ 주문 저장 실패 ↓ 주문은 없지만 포인트는 감소한 상태 이런 상황을 방지하기 위해 주문 처리 로직에 @Transactional 을 적용했습니다. @Transactional public CreateOrderResponse…
Open source