ki-sd 님의 블로그
[2026-03-26] 예외 처리 심화와 finally 블록의 자원 반납 본문
예외 처리의 심화 단계로, 시스템 외부의 자원을 빌려 썼을 때 발생할 수 있는 메모리 누수를 방지하는 책임감을 배웠다.
1. 시스템 리소스 관리의 중요성
- 자바 프로그램이 내부 메모리만 사용할 때는 가비지 컬렉터(GC)가 알아서 청소를 해주지만, 파일 시스템을 열어 읽거나(I/O), 데이터베이스와 연결(Connection)을 맺는 등 외부 자원을 사용할 때는 GC가 이를 즉각적으로 회수하지 못한다.
- 다 쓴 자원을 명시적으로 닫아주지(close()) 않으면, 시스템 자원이 고갈되어 결국 서버가 다운되는 치명적인 문제가 발생할 수 있다.
2. finally 블록의 강력한 실행 보장
- 예외가 발생하든, 발생하지 않든, 심지어 try나 catch 블록 내부에 return문이 있어도 무조건 마지막에 실행됨을 보장하는 블록이 바로 finally다.
- 외부 파일이나 네트워크 스트림을 열었을 때, finally 블록 내부에 close() 메서드를 작성함으로써 어떤 예외 상황에서도 안전하게 자원을 운영체제에 반납할 수 있는 로직을 실습했다.
'JavaStudy' 카테고리의 다른 글
| [2026-03-30] java.lang 패키지 분석과 데이터 영속성(Persistence)의 경험 (1) | 2026.04.17 |
|---|---|
| [2026-03-27] try-with-resources와 사용자 정의 예외(Custom Exception) (0) | 2026.04.17 |
| [2026-03-25] 인터페이스(Interface)와 예외 처리(Exception) 입문 (0) | 2026.04.17 |
| [2026-03-24] 다형성(Polymorphism)과 추상화(Abstraction)의 강력함 (0) | 2026.04.17 |
| [2026-03-23] 상속(Inheritance)과 포함(Composition)의 설계 철학 (0) | 2026.04.13 |
