inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

1장. 작전1: 바이너리 초이스 - 스프링 배치의 두 가지 스텝 유형 (양자택일... 죽음의 선택이다 ☠️)

PlatformTransactionManager, ResourcelessTransactionManager 질문

47

counterchord89

작성한 질문수 15

1

아직은 어색하고 서먹서먹하니 존댓말로 질문드립니다. 인프피니까 이해좀..


1장. 작전1: 바이너리 초이스 - 스프링 배치의 두 가지 스텝 유형 

요걸 지금 읽고 있는데 중간에 이런 내용이 있습니다.


[시스템 주의]

예시와 같이 ResourcelessTransactionManager 인스턴스를 직접 생성해 tasklet() 메서드에 전달해도 되지만 애플리케이션 내의 여러 스텝에서 재사용할 수 있도록 별도의 Bean으로 정의하고 싶을 수도 있다.


그러나 PlatformTransactionManager 빈을 직접 정의할 땐 주의가 필요하다.


뭔가 문장이 좀 어색한데 처음엔 ResourcelessTransactionManager인스턴스를 Bean으로 정의하고 싶을 수 있다고 하시고는 갑자기 PlatformTransactionManager 빈을 직접 정의할 땐 주의가 필요하다고 하셨습니다.


이게 말 그대로 PlatformTransactionManager 빈을 직접 정의할 때 주의 하라는 뜻인건지, 아니면 ResourcelessTransactionManager 빈을 직접 정의할 때 주의 하라는 뜻인건지, 아니면

둘 다 빈을 집적 정의할 때 주의 하라는 뜻인지 조금 헷갈립니당


뒤에 따라오는 문장들을 읽어보면 아마도 PlatformTransactionManager 빈을 직접 정의할 때 주의하라는 말 같은데 그럼 ResourcelessTransactionManager 빈을 직접 정의 할 때의 주의사항은 없나용?


java spring spring-boot spring-batch backend

답변 2

1

KILL-9

10시간 내에 답변하도록 하겠다

1

counterchord89

넵 기다리고 있겠습니당!

0

KILL-9

바로 다음 문단에 답이 있다.

특정 구현체에 상관없이 PlatformTransactionManager 타입 빈을 정의하는 경우에 해당하는 주의사항이라고 생각하면 된다.

ResourcelessTransactionManager 빈을 정의할 때만의 주의사항은 본문의 주의 사항에서 말한 시나리오에 ResourcelessTransactionManager가 적용되었다고 가정해보면 된다. 

5장까지 독파한 후 다시 돌아와 고민해보면 좋을 것이다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. counterchord89님, 질문해주신 내용을 바탕으로 명확한 설명 도와드리겠습니다.

PlatformTransactionManager와 ResourcelessTransactionManager에 대한 이해

  1. ResourcelessTransactionManager:

    • 주로 테스트 목적으로 사용되는 매우 경량의 트랜잭션 매니저입니다. 실제 자원(예: 데이터베이스, 메시징 시스템 등)을 사용하지 않고 트랜잭션을 처리합니다.
    • 따라서 ResourcelessTransactionManager를 빈으로 정의하고 다양한 스텝에서 재사용하는 것은 가능하지만, 실제 자원이 없어 제한된 상황에서만 사용합니다.
  2. PlatformTransactionManager 빈 직접 정의 시 주의사항:

    • PlatformTransactionManager는 Spring에서 제공하는 트랜잭션 매니저의 일반적인 인터페이스로, 다양한 구현체들이 있습니다 (예: DataSourceTransactionManager, JpaTransactionManager 등).
    • 빈을 직접 정의할 때는 어떤 트랜잭션 매니저 구현체를 사용하는지, 그 구현체가 필요한 의존성이나 구성이 맞게 되어 있는지를 명확히 이해하고 설정해야 합니다.

질문에서의 주의사항

문맥상 질문하는 부분은 ResourcelessTransactionManager에 대한 설명을 하다가, 일반적인 PlatformTransactionManager에 대한 주의사항으로 이어지는 것처럼 보입니다. 실제 코드와 관련된 작업에서 주의가 필요한 부분은 PlatformTransactionManager의 빈을 직접 정의하는 경우입니다.

  • ResourcelessTransactionManager 사용 시 주의사항은 그 자체가 복잡한 작업에 적합하지 않고, 실제 자원과 관련된 트랜잭션 처리를 하지 않기 때문에 이를 고려하여 사용해야 한다는 점입니다.

기존에 유사한 주제를 다룬 답변이 있어 이를 통해 더 깊이있는 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

형 책 어떻게 받아?

1

96

1

JpaCursorItemReader의 정렬 조건 부재의 영향

1

77

2

"컴파일 시점에 없는 값을 어떻게 참조할 것인가?" 섹션

1

82

2

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

2

131

1

형 나 몰래 책내면 모를 줄 알고?

2

108

2

강의 중복 확인 요청

1

54

1

중복내용 제보?!

1

99

2

Json 요청 처리

1

99

2

[건의][6장][작전1] deprecated 메소드

1

110

2

[예제][3장][작전2] windows 에서 마지막 예제

1

99

2

[오타][3장][작전1] 형 이건 빨리 해줘

2

154

2

[오타] "리스너 활용: 시스템 완전 장악 매뉴얼" 부분

1

91

1

[오타] "JobScope와 StepScope 사용 시 주의사항" 부분

1

96

2

spring boot 4 + spring batch 6 설정 변경?

1

194

2

Batch 패키지 설계 — 실무에서 Job 단위 구조

1

158

2

Spring batch를 실행해줄 스케줄러와 batch 실행 환경

1

119

1

메타테이블에 데이터가 생기지 않는 이유

1

173

2

Spring Batch 4.3.10 ExecutionContext 한글 인코딩 이슈 관련 문의

1

159

2

@StepScope 또는 @JobScope와 JobOperator

1

189

5

Remote Partitioning

1

132

2

킬구형 실무에서는 JPA ItemReader / ItemWriter를 더 선호해? 아니면 JDBC itemReader/ItemWriter를 더 선호해?

1

168

2

병렬 중첩

1

138

3

형 코드에 public static class 이게 뭐야 ?

1

186

3

ExitStatus

1

94

2