강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

djccnt15님의 프로필 이미지
djccnt15

작성한 질문수

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

3장. 작전1: 관계형 데이터베이스 읽고 쓰기 (테이블의 심장에 처형장을 세우다 ☠️)

Spring Data JPA 사용 시 자동 주입 관련 질문

작성

·

12

·

수정됨

1

킬구형 Spring Data JPA 사용하면 JpaRepository 인터페이스를 사용해서 PlatformTransactionManager, DataSource를 자동으로 주입받아 사용할 수 있는데, 강의에서는 스프링배치의 세밀한 조정을 위해 일부러 JpaRepository를 사용하지 않는 거야?

아래 두 강의에 둘 다 데이터소스와 트랜잭션매니저를 직접 활용하고 있어서 궁금해서 물어봐

  • 3장. 작전1: 관계형 데이터베이스 읽고 쓰기 (테이블의 심장에 처형장을 세우다 )

  • OPERATION DOUBLE TAP - Spring Batch Test


(추가) 생각해보니 예전에 아주 간단한 로직의 스프링배치 앱을 JpaRepository, JPQL을 이용해서 만들었던 만들었던 기억이 있는데,, 혹시 JpaRepository을 일부러 사용하지 않는 이유가 있는지 궁금해

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. djccnt15님께서 질문하신 주제는 Spring Data JPA와 Spring Batch에서 직접 DataSourcePlatformTransactionManager를 활용하는 이유에 대한 것 같습니다.

질문 요약

강의에서 JpaRepository를 사용하지 않고 직접 DataSourcePlatformTransactionManager를 설정하는 이유에 대해 궁금해하셨습니다.

Spring Batch에서의 설정

JpaRepository는 Spring Data JPA가 제공하는 리포지토리로, 트랜잭션 및 데이터 작업을 간편하게 처리할 수 있습니다. 하지만 Spring Batch에서는 다음과 같은 이유로 직접적인 설정이 요구될 수 있습니다:

  1. 세밀한 트랜잭션 관리: Spring Batch는 배치 처리의 본질상 트랜잭션 관리가 중요합니다. 각 스텝의 처리를 별도로 관리하며, 재시도 기능을 위한 적절한 트랜잭션 경계 설정이 필요합니다.

  2. 대규모 데이터 및 성능 최적화: 배치 작업은 대량의 데이터를 처리함으로써 성능이 중요한 요소입니다. 전용 설정을 통해 성능을 최적화하고 병목 현상을 줄일 수 있습니다.

  3. 유연한 데이터 소스 관리: 복수의 데이터 소스 및 특별한 데이터베이스 설정이 필요한 경우가 많습니다. Spring Batch는 이러한 상황에서 더 많은 유연성을 제공합니다.

일반적인 JpaRepository 사용

간단한 배치 작업에는 JpaRepository를 통한 자동 주입이 유용할 수 있습니다. 하지만 강의에서는 학습 목적으로 다양한 상황을 고려해 수동 설정 방법을 익히도록 하고 있습니다.

관련 자료

이와 관련된 구체적인 설정과 배경에 대한 이해를 돕고자 관련 질문 답변을 참조해 보시기 바랍니다.
- Spring Data JPA와 트랜잭션 관리

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

djccnt15님의 프로필 이미지
djccnt15
질문자

답변 고마운데 링크 들어가면 404에러 뜨잖아...

djccnt15님의 프로필 이미지
djccnt15

작성한 질문수

질문하기