| sitelink1 | |
|---|---|
| sitelink2 | |
| sitelink3 | |
| sitelink4 | |
| sitelink5 | |
| sitelink6 |
Optional.map() 이라는 함수가 API로 존재하는데,
내가 아는 Map 인터페이스의 네이밍 뉘앙스는 어떤 차이지? 라고
Copilot 에게 물어보니 둘다 mapping 이라는 단어로부터 따온 네이밍이었다.
다만 다음과 같은 차이가 있었다.
-- Copilot --
Optional.map()의 map은 함수형 프로그래밍에서 "값을 다른 값으로 변환한다"는 의미의 mapping에서 따온 것이고,
Map 인터페이스의 Map은 "키를 값에 대응시킨다"는 의미의 mapping에서 온 것입니다.
두 경우 모두 "대응 관계"를 표현하지만, 뉘앙스가 다릅니다.
그래서 Optional.map() 함수를 이해하는데 약간의 시간이 필요했다.
Optional 클래스는 단일 값 컨테이너라는 설계로써 만들어졌다.
단일 값이 있을 수도 있고 없을 수도 있을때를 위해 만들어진 개념이라고 한다.
아마 스크립팅 아키텍처를 위해서 도입된 것 같은데,
java 의 런타임 환경에서 빈번하게 발생하는 NullPointerException 을 방지하기 위해서 만들어졌나보다.
그럼에도 불구하고 개발자가 Optional 을 사용 안하믄 어차피 해당 Exception 이 발생할텐데...
더 깊이 생각 안할란다.
필요해지면 써야징~