
먼저, 스프링부트와 JPA에서 데이터를 저장하는 다음과 같은 코드를 보자.@Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; public User externalSave(User user) { return internalSave(user); } @Transactional public User internalSave(User user) { return userRepository.save(user); } }만약 외부에서 UserService.externalSave(user); 를 실..

SpringBoot에서 RabbitMQ의 메시지를 처리하다 예외가 발생하게 되면 어떻게 될까? `Consumer.receiveMessage(User user)` 메서드에서 일부러 `RuntimeException`을 발생시켜 보자.public void receiveMessage(User user) { System.out.println("Received "); throw new RuntimeException("message processing failed");} 저번에 메시지를 보내는 것과 동일한 테스트 코드를 실행시킨다.@Testpublic void obj_message() throws InterruptedException { User user = new User("name", "email..

이 글에서 RabbitMQ는 도커 컨테이너로 실행할 것이기 때문에 도커가 설치되어 있다고 가정한다. 1. RabbitMQ 실행`docker run`으로 이미지를 실행시켜도 좋지만 매번 여러 옵션을 입력해 주기는 불편하기 때문에 `docker-compose`를 작성해서 실행시킬 것이다.# docker-compose.ymlversion: '3.8'services: rabbitmq: image: rabbitmq:3.13.7-management-alpine container_name: rabbitmq ports: - 5672:5672 - 15672:15672 volumes: - ./.docker/rabbitmq/etc/:/etc/rabbitmq/ - ...