Spring 2

Spring에서의 트랜잭션 개념과 적용 사례

1. 트랜잭션의 개념과 특징트랜잭션이란?트랜잭션이란 더 이상 쪼갤 수 없는 하나의 작업 단위를 뜻합니다. 여러 데이터 변경 작업을 하나로 묶어 원자적으로 처리하여, 모든 작업이 성공하면 커밋, 한 작업이라도 실패하면 롤백되어 이전 상태로 복구됩니다. 일상 생활에서는 은행 계좌에서 현금을 인출할 때 현금이 계좌에서 인출되거나, 인출되지 않을 뿐이지 그 중간의 상태는 없는 것과 같습니다. 트랜잭션은 이러한 속성을 ACID 속성인 4가지로 분류하고 있습니다.Atomicity(원자성) : 모든 작업이 완료되거나, 하나라도 실패하면 전체 작업이 취소Consistency(일관성) : 트랜잭션이 끝난 후에도 데이터베이스는 항상 일관된 상태를 유지Isolation(고립성) : 동시에 여러 트랜잭션이 실행되더라도 각각은..

개발/Spring 2025.03.23

[Spring] json deserialize ClassCastException

내부 API 통신 중 T 타입으로 받은 DTO가 해당 DTO 객체가 아닌 LinkedHashMap으로 인식되는 문제를 겪었습니다. 이유를 찾아보니 WebClient의 bodyToMono(Class) 를 통해 역직렬화시 내부적으로 Jakson 라이브러리를 사용하며 json 데이터를 단순히 List로 지정시 "객체"가 어떤것인지 명확하게 알지못하기 때문에 기본 타입인 LinkedHashMap으로 변환하게 됩니다. 구글링에서 흔히 나오는 간단한 해결 방법은 다음과 같았습니다. ObjectMapper mapper = new ObjectMapper(); mapper.convertValue(타겟 클래스, new TypeReference()); 하지만 별도의 후처리가 번거롭다면 문제점 자체가 어떤 타입인지 명확히 알..

개발/Spring 2022.06.16