본문 바로가기
728x90

NPE2

[JAVA] Optional<T> Class를 사용하는 이유는? Null과의 전쟁을 끝내는 법 자바 프로그래머라면 누구나 한 번쯤 NullPointerException(NPE)이라는 불청객 때문에 고생한 경험이 있을 것입니다. 런타임에 갑자기 튀어나와 프로그램의 흐름을 끊어버리는 이 예외를 방지하기 위해, 우리는 습관적으로 if (obj != null)과 같은 방어적인 코드를 남발하곤 했습니다. 이러한 불편함을 우아하게 해결하기 위해 Java 8부터 등장한 것이 바로 Optional 클래스입니다. 본 포스팅에서는 단순히 NPE를 막는 수단을 넘어, 가독성 높은 API를 설계하고 코드의 의도를 명확히 전달하기 위해 왜 Optional을 사용해야 하는지 심도 있게 다루어 보겠습니다.1. Optional이란 무엇인가?Optional는 "존재할 수도 있고, 존재하지 않을 수도 있는 객체"를 감싸는 래퍼(.. 2026. 1. 22.
[JAVA] 런타임의 최대 적, NullPointerException(NPE)을 완벽하게 방어하는 전략 자바 개발자라면 누구나 한 번쯤, 혹은 매일같이 마주하는 예외가 있습니다. 바로 NullPointerException (NPE)입니다. 자바의 창시자 중 한 명인 토니 호어(Tony Hoare)가 "10억 달러짜리 실수"라고 자책하며 언급했던 이 null 참조 문제는, 단순한 실수처럼 보이지만 시스템 전체를 다운시킬 수 있는 파괴력을 지니고 있습니다. 오늘은 현대적인 자바(Modern Java) 환경에서 NPE를 단순히 '조심'하는 단계를 넘어, 언어적 차원과 설계적 차원에서 원천 봉쇄하는 전문적인 방법들을 심도 있게 다루어 보겠습니다.1. NPE는 왜 발생하는가?기본적으로 NPE는 객체가 할당되지 않은 참조 변수(null)의 메서드를 호출하거나 필드에 접근할 때 발생합니다. 자바는 객체 지향 언어로서 .. 2026. 1. 19.
728x90