springboot 2

Spring Batch(Tasklet)에서 트랜잭션 롤백(rollback)이 되지 않는 경우와 해결 방법

최근에 프로젝트에서 개발자들이 배치 작업 중 에러가 발생해도 rollback이 되지 않는다는 문의가 들어왔다. 문제의 원인과 해결 방법을 찾아냈고, 그것을 기록해둘까 한다.원인 코드를 살펴보니 배치에서는 예외를 catch만 하고 throw는 하지 않고 있었다. 온라인 서비스에서는 예외를 throw하면 상위 계층(Controller, @ControllerAdvice 등)에서 받아서 후처리할 수 있지만, 배치는 예외를 throw하면 Step이 실패 처리되며 Job 실행이 중단되고 예외를 받아서 후처리해줄 곳이 없기 때문이다. 해결 방법 & 예시 코드 롤백되지 않는 코드@Slf4j@Componentpublic class SampleTasklet implements Tasklet { @Autowire..

공개 글 2025.09.12

@GetMapping? @PostMapping?

스프링 부트 강의 영상과 스프링 부트 관련 코드들을 보다보면 @GetMapping과 @PostMapping을 수도 없이 봐왔을 것이다. 잘 쓰고는 있었지만 얘네 또한 누가 '설명해 보세요~'하면 명확하게 답변을 못 낼 거 같았다. 그래서 또 얘네에 대해서 다시 찾아봤고 나 스스로 헷갈리지 않게 정리를 해볼까 한다. 우선은 RequestMapping부터 알아보자.@RequestMapping  클라이언트가 특정 url로 요청을 보내면 Controller에서는 어떤 방식으로 처리를 해야할지 정의를 해야하는데, 이때 특정 메서드와 매핑하기 위해 사용하는 것이 RequestMapping이다. RequestMapping은 value와 method를 사용하는데 예시를 한 번 보자.@RestController@Requ..

공개 글 2025.02.19