Java/Functional

    [Java] Lambda 특징과 활용

    [Java] Lambda 특징과 활용

    람다란? (lambda) 익명 메서드에 이름이 없다. 람다는 메서드에 이름이 필요없기 때문에 익명 함수로 분류되며, 익명 함수는 모두 일급 객체로 취급된다. 함수 특정 클래스에 종속되지 않기 때문에 함수라고 부를 수 있다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 이는 일급 객체의 특징과도 같다. 일급 객체로 취급되기 때문에 Stream API의 매개변수로 전달이 가능하다. 간결성 익명 클래스처럼 판에 박힌 코드를 구현할 필요가 없다. 따라서 불필요한 코드를 줄이고 가독성을 높일 수 있다. 람다의 장점과 단점 장점 코드의 간결성 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을..

    함수형 프로그래밍과 Java #1

    함수형 프로그래밍 왜 Java8부터 함수형 프로그래밍을 지원하게 되었을까? 왜 Spring5 부터 WebFlux를 필두로 리액티브 프로그래밍을 지원하는 것일까? Java 8 이후로 나타난 '람다', 'Stream API' 등을 깊게 이해하기 위해서는 이들이 왜 생겨났는지를 알면 매우 좋을 것이라고 생각했다. 객체지향의 정수라고 할 수 있는 Java가 람다를 도입하고 함수형 프로그래밍을 지원한다는건 다른 언어들도 점차 함수형으로 바뀔 것을 의미한다고 생각한다. 나중에 개발 전반적으로 함수형 패러다임이 도입되었을 때 잘 사용하려면 미리 배워놓는게 중요하다. 함수형 패러다임의 중요한 포인트는 언어가 점점 발달하고 하드웨어의 스펙이 받쳐주면서 자바의 가비지 컬렉션처럼 메모리 관리를 추상화해주는 언어가 발달하게 ..