cs/Java 2

[Java] try-finally보단 try-with-resources?

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()도 호출되지..

cs/Java 2025.05.09

[Java] System.in은 한 번만 선언해야 할까?

1. Java에서 데이터를 입력받을 때 사용하는 'System.in' 이게 뭘까? System.in은 "표준 입력 스트림"을 의미"표준 입력"이란?보통 키보드에서 사용자가 입력하는 데이터"스트림(Stream)"이란?데이터가 한 방향으로 흘러가는 통로를 의미즉, System.in은 키보드로 입력한 데이터를 '한 방향'으로 읽을 수 있게 하는 통로 🧠 쉽게 비유해보자System.in = 수도관에 흐르는 물줄기물줄기는 계속 한 방향으로 흐른다. (거슬러 올라갈 수 없음)한 번 지나간 물은 다시 읽을 수 없다.물줄기에 컵(BufferedReader, Scanner 등)을 대서 물(데이터)을 받아오는 것. 📚 System.in의 구조타입: InputStream데이터 단위: Byte(바이트)방향: 읽기 전용(F..

cs/Java 2025.04.29