반응형
Java 8부터 도입된 Optional은 NullPointerException을 방지하고 명시적으로 null 가능성을 표현할 수 있도록 도와주는 컨테이너 클래스입니다. Optional을 사용하면 null 체크를 보다 선언적으로 처리할 수 있습니다.
✅ Optional의 바람직한 사용 예
public Optional<String> getUserEmail(Long userId) {
User user = userRepository.findById(userId);
return Optional.ofNullable(user.getEmail());
}
- Optional.ofNullable()을 통해 null이 될 수 있는 값을 안전하게 감쌉니다.
- 클라이언트 코드에서는 isPresent(), ifPresent(), orElse() 등의 메서드로 처리할 수 있습니다.
getUserEmail(id).ifPresent(email -> sendEmail(email));
❌ Optional의 잘못된 사용 예
1. 필드에 Optional을 사용하는 경우
public class User {
private Optional<String> name; // ❌ 지양해야 함
}
Optional은 메서드의 반환값에만 사용하는 것이 바람직합니다.
필드나 파라미터에 Optional을 사용하는 것은 오히려 코드의 복잡도만 증가시키며, 성능에도 불리할 수 있습니다.
2. null을 Optional에 넣는 경우
Optional<String> email = Optional.of(null); // ❌ NPE 발생!
결론
Optional을 적절히 사용하면 null 처리에 대한 명확성과 안전성을 높일 수 있습니다.
하지만 무분별하게 사용하면 오히려 코드가 복잡해질 수 있으므로, 용도에 맞게 신중하게 사용하는 것이 중요합니다.
반응형
'IT > Java' 카테고리의 다른 글
[Java] Record vs. Lombok – 무엇을 언제 써야 할까? (0) | 2025.05.31 |
---|---|
[Java] Enum을 똑똑하게 사용하는 실무 패턴 정리 (1) | 2025.05.25 |
[Java] List Grouping 하는 방법 (0) | 2025.02.10 |
Error와 Exception (0) | 2021.04.08 |
Primitive Type과 Reference Type (0) | 2021.04.07 |
댓글