<aside> 💡 ***이 장의 내용
null 참조의 문제점과 null 을 멀리해야 하는 이유
null 대신 Optional : null 로부터 안전한 도메인 모델 재구현하기
Optional 활용 : null 확인 코드 제거하기
Optional 에 저장된 값을 확인하는 방법
값이 없을 수도 있는 상황을 고려하는 프로그래밍***
</aside>
다음처럼 자동차와 자동차 보험을 갖고 있는 사람 객체를 중첩 구조로 구현했다고 하자.
public class Person {
    private Car car;
    public Car getCar() { return car; }
}
public class Car {
    private Insurance insurance;
    public Insurance getInsurance() { return insurance; }
}
public class Insurance {
    private String name;
    public String getName() { return name; }
}
public String getCarInsuranceName(Person person) {
    return person.getCar().getInsurance().getName();
}
getCar 를 호출하면 어떤 일이 일어날까?null 참조를 반환하는 방식으로 표현한다. → NullPointerException 발생!NullPointerException 줄이기예기치 않은
NullPointerException을 피하려면?
null 확인 코드를 추가한다.public String getCarInsuranceName(Person person) {
    if (person != null) {
        Car car = person.getCar();
        if (car != null) {
            Insurance insurance = car.getInsurance();
            if (insurance != null) {
                  return insurance.getName();
            }
        }
    }
    return "Unknown";
}