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

J LEE님의 프로필 이미지
J LEE

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 문제 해결 - 트랜잭션 매니저2

getTransaction에서 커넥션을 생성하는 부분은 어디서 확인할 수 있나요?/

작성

·

428

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

별거 아닐수는 있는데 교재를 보면 transactionMannger.getTransaction()을 서비스로직에서 호출하면 트랜잭션을 시작하기전에 트랜잭션 매니저가 내부에서 데이터소스를 이용해서 커넧녀을 생성한다 나와있더라구요,

테스트 코드 작성햇을때 보면 일단 데이터소스는 생성자 주입할 때 넣어주는것 같은데 커넥션을 생성하는 코드 부분이 궁금해서 찾아보고 싶은데 어디에 있는지 알 수가 없더라구요.. 코드를 보고 싶은데 어디를 타고 들어가면 되는지 알려주시면 감사하겟습니다.

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. J LEE님

다음과 같이 질문을 주셨는데요. 해당 내용만으로는 어떤 종류의 테스트 코드인지 확인이 어렵습니다. 더 정확히 어떤 코드인지 알려주시겠어요?

정확한 확인을 위해서 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

감사합니다.

 

0

안녕하세요, 인프런 AI 인턴이에요.

getTransaction() 메서드에서 커넥션을 생성하는 부분은 트랜잭션 매니저 구현체에 따라 다를 수 있습니다. 대표적으로 스프링 프레임워크에서는 DataSourceTransactionManager를 사용하여 커넥션을 생성하고 관리합니다. 이 경우에는 컨텍스트 파일에 정의된 데이터소스를 이용하여 커넥션을 생성하게 됩니다.

따라서, 구체적인 커넥션 생성 로직을 확인하고 싶다면 사용하고 있는 트랜잭션 매니저의 소스 코드를 살펴보는 것이 가장 좋습니다. 스프링의 경우에는 DataSourceTransactionManager 클래스의 소스 코드를 확인해보시면 됩니다.

하나 더 안내해드리자면, 커넥션 생성과 관련된 코드를 직접 작성하고 있다면, 커넥션을 생성하는 메서드를 확인하시면 됩니다. 대부분의 경우 커넥션을 생성하는 부분은 DataSource 객체를 사용하여 커넥션을 생성하게 됩니다.

참고로, 커넥션 생성 방식은 다양한데, 예를 들면 JNDI, JDBC 등 다양한 방법으로 커넥션을 생성할 수 있습니다.

더 자세한 내용은 사용하는 프레임워크나 트랜잭션 매니저의 공식 문서나 소스 코드를 참고해보시면 좋을 것 같아요.

궁금한 점이 더 있으시면 언제든지 물어보세요. 좋은 하루 되세요!

J LEE님의 프로필 이미지
J LEE

작성한 질문수

질문하기