오늘의 키워드
- try-with-resources
오늘의 내용
- try-with-resources란?
- 자원을 명시적으로 닫은 필요 없이 자동으로 닫아주는 구조는 제공하는 기능이다. 주로 파일 입출력과 DB연결에 사용되며 자원을 할당하고 해제하는 코드가 더 간결하고 안전해지는 장점이 있다
try (BufferedReader br = new BufferedReader(new FileReader("path/to/file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
- 다중 자원 사용 시 예제
- try블록 안에 여러 자원을 선언하면 모두 자동으로 닫힌다
try (
BufferedReader br = new BufferedReader(new FileReader("path/to/file.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("path/to/output.txt"))
) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
- AutoCloseable 인터페이스
- try-with-resources를 사용하려면 해당 클래스가 AutoCloseable 인터페이스를 구현해야하고 AutoCloseable 인터페이스는 close( ) 메서드를 가지고 있어 자원을 닫을 때 호출된다.
public class CustomResource implements AutoCloseable {
public void doSomething() {
System.out.println("Doing something with the resource");
}
@Override
public void close() {
System.out.println("Resource closed");
}
}
public class Main {
public static void main(String[] args) {
try (CustomResource resource = new CustomResource()) {
resource.doSomething();
}
}
}
오늘의 회고
최종 프로젝트 기능을 구현하면서 코드 실행 시간 측정을 구현하면서 각 핸들러를 나누면서 자원관리를 하는 방법을 찾아보다가 try-with-resources문을 찾아보게 되었고 여러 자원을 다룰 때 유용해서 다음에도 적극적으로 사용해 볼 예정이다.
'TIL' 카테고리의 다른 글
TIL내일배움캠프 15주차 Spring Scheduler (2) | 2024.07.23 |
---|---|
TIL내일배움캠프 15주차 Spring Boot로 REST API와 AOP를 활용한 코드 실행 및 로그 기록 (0) | 2024.07.22 |
TIL내일배움캠프 14주차 최종프로젝트 실시간 채팅 (0) | 2024.07.19 |
TIL내일배움캠프 14주차 KPT 회고 (0) | 2024.07.16 |
TIL내일배움캠프 13주차 Spring Boot와 React 통합 (0) | 2024.07.13 |