optional2 Optional.orElse vs orElseGet 차이와 NPE 방지: 실무 규칙 7가지 Optional.orElse vs orElseGet 차이와 NPE 방지: 실무 규칙 7가지두 메서드의 핵심 차이는 평가 시점입니다.orElse는 항상 인자를 먼저 계산하고,orElseGet은 필요할 때만 Supplier를 호출합니다.이 차이 하나가 성능과 예외(특히 NPE)에 큰 영향을 줍니다. 한 줄 요약: 값이 있을 때 불필요한 계산을 피하려면 orElseGet.값이 없을 때만 무거운 기본값을 만들거나 I/O를 부를 때 orElseGet이 안전합니다.상수나 가벼운 기본값이면 orElse도 좋습니다. 문제아래 코드는 config.getDefaultPath()가 시간이 오래 걸리거나 내부에서 NPE가 날 수 있습니다.값이 이미 있을 때도 orElse는 기본값 식을 항상 먼저 실행하기 때문이죠.// 값이 .. 2025. 9. 28. Stream API: for→stream 리팩터링 10가지(성능/가독 균형) Stream API: for→stream 리팩터링 10가지(성능/가독 균형)반복문이 길어질수록 분기와 임시 변수, break/continue가 늘어나 가독성이 떨어집니다.여기서는 현업에서 가장 자주 마주치는 for문을 기준으로 stream 리팩터링 10가지를 묶었습니다.각 항목은 before → after 순서이며, 마지막에 간단한 벤치마크 팁도 덧붙였습니다. 한 줄 기준: 변환(map) → 필터(filter) → 정렬(sorted) → 수집(collect) 순서로파이프라인을 정리하면 읽기 쉽습니다.1) 필터링 + 변환 + 수집beforeList emails = new ArrayList();for (User u : users) { if (u.isActive() && u.getEmail() != null.. 2025. 9. 28. 이전 1 다음