# Optional 클래스 등장배경 "null"이 될수도 있는 객체를 감싸고 있는 일종의 wrapper클래스로 JAVA8부터 등장했다. 기존에는 NPE(NullPointerException 널포인터예외)가 발생하지 않도록 별도의 null처리가 필요했다. 이로 인해 코드 가독성과 유지보수성이 떨어진다는 문제가 발생되었다. public String getUserRole(User user) { if(user != null) { String role = user.getRole(); return role; } return "guest"; } 스칼라나 히스켈과 같은 함수형 언어들은 "존재할수도, 존재하지 않을 수도 있는 값"에 대해 별개의 타입을 가지고 다양한 API로 개발자의 간접적인 접근이 가능하도록 했는데 O..