optionalUnapply method 추가