Log 를 구현하는 과제에서 트랜젝션 문제가 있었다. @Transactional로 처리하며 매니저 등록이 실패해도 Log는 남기는 것이 목표였다.
Spring의 @Transactional 어노테이션의 propagation 속성을 활용했다. 로그 저장을 담당하는 LogService의 writeLog 메서드에 @Transactional(propagation = Propagation.REQUIRES_NEW)를 적용하여 새로운 별도의 트랜잭션을 생성하도록 했다. 이를 통해 매니저 등록 트랜잭션이 롤백되더라도 로그 저장 트랜잭션은 영향을 받지 않고 커밋되어 로그가 항상 기록되도록 구현했다.
'(2024-10) 스파르타 내일배움캠프 - 백엔드 > TIL' 카테고리의 다른 글
(2024-12-30) TIL: SQL 데일리루틴 (0) | 2024.12.30 |
---|---|
(2024-12-19) 트러블슈팅 (0) | 2024.12.19 |
(2024-12-16) TIL (0) | 2024.12.16 |
(2024-12-03) TIL, 메모 과제 구조 이해하기 (추가중) (0) | 2024.12.03 |
(2024-12-02) TIL (1) | 2024.12.02 |