try-with-resources 2

Java 파일 I/O 현대적으로 하기: Files/Path, try-with-resources, 인코딩까지 깔끔하게

Java 17 기준으로 Files/Path API와 try-with-resources를 활용해 안전하고 읽기 쉬운 파일 I/O를 구현하고, UTF-8 인코딩 이슈를 확실히 해결하는 방법을 정리합니다.도입 (문제 상황): Java 파일 읽기가 왜 자꾸 깨질까요?파일을 읽었는데 한글이 ???로 보이거나, 운영 서버에서만 줄바꿈이 이상하게 처리되는 경험 해보셨을 거예요. 게다가 스트림을 닫는 걸 깜빡해서 파일 핸들이 누수되거나, 예외 처리 코드가 본문보다 길어지는 경우도 흔합니다.Java 17에서는 이런 문제를 **Files/Path(NIO.2)**와 try-with-resources, 그리고 명시적 인코딩 지정으로 꽤 우아하게 정리할 수 있어요.핵심 개념: Files/Path + 명시적 Charset이 “현..

JAVA 2026.02.24

Java 예외 처리 제대로 하기: Checked vs Unchecked부터 실무 전략까지

Java 17 기준으로 Checked/Unchecked 예외 선택 기준, try-with-resources, 커스텀 예외 설계와 실무 예외 처리 전략을 한 번에 정리합니다. 운영 장애를 분석하다 보면 “로그에는 예외가 있는데 사용자는 그냥 실패했다는 메시지만 본다” 같은 상황을 자주 마주하게 됩니다. 혹은 반대로, 메서드마다 throws Exception이 붙어서 호출부가 도미노처럼 지저분해진 경험도 있으실 거예요. Java 예외 처리는 “잡기만 하면 끝”이 아니라, 설계와 전략이 함께 가야 유지보수가 쉬워집니다.핵심 개념 (Java 예외 처리 전략과 선택 기준)예외 처리는 크게 “어떤 예외를 던질지(Checked vs Unchecked)”와 “어디서 잡을지(경계에서 처리)”를 결정하는 문제입니다. 이 ..

JAVA 2026.02.17