🌱 오늘의 주제 : 자바8 람다와 인터페이스 스펙 변화
🌱 람다가 도입된 이유
- 람다가 도입된 이유는 기업 환경 변화와 프로그래머들의 요구이다.
- 기업들은 빅데이터들의 분석 및 활용을 통해 기업 전략을 수립하고, 수익을 극대화하고자 하기에, 빅데이터를 프로그램적으로 다룰 수 있는 방법이 필요졌다. 그 방법의 중심에는 멀티 코어를 활용한 분산 처리, 즉 병렬화 기술이 필요하다.
- 병렬화를 위해 컬렉션 (배열, List, Set, Map)을 강화했고, 이러한 컬렉션을 더 효율적으로 사용하기 위해 스트림을 강화했다.
- 스트림을 효율적으로 사용하기 위해 함수형 프로그래밍이 나타났고, 다시 함수형 프로그래밍을 위해 람다가 도입되었다.
- 람다를 위해 다시 인터페이스의 변화가 수반됐다.
- 람다를 지원하기 위한 인터페이스를 함수형 인터페이스라고 한다.
빅데이터 지원 -> 병렬화 강화 -> 컬렉션 강화 -> 스트림 강화 -> 람다 도입 -> 인터페이스 명세 변경 -> 함수형 인터페이스 도입
🌱 람다란?
- 람다란 코드 블록이다.
- 기존의 코드 블록은 반드시 메서드 내에서 존재해야 했지만, 자바 8부터는 람다를 메서드의 인자나 반환값으로 사용할 수 있게 됬다.
- 코드 블록을 변수처럼 활용할 수 있다는 것이다.
- 로직이 단 한줄로 표기되는 경우 블록 기호 {} 마저 생략 할 수 있다.
- 함수형 인터페이스를 람다식으로 변경, 메서드의 호출 인자로 람다 사용, 메서드 반환값으로 람다 사용, 자바 8 API에서 제공하는 함수형 인터페이스, 컬렉션 스트림에서 람다 사용 등이 있다.
- *책(스프링 입문을 위한 자바 객체 지향의 원리와 이해) - p. 372 ~ p.380 예제 참고.
(인자 목록) -> {로직}
Runnable r = () -> {
System.out.println("Hello Lambda 3!!!");
};
r. run();
}
}
🌱 메서드 레퍼런스 유형
🌱 자바 8에서 언어적 변화
- 인터페이스의 스펙변화가 가장 크다. 이로 인해, 람다가 가능해졌고, 연쇄적으로 더 강화된 컬렉션 API를 사용할 수 있게 됐을 뿐만 아니라, 함수형 프로그래밍이 가능해졌다.
- 이전 JDK를 기반으로 작성된 프로그램도 자바 8 JVM에서 구동될 수 있게 디폴트 메서드라고 하는 새로운 개념을 인터페이스 스펙에 추가했다. 디폴트 메서드와 정적 메서드의 도입으로 기존에 작성한 프로그램들도 아무런 부작용 없이 자바 8 JVM에서 구동된다.
'Spring > Book - 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
00A. 스프링 MVC를 이용한 게시판 구축 (2) (0) | 2023.06.30 |
---|---|
00A. 스프링 MVC를 이용한 게시판 구축 (1) (0) | 2023.05.19 |
07. Spring - 의존성 주입 (0) | 2023.04.28 |
07. 스프링 삼각형과 설정 정보 (1) (0) | 2023.04.14 |
06. 스프링이 사랑한 디자인 패턴 (0) | 2023.04.07 |