java 8

    Optional 파헤치기!

    Optional 파헤치기!

    자비스 앤 빌런즈 인터뷰 프로세스를 진행하면서 면접관님께서 “Optional.of로 왜 데이터를 저장할 때 감쌌는지” 여쭤보셨다. 나는 내가 작성한 로직 의도대로 말씀드렸지만, 실제 메서드 내부의 동작이나 어떤 파라미터가 들어오고 어떤 경우에 이를 쓰는지, 어떤 예외가 발생할 수 있는지 등등 여러가지 꼬리 질문이 들어왔고 제대로 답변 드리지 못했다. 특히, Optional을 주로 써오면서 .of().orElseThrow() 이런 방식으로 코딩을 가끔 했었는데 그동안은 예외가 발생하지 않았던 것이지 null이 들어오는 경우 반드시 NPE가 발생하는 것에 대해 면접을 통해 알게 되었다. 이를 계기로 기본적인 Optional 사용법에 대해 파악하고 앞으로는 Optional을 사용할 때 적절한 경우와 조심해서 ..

    Stream API 무작정 연습하기!

    Stream API 무작정 연습하기!

    Java 8 부터 람다 표현식, Stream API, 함수형 인터페이스를 지원하기 시작했다. Stream API는 데이터를 추상화하고, 가공하여 데이터를 처리할 수 있게 하는 메서드들을 정의해놓은 Java에서 지원하는 API이다. 스트림 API의 특징 기존 데이터로 부터 생성된 스트림 데이터는 별도의 데이터로 생성되기 때문에 기존 데이터는 변경되지 않는다. List stringList = List.of("zayson", "maeng", "joon"); Stream stringStream = stringList.stream().sorted(); // 기존 데이터로부터 생성한 스트림 stringStream.forEach(System.out::println); // 기존 데이터가 변경되지 않는다. for (S..