Java로 백엔드나 시스템 프로그래밍을 하다 보면, 파일, DB 커넥션, 네트워크 소켓 등 다양한 자원을 사용하게 됩니다. 이런 자원들은 사용 후 반드시 close()를 호출해서 반환해야 메모리 누수, 커넥션 풀 고갈 같은 심각한 문제를 방지할 수 있습니다. Java 7 이전 방식: try-finallyConnection conn = null;try { conn = dataSource.getConnection(); // 쿼리 실행 conn.close(); // 단순히 close() 호출} catch (SQLException e) { e.printStackTrace();}⚠️ 이 방식의 단점getConnection()에서 예외가 발생하면 conn은 null이고 close()도 호출되지..