try-with-resources 문은 무엇을 위해 사용하나요?
try-with-resources 문은 자바에서 자원을 자동으로 관리하기 위해 사용되는 구문입니다.
주로 파일, 데이터베이스 연결, 네트워크 소켓 등과 같이 사용 후 반드시 닫아야 하는 자원을 처리할 때 활용됩니다.
전통적인 try-catch-finally 구문에서는 자원을 사용한 뒤 finally 블록에서 명시적으로 close() 메서드를 호출하여 자원을 해제해야 했습니다.
하지만 이 과정에서 예외가 발생하거나 close() 호출을 깜빡하는 경우 자원 누수(resource leak)가 발생할 위험이 있습니다.
try-with-resources 문은 AutoCloseable 인터페이스를 구현한 자원 객체를 try 괄호 안에 선언함으로써, try 블록이 끝난 후 해당 자원이 자동으로 close() 메서드를 호출하여 안전하게 해제되도록 설계되었습니다.
이를 통해 코드가 더 간결해지고, 예외 처리와 자원 해제가 안전하고 명확해집니다.
예시: ```java try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } // br.close()가 자동으로 호출됨 ``` try-with-resources 문은 자원의 자동 해제를 보장하여 코드의 안정성과 가독성을 높이고, 자원 누수를 방지하기 위해 사용됩니다.