jdbc 템플릿을 직접 구현해보는 미션을 하다가 쿼리를 실행하는 모든 메서드에 try-with-resource가 있는 문제점이 발견되었습니다. 중복을 처리하기 위해 처음에는 try-with-resource 부분을 Function 함수형 인터페이스를 사용하여서 처리하도록 구현 해 보았습니다.

 

이 때, 한가지 문제점이 도출되었습니다.

Checked Exception이 발생한 모습
Try-Catch 블록을 모두 써주어야 한다.

Function 함수형 인터페이스에는 throws가 정의되어 있지 않기 때문에, throws로 예외를 상위로 넘겨줄 수 없고, try-catch로 예외를 모두 핸들링해주어야 하는 문제점이 발생했습니다. 물론 try-catch 블록으로 해결할 수 있겠지만, 그렇다면 doExecute 메서드를 사용하는 모든 메서드에서 try-catch 블록을 써주어야 할 테니 코드가 좀 지저분해 질 거 같다고 생각이 들었습니다.

 

해결하고자 구글링을 조금 해보고 찾아보니 간단하게 사용자 정의 함수형 인터페이스를 사용하면 된다고 합니다. 사용자 정의 함수형 인터페이스의 메서드에 throws를 붙여주면 됩니다. 

스프링을 참고하면서 만들다 보니, 실제 클래스명을 그대로 사용했습니다.

 

사용자 정의 함수형 인터페이스를 만들어 주었다면, 이를 활용하도록 코드를 변경해 봅시다.

 

더이상 빨간줄이 나타나지 않는 모습을 볼 수 있습니다. try-catch 블록을 따로 써줄 필요 없어 코드가 더욱 깔끔해졌네요.

'Language > Java' 카테고리의 다른 글

Final 키워드만 써도 성능 향상이 된다고?  (2) 2022.10.31
JVM의 동작원리  (0) 2022.10.22
[ Junit ] 랜덤 데이터 테스트  (0) 2022.02.10
[ Junit ] 테스트 작성  (0) 2022.02.10
[ Java ] 쉽게 최대공약수 구하기  (0) 2022.02.03

+ Recent posts