인프런 커뮤니티 질문&답변
MemberServiceV2Test관련 질문 드립니다!
작성
·
592
3
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
MemberServiceV2Test를 보면
memberRepository에서 accountTransfer(정상 이체) 테스트를 보면 V1버전과는 다르게 findById를 할 때 트랜잭션의 커넥션을 유지하기 위해 Connection을 파라미터로 전달을 받아서 실행을 해야되는 것으로 알고 있습니다.
하지만 강의에서는 MemberServiceV2Test에서 findById를 사용할 때 memberId 파라미터만 전달하여 V1의 Repository를 사용하고 있는 것 같아서 질문 드립니다.
요약:
MemberServiceV2Test 의 accountTransfer() 테스트에서
이 소스코드를
를 전역 필드에 선언하고
이렇게 소스코드를 수정해야 하는 것이 아닌가 생각해서 질문 드립니다.
---------------------------------
추가
MemberRepositoryV2 클래스에서 findById 메서드가
findById(String memberId)
findById(Connection con, String memberId)
두 개가 동시에 존재해서 강의의 경우도 실행이 된 것 같습니다.
큰 문제는 아니지만 하나의 트랜잭션 내에서 findById(String memberId) 메서드로 여러번 호출할 경우 커넥션이 유지가 안되는 것이 맞는지.. 궁금합니다.
긴 질문 글 읽어주셔서 감사합니다.
항상 좋은 강의 감사합니다!!
퀴즈
데이터베이스에서 트랜잭션을 사용하는 주된 목적은 무엇일까요?
데이터베이스 서버의 부하를 줄여 응답 속도를 빠르게 합니다.
여러 데이터베이스 작업을 하나의 논리적 단위로 묶어 안전하게 처리합니다.
데이터베이스 연결 시 보안 인증 절차를 강화합니다.
데이터 백업 및 복구 프로세스를 자동화합니다.
답변 1
3
안녕하세요. yongeun612님
질문 주신 것 처럼 이 경우 테스트에서는 서로 다른 커넥션이 사용되는 것이 맞습니다.
- memberService.accountTransfer() //다른 커넥션(내부에서는 같은 커넥션)
- findById() //다른 커넥션
- findById() //다른 커넥션
여기서 중요한 것은 accountTransfer()안에서만 같은 커넥션이 사용되면 됩니다. accountTransfer()의 시작과 끝이 트랜잭션 범위이니까요^^
테스트에서는 accountTransfer()를 통해 저장된 데이터가 잘 저장되었는지 확인하는 것이 목적이기 때문에, 이 경우 같은 커넥션을 사용해도 되고, 다른 커넥션을 사용해도 됩니다.
감사합니다.






감사합니다!