-
Notifications
You must be signed in to change notification settings - Fork 300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JDBC 라이브러리 구현하기 - 3, 4단계] 로건(정다빈) 미션 제출합니다. #595
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요 로건 되게 잘 구현해주신 것 같아요 !
커멘트 읽어보시고 같이 토의해봐요 !
다음번에는 머지해도 될 것 같아요 ㅎㅎ
jdbc/src/main/java/org/springframework/transaction/support/TransactionTemplate.java
Outdated
Show resolved
Hide resolved
public User findById(final Long id) { | ||
return userService.findById(id); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 메서드는 트랜잭션을 사용하지 않은 이유가 있을까요 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
팀플처럼 JPA를 사용한다면 @Transactional(readOnly=true)
를 적용 했을텐데, 현재 트랜잭션 기능은 읽기 모드가 없으니 데이터를 수정해도 예외가 발생하지 않아서 아예 트랜잭션을 걸어주지 않았어요
하디는 어떻게 생각하시나요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
단순히 userDao
의 findById
만 호출하니 상관없을 것 같긴한것같아요
하지만 조회로직이여도, 예를들어 findById
를 호출 하고, 다른 곳에서 User
에 대한 정보를 수정한다음 다시 findById
를 호출 하였을 때, 즉 로직하나에서 findById
를 두 번 호출하였을 때 조회결과가 달라질 수도 있을 것같아요.
이런 부분을 막고자 격리수준을 설정해주기 위해서 트랜잭션으로 묶여야 된다는게 제 생각입니다 ! (물론 현재는 격리수준에 대한 내용은 없지만요 !)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 동시에 findById
와 User를 수정하고, 다시 User를 조회하는 로직
이 같이 실행될 때 말하시는거군요??
그런 경우를 생각하면 하디 말이 맞는 것 같아요
...src/main/java/org/springframework/transaction/support/TransactionSynchronizationManager.java
Show resolved
Hide resolved
== null 대신 Objects.isNull()도 같이 수정
안녕하세요 하디! |
로건 고생하셨습니다 ! 로건에 의견에 대한 커멘트를 남겨놨어요 ! 이만 머지하겠습니다 ! (이곳이나 디엠으로 계속 얘기해봐도 좋습니다 ㅎ_ㅎ) |
안녕하세요 하디!
4단계는 코드가 다 연관되어 있어서 커밋 분리를 어떻게 해야할지 감이 안잡히네요
단계별 커밋은 아래와 같습니다.
3단계 커밋 범위
4단계 커밋 범위
감사합니다~