Spring Security를 사용하면서 관련 설정값을 위한 코드에서 낯선 표현방식을 찾아볼 수 있다.
http.authorizeHttpRequests((authorizeHttpRequests) ->
authorizeHttpRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.anyRequest().authenticated()
);
이녀석은 람다함수라는 것.
람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어이다.
현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법이다.
장점
코드의 간결성 - 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하게 표현할 수 있습니다.
지연연산 수행 - 람다는 지연연상을 수행 함으로써 불필요한 연산을 최소화 할 수 있습니다.
병렬처리 가능 - 멀티쓰레디를 활용하여 병렬처리를 사용 할 수 있습니다.
단점
람다식의 호출이 까다롭습니다
람다 stream 사용 시 단순 for문 혹은 while문 사용 시 성능이 떨어집니다.
불필요하게 너무 사용하게 되면 오히려 가독성을 떨어 뜨릴 수 있습니다.
자바에서 sout 프린트를 만들때는 이렇게 작성하는데
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Welcome Heejin blog");
}
}).start();
람다식으로 표현하자면
new Thread(()->{
System.out.println("Welcome Heejin blog");
}).start();
람다식을 사용하여 코드가 훨씬 간결해지고 가독성도 좋아진걸 확인 할 수 있다.
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.