BESTPRACTICE 2

Java Optional 올바르게 쓰기: of vs ofNullable, 안티패턴, 실무 가이드라인

Java 17 기준으로 Optional.of/ofNullable 차이부터 흔한 안티패턴, API 설계·서비스 코드에서의 실무 가이드라인을 정리합니다. 서비스 코드에서 null 체크를 줄이려고 Optional을 도입했는데, 오히려 get()이 난무하거나 Optional> 같은 코드가 생긴 적 있으실 거예요. 더 난감한 건 Optional.of() 때문에 운영에서 NPE가 터지는 경우입니다. Optional은 “null을 없애는 마법”이 아니라, 경계를 명확히 하는 도구에 가깝습니다.핵심 개념: Java Optional을 왜/어디에 써야 할까Optional의 핵심 가치는 “값이 없을 수 있음”을 타입으로 표현해서, 호출자가 그 가능성을 무시하기 어렵게 만드는 데 있습니다. 다만 이 장점은 적절한 경계(주로 ..

JAVA 2026.02.23

Java Collections 유틸 활용 팁 — 정렬부터 불변 컬렉션까지 한 번에 정리

Java 17 기준으로 Collections 정렬 유틸과 불변 컬렉션(List.of/Map.of), unmodifiable vs copyOf 차이를 실무 관점에서 정리합니다. 리스트를 정렬했는데 “원본이 바뀌어 버려서” 다른 로직이 깨진 경험이 있으신가요? 또는 List.of()로 만든 리스트에 add()를 했다가 런타임 예외를 만나 당황하신 적도 있을 거예요. 컬렉션은 자주 쓰는 만큼, “의도한 변경 가능성(mutability)”을 코드로 정확히 표현하는 게 생각보다 중요합니다.핵심 개념 (Java Collections 유틸과 불변 컬렉션이 중요한 이유)Java에서 컬렉션을 다룰 때 실무 사고의 대부분은 두 가지에서 나옵니다.정렬은 “어디를” 바꾸는가?Collections.sort(list)나 list..

JAVA 2026.02.19