저번 글에서는 Spring Boot와 Spring Cloud AWS 라이브러리를 이용하여 AWS SQS에 대해 간단히 알아보았습니다. 이번에는 Spring Cloud AWS SQS에서 제공해주는 두 가지 내용들에 대해 주의할 점에 대해 알아보겠습니다. 살펴볼 내용은 다음과 같습니다. 1. MappingJackson2MessageConverter 2. ThreadPoolTaskExecutor (@SqsListener Multiple 구성 시 주의할 점) 1. MappingJackson2MessageConverter Spring Cloud AWS SQS의 코어 기능들은 Spring Cloud AWS Messaging 라이브러리에 포함되어 있으며 Spring Cloud AWS Messaging 라이브러리 내부..
Spring Boot와 AWS SQS를 활용한 간단한 애플리케이션을 만들고자 합니다. 제목에 Spring Boot 2.4.x 이상 환경이라고 말씀드린 이유는 여기에서 확인해보실 수 있습니다. 대략 내용을 말씀드리자면 Spring Cloud AWS 2.3 버전이 출시되었는데 Spring Boot 2.4.x 이상 버전과 함께 사용할 수 있다고 합니다. 기존에 Spring Cloud AWS 관련 라이브러리를 사용할 때 org.springframework.cloud.aws 라이브러리를 사용했지만 지금은 업데이트가 중단되었습니다. Spring Boot 2.4.x 이상 환경에서 호환되는 Spring Cloud AWS 2.3에서는 org.springframework.cloud.aws 패키지에 있던 모든 클래스들이 i..
클래스 및 메서드에 Proxy 기반으로 동작하는 어노테이션을 선언해주면 해당 클래스의 메서드에 부가 기능이 추가되어 실행됩니다. 대표적으로 @Transactional이 있습니다. 이번 글에서는 Proxy 기반으로 동작하는 어노테이션을 AspectJ 모듈과 함께 사용할 경우 주의할 점에 대해 알아보겠습니다. 예제코드를 함께 살펴보겠습니다. 예제코드 위 코드는 DB에서 데이터를 조회한 후 JPA Dirty Checking으로 Entity의 상태를 변경하는 단순한 코드입니다. update 쿼리가 정상적으로 실행된 걸 확인할 수 있습니다. 이 쿼리가 실행되는 이유는 JPA의 영속성 컨텍스트의 스코프는 기본적으로 @Transactional이 선언된 메서드가 호출되어 종료될 때까지 유효합니다. 해당 Entity가 ..