728x90 자바14 [JAVA] Java7 multi-catch란? 코드 다이어트의 핵심 자바 개발을 하다 보면 여러 종류의 예외를 처리해야 할 때가 많습니다. Java 7 이전에는 각 예외마다 별도의 catch 블록을 작성해야 했기에 코드가 길어지고 가독성이 떨어지는 고질적인 문제가 있었습니다. 이를 해결하기 위해 등장한 혁신적인 기능이 바로 'multi-catch' 블록입니다. 오늘은 multi-catch가 왜 등장했는지, 어떻게 사용하는지, 그리고 사용 시 반드시 주의해야 할 기술적 제약사항은 무엇인지 전문적인 시각에서 심도 있게 분석해 보겠습니다.1. Multi-catch의 등장 배경과거에는 서로 다른 예외임에도 불구하고 예외 처리 로직(로그 기록, 알림 등)이 동일한 경우가 많았습니다. 개발자들은 어쩔 수 없이 동일한 코드를 복사해서 붙여넣거나, 아니면 모든 예외의 부모인 Excep.. 2026. 1. 20. [JAVA] finally 블록이 실행되지 않는 예외적인 4가지 시나리오 분석 자바 프로그래밍을 처음 배울 때 우리는 "finally 블록은 예외 발생 여부와 상관없이 무조건 실행된다"고 배웁니다. 하지만 시니어 개발자로 거듭나기 위해서는 이 '무조건'이라는 단어 뒤에 숨겨진 예외 상황들을 정확히 파악하고 있어야 합니다. 시스템의 안정성을 설계할 때 finally에만 의존했다가 자원이 해제되지 않는 치명적인 버그를 마주할 수 있기 때문입니다. 오늘 포스팅에서는 자바 가상 머신(JVM)의 동작 원리를 바탕으로, finally 블록이 실행되지 않는 아주 특별하고 구체적인 사례들을 정리해 보겠습니다.1. finally 블록의 일반적인 메커니즘일반적으로 finally는 리소스 반납(파일 클로즈, DB 연결 종료 등)을 보장하기 위해 사용됩니다. try 블록에서 return이 발생하더라도 .. 2026. 1. 20. [JAVA] 다중 catch 블록 작성 시 주의점 : 예외 상속 계층의 이해 자바 프로그래밍에서 예외 처리(Exception Handling)는 프로그램의 안정성을 결정짓는 핵심적인 요소입니다. 특히 하나의 try 블록에서 여러 개의 예외가 발생할 수 있을 때 사용하는 다중 catch 블록은 매우 유용하지만, 작성 시 반드시 지켜야 할 '상속 관계의 규칙'이 있습니다. 이 규칙을 어길 경우 컴파일 에러가 발생하여 코드 실행조차 불가능해집니다. 오늘 포스팅에서는 자바 개발자가 흔히 실수하기 쉬운 다중 catch 블록의 배치 순서와 상속 계층 구조가 미치는 영향에 대해 심도 있게 다뤄보겠습니다.1. 다중 catch 블록의 기본 개념다중 catch 블록은 하나의 예외 상황이 아닌, 발생 가능한 여러 시나리오를 각각 별도의 방식으로 처리하고자 할 때 사용합니다. 예를 들어, 파일을 읽는.. 2026. 1. 20. [JAVA] ArrayList vs LinkedList : 성능 최적화를 위한 완벽 가이드 자바 개발을 하다 보면 가장 빈번하게 사용하는 컬렉션이 바로 List 인터페이스입니다. 하지만 그 내부 구현체인 ArrayList와 LinkedList 중 무엇을 선택하느냐에 따라 애플리케이션의 응답 속도는 천차만별로 달라질 수 있습니다. 단순히 "둘 다 리스트니까 아무거나 쓰자"라는 생각은 대규모 데이터를 다룰 때 치명적인 성능 병목을 야기합니다. 이 글에서는 두 자료구조의 내부 메커니즘을 심도 있게 분석하고, 실무에서 어떤 상황에 어떤 리스트를 선택해야 하는지 명확한 기준을 제시합니다.1. 내부 구조의 근본적인 차이가. ArrayList: 연속적인 메모리의 힘ArrayList는 내부적으로 동적 배열(Dynamic Array)을 기반으로 합니다. 데이터들이 메모리상에 다닥다닥 붙어 있는 '연속적인 공간.. 2026. 1. 17. [JAVA] String, StringBuilder, StringBuffer의 결정적 차이와 선택 기준 자바 개발을 하면서 가장 빈번하게 다루는 데이터 타입 중 하나가 바로 문자열(String)입니다. 하지만 자바에는 문자열을 처리하기 위해 String, StringBuilder, StringBuffer라는 세 가지 선택지가 존재합니다. 단순히 '문자열이니까 String을 쓴다'는 생각은 대규모 트래픽이나 복잡한 알고리즘 환경에서 치명적인 성능 저하를 초래할 수 있습니다. 이 글에서는 각 클래스의 내부 구조와 메모리 관리 방식, 그리고 실무에서 상황별로 어떤 클래스를 선택해야 하는지에 대한 가이드를 제시합니다.1. 불변성(Immutability) vs 가변성(Mutability)가장 먼저 이해해야 할 핵심 개념은 불변성입니다.String: 불변(Immutable)의 미학String 객체는 한 번 생성되면 .. 2026. 1. 17. [JAVA] Getter와 Setter를 사용하는 이유 : 객체지향의 꽃, 캡슐화 완성하기 자바 프로그래밍을 시작하면 가장 먼저 접하는 관습 중 하나가 바로 필드를 private으로 선언하고, public 메서드인 Getter와 Setter를 만드는 것입니다. "귀찮게 왜 직접 변수에 접근하지 않고 메서드를 거쳐야 할까?"라는 의문이 든다면, 당신은 이미 객체지향 설계의 핵심인 캡슐화(Encapsulation)의 문턱에 도달한 것입니다. 오늘은 단순히 문법적인 설명을 넘어, 실무적인 관점에서 Getter와 Setter가 소프트웨어의 유지보수성과 안정성에 어떤 혁신을 가져오는지 깊이 있게 다뤄보겠습니다. --- ## 1. 캡슐화(Encapsulation)란 무엇인가?캡슐화는 데이터(속성)와 그 데이터를 처리하는 함수(메서드)를 하나로 묶고, 외부에서 내부 데이터에 직접 접근하는 것을 제한하는 원.. 2026. 1. 16. 이전 1 2 3 다음 728x90