도입최근에 이펙티브 자바 책을 읽고있다. 책의 객체 생성과 파괴 파트에서 try-with-resources 관련 내용을 볼 수 있었다. 저자는 try-finally 보다는 try-with-resources를 사용을 권장한다.InputStream, OutputStream, java.sql.Connection 등 close 메서드를 직접 닫아줘야하는 자원에 대해서 이러한 내용을 제시하였다.저자는 다양한 자원들이 finalizer, cleaner를 안전망으로 활용하고 있으나, 이에 대한 문제점을 제기한다.닫아야할 자원이 여러 개인 경우 try-finally는 중첩으로 인해 지저분한 구조를 갖게 된다.finally 블록에서도 예외가 발생할 수 있으므로 finally 블록에서 발생한 예외가 다른 예외를 삼켜버려 ..
여태껏 진행했던 프로젝트들과 회사에서 진행하는 프로젝트의 가장 큰 차이점이 있다면 안정성, 가독성이라고 생각한다. 단순 기능 구현에 급급하지 않았는 지, 내부 코드를 확인해보기는 했는 지.. 부족한 부분이 많이 있었음을 깨닫고 있는 것 같다. 그 중에서 코드 리뷰를 많이 받았던 부분에 대해서 정리해보고자 한다. 개인적인 의견(코드 스타일)이다. 누군가는 가독성이 좋다고 느낄 수 있지만, 또 다른 누군가는 가독성이 오히려 좋지 않다고 느낄 수 있다. 그래서 정답이라기보다 하나의 생각을 정리한 글으로 인지했으면 좋겠다. 바로 Null , Empty에 관한 내용이다. Null, Empty 체크를 하지 않았거나, 스스로 봤을 때도 가독성이 많이 떨어지는 코드를 많이 작성했다. 이 외에도 Default Confi..
에러(Error)는 컴파일 시 문법적인 오류와 런타임 시 널 포인터 참조와 같은 오류로 프로세스에 심각한 문제를 야기시켜 프로세스를 종료시킬 수 있다. 예외(Exception)은 컴퓨터 시스템의 정상적으로 실행되는 도중 예상하지 못했던 예외적인 조건으로 수행 중인 프로그램이 영향 받는 것이다. 오류와 달리 예외는 try-catch 블록을 사용하는 등 Java 코드에서 적절한 예외 처리를 통해 정상적으로 응답하고, 적절한 오류 메시지를 제공하며, 복구할 수 있다. 그렇다면, Java의 에러는 심각하고, 복구할 수 없는 반면 예외는 복구할 수 있다. Java에서 예외와 에러는 어떨까? Throwable 위 그림을 통해 확인할 수 있다시피, Throwable 클래스는 에러와 예외를 나타내는 모든 클래스의 상위..