Skip to content
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 라이브러리 구현하기 - 4단계] 엔초(권예진) 미션 제출합니다. #582

Merged
merged 10 commits into from
Oct 10, 2023

Conversation

kwonyj1022
Copy link

@kwonyj1022 kwonyj1022 commented Oct 9, 2023

안녕하세요 모디!
4단계 구현 완료했습니다~
3단계 리뷰에서 질문 주신 부분에 대해서는 해당 pr에 답을 달아놓았습니다. 아래 토글에 사진도 첨부해 놓았으니 답변 확인만 하실 거라면 사진으로 보셔도 될 것 같습니다. pr 바로가기

사진

image

마지막 리뷰도 잘 부탁드립니다~

@kwonyj1022 kwonyj1022 requested a review from jaehee329 October 9, 2023 08:48
@kwonyj1022 kwonyj1022 self-assigned this Oct 9, 2023
Copy link

@jaehee329 jaehee329 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 엔초!

트랜잭션 관련 기능을 모두 외부 모듈로 옮겨주면서 프록시가 매우 깔끔하고 보기 좋네요😄
3단계에서 넘어오면서 불필요해진 부분들도 잘 정리해주셨고 예외 처리도 충분히 잘 해주신 것 같아요~

남긴 내용은 시간나실 때 읽어보시면 될 듯 하고
충분히 잘 정돈된 코드여서 이번 미션 이만 마칠까 합니다!
고생 많으셨습니다🙏

try {
connection.setAutoCommit(false);
log.info("transaction start");
public void execute(Runnable action) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 제 리뷰어의 꼼꼼함 덕분에 알게 되었는데요, Runnable 인터페이스의 JavaDoc을 읽으면 다음의 내용이 있더라구요!

The Runnable interface should be implemented by any class whose instances are intended to be executed by a thread. The class must define a method of no arguments called run.

https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html
추가적인 내용까지 간단히 해석해보았을 때 Runnable을 구현해 넘겨주는 곳에서는 해당 콜백 함수가 원 쓰레드의 작업과 별개의 쓰레드에서 실행되는 것을 사용 목표로 한다고 합니다!

저도 이 내용을 찾아본 뒤에 직접 만든 함수형 인터페이스를 사용하도록 변경했는데 엔초도 참고하시면 좋을 것 같아요!

Comment on lines +54 to +58
private void transactionStart() throws SQLException {
this.connection = DataSourceUtils.getConnection(dataSource);
connection.setAutoCommit(false);
log.info("transaction start");
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

트랜잭션 관련 내용을 메서드로 분리하니 사용처가 훨씬 간소화되고 좋네요 😊

Comment on lines +33 to +35
} finally {
DataSourceUtils.releaseTransactionConnection(connection, dataSource);
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DataSourceUtils를 사용한 connection 해제 로직 잘 추가해주셨네요~😁

@jaehee329 jaehee329 merged commit 5b66b2b into woowacourse:kwonyj1022 Oct 10, 2023
1 check failed
@jaehee329
Copy link

이전 단계에 대해 말씀주신 것은 해당 PR에 댓글 남겼습니다~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants