Spring2 Spring에서 트랜잭션을 관리하는 방법과 AOP 주의사항 정리 트랜잭션은 대부분의 백엔드 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 핵심 기능입니다. Spring에서는 이를 매우 강력하고 유연하게 지원해주며, 우리가 가장 자주 사용하는 방식은 바로 @Transactional 어노테이션입니다. 이번 글에서는 트랜잭션 관리 방식의 종류부터 AOP 기반 동작 원리, 그리고 실무에서 자주 발생하는 프록시 내부 호출 이슈까지 정리해보았습니다. 트랜잭션 관리 방식 Spring에서 트랜잭션을 다루는 방법은 크게 두 가지로 나뉩니다. 1. 프로그래밍 방식의 트랜잭션 관리 TransactionTemplate이나 PlatformTransactionManager를 직접 이용해서 트랜잭션을 시작하고 커밋/롤백을 제어할 수 있습니다. 이 방식은 세밀한 제어가 가능하지만, 비즈.. 2025. 7. 12. 시스템 응답지연으로 인해 동일 트랜잭션 동시 인입 처리 문제 상황승인 시스템과의 연동 과정에서, 특정 승인 요청에 대해 우리 API가 일시적으로 Lock이 걸리는 문제가 발생했습니다. 이로 인해 시스템 응답이 지연되었고, 사용자는 승인을 반복적으로 시도하게 되었습니다. Lock이 풀리자, 그동안 누적된 승인 요청들이 한꺼번에 API로 전달되었고, 동일 트랜잭션이 여러 번 인입되는 상황이 발생했습니다. 이로 인해 각 트랜잭션이 독립적으로 동일한 다음 단계 승인 요청을 발송하여 사용자가 동일 단계 요청을 여러번 받는 상황이 발생하였습니다. 원인 분석API Lock 원인: 시스템 성능, 데이터베이스 대기 상태, 혹은 일시적인 자원 부족 등 여러 요인으로 인해 트랜잭션 접근이 차단되었을 가능성이 있었습니다.중복 트랜잭션 인입 방어 부재: 상태값 업데이트 방어로직은 .. 2024. 11. 11. 이전 1 다음