본문 바로가기

728x90
728x90

try-with-resources

[이펙티브 자바][아이템 9] try-finally 보다 try-with-resources 를 사용하라 - 컴도리돌이 많은 개발자들이 자주 사용하는 try-finally 블록은 리소스를 명시적으로 해제해야 하는 경우에 자주 사용됐지만, 이 방법에는 몇 가지 단점이 있어요. 코드가 장황해지고, 가독성이 떨어지며, 예외가 발생할 경우 자칫 리소스 해제가 제대로 이루어지지 않을 가능성이 생기죠. 특히 스프링 부트 환경에서 여러 외부 리소스나 파일, 데이터베이스  연결 등을 다룰 때 더욱 신중하게 할 필요가 있습니다. 🧐 이런 문제를 해결하기 위해 등장한 것이 try-with-resources인데, 이 구조는 자바 7에서 도입되었고, 자동으로 리소스를 해제해 주는 것이 특징이에요. 리소스를 명시적으로 닫지 않아도 되기 때문에 코드가 훨씬 간결해지고, 예외가 발생하더라도 안정하게 리소스를 관리할 수 있죠. Connection .. 더보기
[이펙티브 자바][아이템 8] finalizer와 cleaner 사용을 피하라 - 컴도리돌이 이번 주제는 저에게는 매우 생소한 주제였어요 😓finalizer와 cleaner 같은 개념이 매우 생소하였거든요, 저는 보통 try-with-resources 구문과 @PreDestroy 어노테이션을 사용해서 자바에서 객체가 더 이상 필요하지 않을 때 리소스를 정리하곤 했는데, 객체 생성 자체를 워낙 많이 하지 않는 편이어서 더욱 생소했던 거 같네요. 그래도 열심히 책을 읽었기에, 오늘 이 주제로 글을 남기려고 합니다. 😤 과거에는 자바에서 객체가 더 이상 필요하지 않을 때 리소스를 정기하기 위해 finalizer를 사용했습니다. 하지만 finalizer는 다음과 같은 문제가 있었죠.첫 번째는 finalizer는 언제 실행될지 예측할 수 없다고 합니다. 이거 매우 위험하지 않나요? 실행 시점이 정확히.. 더보기