less than 1 minute read

게시판을 따라 만들던 중 () -> ~~ 이런 문장이 나왔습니다 저는 java8 이전 문법을 쓰기에 익숙하지 않았습니다 여러가지 공부를 한 후 람다식 문장과 람다식 문장이 아닌 것을 비교해봤습니다.

람다식 ) 식별자 없이 실행 가능한 함수(= 함수긴한데 함수를 따로 만들지 않고 코드 한 줄에 함수를 써서 그것을 호출하는 방식)

장점

1. 코드를 간결하게 만들 수 있습니다.
2. 코드가 간결하고 식에 개발자의 의도가 명확히 드러나므로 가독성이 향상됩니다.
3. 함수를 만드는 과정없이 한번에 처리할 수 있기에 코딩하는 시간이 줄어듭니다.
4. 병렬프로그래밍이 용이합니다.

단점

1. 람다를 사용하면서 만드는 무명함수는 재사용이 불가능합니다.
2. 디버깅이 다소 까다롭습니다.
3. 람다를 남발하면 코드가 지저분해질 수 있습니다. (비슷한 함수를 계속 중복생성할 가능성이 높음)
4. 재귀로 만들경우에는 다소 부적합한면이 있습니다
        // 이메일로
        User user = userRepository.findByEmail(attributes.getEmail())
                .map(entity
                        ->
                        entity.update(attributes.getName(), attributes.getPicture())
                )
                .orElse(attributes.toEntity());

        // 위 코드를 풀어쓰면 아래와 같음
       Optional<User> user = userRepository.findByEmail(attributes.getEmail());

        if (user.isEmpty() == true) {
            user = Optional.of(attributes.toEntity());
        }

        String newName = attributes.getName();
        String newPicture = attributes.getPicture();
        user.get().update(newName, newPicture);