CleanCode 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 메서드 잘 만드는 법: 파라미터 설계부터 반환 타입, 오버로딩, 길이 원칙까지

Java 17 기준으로 유지보수하기 좋은 메서드를 만드는 핵심 규칙을 파라미터/반환 타입/오버로딩/메서드 길이 관점에서 정리합니다. 메서드를 “일단 동작하게” 만들어두면, 시간이 지나면서 파라미터가 계속 늘고 반환 값도 애매해져서 호출부가 복잡해지는 경험을 하실 때가 많습니다. 특히 오버로딩을 남발하거나, 너무 긴 메서드가 한 번에 여러 책임을 떠안기 시작하면 수정이 무서운 코드가 되기 쉽습니다.핵심 개념: Java 메서드 설계에서 가장 중요한 4가지1) 파라미터 설계: “적게, 명확하게, 안정적으로”파라미터는 메서드의 “사용 설명서”입니다. 많아질수록 호출부는 실수하기 쉬워지고, 순서 기반(특히 같은 타입 여러 개)일수록 버그가 숨어들기 좋습니다.0~2개가 이상적이고, 3개 이상이면 “이 메서드는 너무..

JAVA 2026.02.14